MCP.so
Sign In

Youfiliate

@andrewmpierce

About Youfiliate

MCP server for Youfiliate Smart Links — manage geo-targeted affiliate links from Claude Desktop and other MCP-compatible AI assistants.

Config

Add this server to your MCP-compatible client using the configuration below.

{
  "mcpServers": {
    "youfiliate": {
      "url": "https://youfiliate-mcp.onrender.com/mcp",
      "headers": {
        "Authorization": "Bearer youfiliate_sk_your_key_here"
      }
    }
  }
}

Tools

18

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.

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.

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`.

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.

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.

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.

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.

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.

Get your current smart link preferences/defaults. Returns default settings applied to newly created smart links. Does NOT create or modify any data.

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'.

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.

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`.

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.

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`.

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.

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`.

List your YouTube description migrations with pagination. Returns a paginated list of all migrations. Does NOT modify any data.

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.

Overview

What is Youfiliate?

Youfiliate is an MCP server for managing Youfiliate Smart Links from AI assistants like Claude Desktop. It creates geo-targeted affiliate links, views analytics, and runs YouTube description migrations—all from a chat conversation.

How to use Youfiliate?

Install via pip install youfiliate-mcp (requires Python 3.11+ and a Youfiliate account). Generate an API key at youfiliate.com (Settings → API Keys), then configure Claude Desktop with the key as the YOUFILIATE_API_KEY environment variable using either stdio or remote streamable HTTP transport. After editing claude_desktop_config.json, restart Claude Desktop to use the 18 tools and 4 resources.

Key features of Youfiliate

  • Full CRUD for geo-targeted Smart Links
  • Click analytics per link and aggregated across all links
  • YouTube account connection and description migration
  • Dry-run preview before starting migrations
  • Dashboard summary resource (youfiliate://summary)
  • Supports stdio and streamable HTTP transports
  • Destructive operations require explicit confirmation

Use cases of Youfiliate

  • Create localized affiliate links for different countries from a chat
  • Monitor click performance across all your Smart Links
  • Automatically convert Amazon links in YouTube descriptions to geo-targeted Smart Links
  • Roll back a YouTube description migration if needed
  • Check current plan usage and limits via a resource

FAQ from Youfiliate

What dependencies and runtime does Youfiliate require?

Python 3.11+ and a Youfiliate account with an API key. The server can run locally (stdio) or remotely (streamable HTTP).

How is authentication handled?

Youfiliate uses API key authentication. The server exchanges your youfiliate_sk_... key for short-lived JWTs cached in memory and auto-refreshed. Destructive actions (delete, disconnect, start/rollback migration) require an explicit confirm=True parameter.

What are the rate limits?

MCP layer: 60 requests per minute per API key. Health checks are limited to 1 per link per 5 minutes. API key exchange is rate-limited by the Youfiliate backend.

Where does data live and is it scoped?

The server only accesses data belonging to the API key’s owner. Data is fetched from the Youfiliate API (default URL https://app.youfiliate.com) and processed in memory; JWTs are cached in memory.

What transports are supported?

Both stdio (local) and streamable HTTP (remote) transports are supported. Configure via the TRANSPORT environment variable (stdio or streamable-http).

Frequently asked questions

What dependencies and runtime does Youfiliate require?

Python 3.11+ and a Youfiliate account with an API key. The server can run locally (stdio) or remotely (streamable HTTP).

How is authentication handled?

Youfiliate uses API key authentication. The server exchanges your `youfiliate_sk_...` key for short-lived JWTs cached in memory and auto-refreshed. Destructive actions (delete, disconnect, start/rollback migration) require an explicit `confirm=True` parameter.

What are the rate limits?

MCP layer: 60 requests per minute per API key. Health checks are limited to 1 per link per 5 minutes. API key exchange is rate-limited by the Youfiliate backend.

Where does data live and is it scoped?

The server only accesses data belonging to the API key’s owner. Data is fetched from the Youfiliate API (default URL `https://app.youfiliate.com`) and processed in memory; JWTs are cached in memory.

What transports are supported?

Both stdio (local) and streamable HTTP (remote) transports are supported. Configure via the `TRANSPORT` environment variable (`stdio` or `streamable-http`).

Comments

More Developer Tools MCP servers