youfiliate-mcp
MCP server for managing Youfiliate Smart Links from AI assistants like Claude Desktop, enabling creation of geo-targeted affiliate links, analytics, and YouTube description migrations.
README
Youfiliate MCP Server
<!-- mcp-name: io.github.andrewmpierce/youfiliate-mcp -->
MCP (Model Context Protocol) server for managing Youfiliate Smart Links from AI assistants like Claude Desktop. Create geo-targeted affiliate links, view analytics, and run YouTube description migrations — all from a chat conversation.
18 tools, 4 resources, supports stdio + streamable HTTP transports.
Installation
pip install youfiliate-mcp
Requires Python 3.11+ and a Youfiliate account.
Generate an API key
- Log in at youfiliate.com
- Go to Settings → API Keys
- Click Create API Key (e.g. "Claude Desktop")
- Copy the key (starts with
youfiliate_sk_) — shown only once
Claude Desktop Configuration
Add to ~/Library/Application Support/Claude/claude_desktop_config.json:
Local (stdio)
{
"mcpServers": {
"youfiliate": {
"command": "youfiliate-mcp",
"env": {
"YOUFILIATE_API_KEY": "youfiliate_sk_your_key_here"
}
}
}
}
Remote (Streamable HTTP)
{
"mcpServers": {
"youfiliate": {
"url": "https://mcp.youfiliate.com",
"headers": {
"Authorization": "Bearer youfiliate_sk_your_key_here"
}
}
}
}
Restart Claude Desktop after editing the config.
Available Tools (18)
Smart Links CRUD (5)
| Tool | Description |
|---|---|
youfiliate_create_smart_link |
Create a new geo-targeted smart link |
youfiliate_list_smart_links |
List smart links with filtering and pagination |
youfiliate_get_smart_link |
Get full details of a smart link by ID |
youfiliate_update_smart_link |
Update a smart link (partial update) |
youfiliate_delete_smart_link |
Delete a smart link (requires confirm=True) |
Analytics (3)
| Tool | Description |
|---|---|
youfiliate_get_smart_link_stats |
Get click analytics for a specific link |
youfiliate_get_aggregate_stats |
Get analytics across all links |
youfiliate_check_link_health |
Trigger a health check on a link |
Preferences (2)
| Tool | Description |
|---|---|
youfiliate_get_preferences |
Get default smart link preferences |
youfiliate_update_preferences |
Update preferences for new links |
YouTube (3)
| Tool | Description |
|---|---|
youfiliate_get_youtube_status |
Check YouTube connection status |
youfiliate_connect_youtube |
Start YouTube OAuth flow (returns auth URL) |
youfiliate_disconnect_youtube |
Disconnect YouTube (requires confirm=True) |
Migrations (5)
| Tool | Description |
|---|---|
youfiliate_preview_migration |
Preview migration scope (dry run) |
youfiliate_start_migration |
Start YouTube description migration (requires confirm=True) |
youfiliate_get_migration_status |
Check migration progress |
youfiliate_list_migrations |
List all migrations |
youfiliate_rollback_migration |
Rollback a migration (requires confirm=True) |
Available Resources (4)
| URI | Description |
|---|---|
youfiliate://summary |
Dashboard summary (link counts, clicks, health) |
youfiliate://preferences |
Current preferences (read-only) |
youfiliate://smart-link/{id} |
Single smart link details |
youfiliate://plan-limits |
Current plan usage and limits |
Example Conversations
Creating a Smart Link
You: Create a smart link for
https://amazon.com/dp/B09V3KXJPBwith geo-targeting for UK and Germany.Claude: (calls
youfiliate_create_smart_linkwith geo rules for GB and DE)Done. Short URL:
youfil.to/b09v3kxjpb
- US (default): amazon.com/dp/B09V3KXJPB
- UK: amazon.co.uk/dp/B09V3KXJPB
- Germany: amazon.de/dp/B09V3KXJPB
Checking Analytics
You: How are my links performing this month?
Claude: (calls
youfiliate_get_aggregate_statswithperiod="30d")1,234 clicks. Top countries: US (500), UK (200), Germany (150). Most traffic from YouTube (900 clicks).
YouTube Migration
You: Convert all my YouTube description links to smart links.
Claude: (calls
youfiliate_preview_migration) Would affect 15 videos / 42 links. Proceed?You: Yes.
Claude: (calls
youfiliate_start_migrationwithconfirm=True)
Security Model
- API key auth. Your
youfiliate_sk_...key authenticates the MCP server. - JWT bridge. The server exchanges your API key for short-lived JWTs against the Youfiliate API.
- Token caching. JWTs are cached in memory and auto-refreshed.
- Scoped data access. The server only sees data belonging to the API key's owner.
- Destructive actions guarded. Delete, disconnect, start migration, and rollback require explicit
confirm=True.
Rate Limits
- MCP layer: 60 requests/minute per API key
- Health checks: 1 per link per 5 minutes
- API key exchange: rate-limited by the Youfiliate backend
Environment Variables
| Variable | Default | Description |
|---|---|---|
YOUFILIATE_API_KEY |
(required) | Your API key |
YOUFILIATE_API_BASE_URL |
https://app.youfiliate.com |
Backend URL |
MCP_SERVER_SECRET |
(empty) | Shared secret for verify-api-key (server operators only) |
TRANSPORT |
stdio |
stdio or streamable-http |
PORT |
8080 |
Port for HTTP transport |
HOST |
127.0.0.1 |
Bind address (use 0.0.0.0 in Docker) |
Development
git clone https://github.com/andrewmpierce/youfiliate-mcp.git
cd youfiliate-mcp
pip install -e ".[dev]"
pytest -v
Test with MCP Inspector
npx @modelcontextprotocol/inspector youfiliate-mcp
Docker
docker build -t youfiliate-mcp .
docker run -p 8080:8080 \
-e YOUFILIATE_API_KEY=youfiliate_sk_... \
youfiliate-mcp
Troubleshooting
"Authentication failed" — verify your API key, regenerate at youfiliate.com/settings if needed.
"Could not connect to the Youfiliate API" — check YOUFILIATE_API_BASE_URL. Defaults to https://app.youfiliate.com.
"Rate limit exceeded" — wait a moment. Health checks are 1 per 5 minutes per link.
Tools not appearing in Claude Desktop — check claude_desktop_config.json syntax, restart Claude Desktop, run youfiliate-mcp --help to verify the binary is on your PATH.
License
Links
- Website: youfiliate.com
- Issues: github.com/andrewmpierce/youfiliate-mcp/issues
- Changelog: CHANGELOG.md
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.