# Youfiliate Smart Links (remote · youfiliate-mcp.onrender.com)

Create geo-targeted affiliate smart links, pull analytics, and rewrite YouTube descriptions.

- Trust score: 65/100 (medium)
- Change this week: +5
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-03

## Components

- remote · `youfiliate-mcp.onrender.com`: 65/100 (this document), [markdown](https://verifymcp.io/servers/andrewmpierce-youfiliate-mcp/youfiliate-mcp.md), [page](https://verifymcp.io/servers/andrewmpierce-youfiliate-mcp/youfiliate-mcp)
- pypi · `youfiliate-mcp`: 39/100, [markdown](https://verifymcp.io/servers/andrewmpierce-youfiliate-mcp/youfiliate-mcp-2.md), [page](https://verifymcp.io/servers/andrewmpierce-youfiliate-mcp/youfiliate-mcp-2)

## Channel facts

- Endpoint: `https://youfiliate-mcp.onrender.com/mcp`
- Transports: `streamable-http`
- Auth: `required`
- Version: `0.1.1`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-03.

- **Endpoint Security**: 57/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - Authorisation check failed: no authorisation is required to call this server, and it exposes a tool marked destructive (youfiliate_delete_smart_link).
  - HTTPS is enforced; there's no plaintext access path.
  - HSTS check failed: the Strict-Transport-Security header is absent.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 78/100
  - 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).
  - AI-judged instruction clarity (good).
  - Tool/resource definitions use about 1845 tokens (~87/item across 21 items; 18 tools + 3 resources), lean.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 27/100
  - Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 71/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 0% of tool parameters carry a description.
  - Structured output schemas are declared (100% of tools); any adoption earns full credit.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### Claude

```bash
claude mcp add --transport http andrewmpierce-youfiliate-mcp https://youfiliate-mcp.onrender.com/mcp
```

### Codex

```toml
[mcp_servers.andrewmpierce-youfiliate-mcp]
url = "https://youfiliate-mcp.onrender.com/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "andrewmpierce-youfiliate-mcp": {
      "type": "remote",
      "url": "https://youfiliate-mcp.onrender.com/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add andrewmpierce-youfiliate-mcp --url https://youfiliate-mcp.onrender.com/mcp --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  andrewmpierce-youfiliate-mcp:
    url: "https://youfiliate-mcp.onrender.com/mcp"
```

### Other

```json
{
  "mcpServers": {
    "andrewmpierce-youfiliate-mcp": {
      "type": "http",
      "url": "https://youfiliate-mcp.onrender.com/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-03 (score 65, +1)

No change was recorded against any check on this day. Stability & Change Management went from 23 to 27. That category is still filling its 30-day observation window: 7 days of observed history at the previous scan, 8 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-08-01 (score 64, +1)

No change was recorded against any check on this day. Stability & Change Management went from 17 to 20. That category is still filling its 30-day observation window: 5 days of observed history at the previous scan, 6 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-07-31 (score 63, +1)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-30 (score 62, +1)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-28 (score 61, +1)

No change was recorded against any check on this day. Stability & Change Management went from 3 to 7. That category is still filling its 30-day observation window: 1 days of observed history at the previous scan, 2 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-07-27 (score 60, +1)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-26 (score 59)

First indexed and scored.

## MCP tools (18)

### `youfiliate_create_smart_link` (~146 tokens)

Create a new geo-targeted smart link with an optional custom slug.

        Creates a smart link that redirects visitors to the destination URL.
        Optionally configure country-specific geo rules and deep linking for
        iOS/Android apps. Does NOT modify any existing links.

        Returns the created smart link details including its short URL
        (youfil.to/<slug>).

        Common errors:
        - Slug already taken: choose a different slug or omit for auto-generation.
        - Plan limit reached: upgrade your plan to create more links.
        - Invalid URL: ensure the destination URL is a valid HTTP/HTTPS URL.

Input parameters:

- `params` (required)

Output parameters:

- `result` (string)

### `youfiliate_list_smart_links` (~109 tokens)

List your smart links with optional filtering, search, and pagination.

        Returns a paginated list of smart links. Use filters to narrow results.
        Does NOT create or modify any links.

        Args:
            params: Filters include health_status, search (title/URL), ordering,
                    limit (1-100, default 20), and offset.

        Common errors:
        - No links found: you may not have created any links yet.

Input parameters:

- `params` (required)

Output parameters:

- `result` (string)

### `youfiliate_get_smart_link` (~78 tokens)

Get full details of a single smart link by ID.

        Returns all configuration including geo rules, deep link config,
        and click stats. Does NOT modify the link.

        Common errors:
        - Smart link not found: check the ID or use `youfiliate_list_smart_links`.

Input parameters:

- `params` (required)

Output parameters:

- `result` (string)

### `youfiliate_update_smart_link` (~101 tokens)

Update an existing smart link (partial update — only provided fields change).

        You can update the destination URL, slug, title, redirect type,
        geo rules, or deep link config. Geo rules are replaced entirely
        (not merged). Does NOT delete the link.

        Common errors:
        - Smart link not found: check the ID.
        - Slug already taken: choose a different slug.

Input parameters:

- `params` (required)

Output parameters:

- `result` (string)

### `youfiliate_delete_smart_link` (~123 tokens)

Delete a smart link permanently. The short URL will stop working.

        IMPORTANT: Always confirm with the user before executing this action.
        The `confirm` parameter must be set to true. This is a destructive
        action that cannot be undone — the slug becomes available for reuse
        after a cooldown period.

        Does NOT affect other links or YouTube descriptions.

        Common errors:
        - Smart link not found: check the ID.
        - confirm=False: you must set confirm=True after getting user confirmation.

Input parameters:

- `params` (required)

Output parameters:

- `result` (string)

### `youfiliate_get_smart_link_stats` (~72 tokens)

Get click analytics for a specific smart link.

        Returns click counts broken down by country, device, referrer,
        and day for the specified period. Does NOT modify any data.

        Common errors:
        - Smart link not found: check the ID.

Input parameters:

- `params` (required)

Output parameters:

- `result` (string)

### `youfiliate_get_aggregate_stats` (~61 tokens)

Get aggregate click analytics across all your smart links.

        Returns total clicks, top countries, devices, and referrers
        across your entire account for the specified period.
        Does NOT modify any data.

Input parameters:

- `params` (required)

Output parameters:

- `result` (string)

### `youfiliate_check_link_health` (~105 tokens)

Trigger a health check for a specific smart link.

        Checks the default URL and all geo-rule URLs for availability.
        Returns the health status (healthy/broken/unknown).
        Rate limited to once per 5 minutes per link.
        Does NOT modify the link configuration.

        Common errors:
        - Rate limit: wait 5 minutes between health checks for the same link.
        - Smart link not found: check the ID.

Input parameters:

- `params` (required)

Output parameters:

- `result` (string)

### `youfiliate_get_preferences` (~46 tokens)

Get your current smart link preferences/defaults.

        Returns default settings applied to newly created smart links.
        Does NOT create or modify any data.

Input parameters:

- `params` (required)

Output parameters:

- `result` (string)

### `youfiliate_update_preferences` (~67 tokens)

Update your smart link preferences/defaults.

        Changes apply to newly created links only — existing links are
        not affected. Does NOT delete any data.

        Common errors:
        - Invalid redirect_type: must be '301' or '302'.

Input parameters:

- `params` (required)

Output parameters:

- `result` (string)

### `youfiliate_get_youtube_status` (~72 tokens)

Check if your YouTube account is connected.

        Returns connection status, channel name, and scope information.
        Does NOT modify any data or initiate any connections.

        Common errors:
        - Not connected: use `youfiliate_connect_youtube` to connect.

Input parameters:

- `params` (required)

Output parameters:

- `result` (string)

### `youfiliate_connect_youtube` (~124 tokens)

Initiate YouTube OAuth connection. Returns a URL the user must open in their browser.

        The user must open the returned URL in their web browser to authorize
        Youfiliate to access their YouTube channel. The OAuth callback is handled
        in the browser — this tool only returns the authorization URL.

        Does NOT read or modify any YouTube data. The OAuth flow is completed
        in the user's browser.

        Common errors:
        - Already connected: disconnect first with `youfiliate_disconnect_youtube`.

Input parameters:

- `params` (required)

Output parameters:

- `result` (string)

### `youfiliate_disconnect_youtube` (~117 tokens)

Disconnect your YouTube account from Youfiliate.

        IMPORTANT: Always confirm with the user before executing this action.
        The `confirm` parameter must be set to true. This removes stored OAuth
        tokens. You will need to reconnect to use the auto-migration feature.

        Does NOT modify any YouTube data or video descriptions.

        Common errors:
        - Not connected: no YouTube account to disconnect.
        - confirm=False: you must set confirm=True after getting user confirmation.

Input parameters:

- `params` (required)

Output parameters:

- `result` (string)

### `youfiliate_preview_migration` (~87 tokens)

Preview a YouTube description migration without making changes.

        Performs a dry-run analysis showing how many videos and links would be
        affected. Does NOT modify any data or YouTube descriptions. Requires
        a connected YouTube account.

        Common errors:
        - YouTube not connected: connect first with `youfiliate_connect_youtube`.

Input parameters:

- `params` (required)

Output parameters:

- `result` (string)

### `youfiliate_start_migration` (~142 tokens)

Start a YouTube description migration to convert links to smart links.

        IMPORTANT: This modifies YouTube video descriptions. Always confirm with
        the user before executing. Describe the scope (number of videos/links
        affected from the preview) and ask for explicit confirmation.

        The migration runs asynchronously. Use `youfiliate_get_migration_status`
        to track progress.

        Requires a connected YouTube account.

        Common errors:
        - YouTube not connected: connect first.
        - Migration already in progress: wait for it to complete.
        - confirm=False: must set confirm=True after user confirmation.

Input parameters:

- `params` (required)

Output parameters:

- `result` (string)

### `youfiliate_get_migration_status` (~74 tokens)

Get the status and progress of a specific migration.

        Returns detailed status including videos processed, links created,
        and any errors. Does NOT modify any data.

        Common errors:
        - Migration not found: check the ID or use `youfiliate_list_migrations`.

Input parameters:

- `params` (required)

Output parameters:

- `result` (string)

### `youfiliate_list_migrations` (~43 tokens)

List your YouTube description migrations with pagination.

        Returns a paginated list of all migrations. Does NOT modify any data.

Input parameters:

- `params` (required)

Output parameters:

- `result` (string)

### `youfiliate_rollback_migration` (~120 tokens)

Roll back a completed migration, restoring original YouTube descriptions.

        IMPORTANT: This modifies YouTube video descriptions. Always confirm with
        the user before executing. This reverts all video descriptions to their
        pre-migration state.

        The rollback runs asynchronously. Requires a connected YouTube account.

        Common errors:
        - Migration not found or not in a rollback-eligible state.
        - YouTube not connected: reconnect first.
        - confirm=False: must set confirm=True after user confirmation.

Input parameters:

- `params` (required)

Output parameters:

- `result` (string)

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/andrewmpierce-youfiliate-mcp/youfiliate-mcp#diagnostics

## Score history

- 2026-08-03: 65
- 2026-08-02: 64
- 2026-08-01: 64
- 2026-07-31: 63
- 2026-07-30: 62
- 2026-07-29: 61
- 2026-07-28: 61
- 2026-07-27: 60
- 2026-07-26: 59

## Links

- Remote endpoint: https://youfiliate-mcp.onrender.com/mcp
- Authorisation metadata: https://youfiliate-mcp.onrender.com/.well-known/oauth-protected-resource/mcp
- Repository: https://github.com/andrewmpierce/youfiliate-mcp
- Website: https://youfiliate.com/
- Changelog RSS feed: https://verifymcp.io/servers/andrewmpierce-youfiliate-mcp/youfiliate-mcp/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/andrewmpierce-youfiliate-mcp/youfiliate-mcp/changelog.json
- HTML version of this page: https://verifymcp.io/servers/andrewmpierce-youfiliate-mcp/youfiliate-mcp
