Youfiliate Smart Links
by andrewmpierce · remote · local (pypi) · no sign-in to list tools · v0.1.1 · published by GitHub user andrewmpierce
Create geo-targeted affiliate smart links, pull analytics, and rewrite YouTube descriptions.
18 tools: 4 can delete or cancel things, 5 change things and 9 only read.
Scanned Oct 21, 2026
- Deletes or cancels4Claude Code: deny: see these tools
- Can't be undone0Claude Code: ask
- Changes things5Claude Code: ask: see these tools
- Only reads9Claude Code: allow: see these tools
1 check matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http youfiliate https://youfiliate-mcp.onrender.com/mcp --header 'Authorization: <your-authorization>'Findings
Matches of fixed checks, with the text they matched.
The server marks "youfiliate_check_link_health" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "youfiliate_check_link_health" says "link": a word for a change.
Tools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
18 tools
Deletes or cancels 4Claude Code: deny
youfiliate_delete_smart_linkDelete a smart link permanently.No findings
Why it is in this group
- The name "youfiliate_delete_smart_link" says "delete": a word for removing or ending something.
- The description says "cannot be undone".
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it 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.
Annotations the server declares
- title: Delete Smart Link
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: true
- openWorldHint: false
youfiliate_disconnect_youtubeDisconnect your YouTube account from Youfiliate.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it 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.
Annotations the server declares
- title: Disconnect YouTube Account
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: true
- openWorldHint: false
youfiliate_rollback_migrationRoll back a completed migration, restoring original YouTube descriptions.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it 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.
Annotations the server declares
- title: Rollback Migration
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
- openWorldHint: true
youfiliate_start_migrationStart a YouTube description migration to convert links to smart links.No findings
Why it is in this group
- The name "youfiliate_start_migration" says "start": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it 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.
Annotations the server declares
- title: Start YouTube Migration
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
- openWorldHint: true
Changes things 5Claude Code: ask
youfiliate_check_link_healthTrigger a health check for a specific smart link.1 finding
Why it is in this group
- The name "youfiliate_check_link_health" says "link": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "youfiliate_check_link_health" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "youfiliate_check_link_health" says "link": a word for a change.
Description, as the server wrote it 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.
Annotations the server declares
- title: Check Link Health
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
youfiliate_connect_youtubeInitiate YouTube OAuth connection.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it 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`.
Annotations the server declares
- title: Connect YouTube Account
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
youfiliate_create_smart_linkCreate a new geo-targeted smart link with an optional custom slug.No findings
Why it is in this group
- The name "youfiliate_create_smart_link" says "create": a word for a change.
Description, as the server wrote it 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.
Annotations the server declares
- title: Create Smart Link
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
youfiliate_update_preferencesUpdate your smart link preferences/defaults.No findings
Why it is in this group
- The name "youfiliate_update_preferences" says "update": a word for a change.
Description, as the server wrote it 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'.
Annotations the server declares
- title: Update Preferences
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
youfiliate_update_smart_linkUpdate an existing smart link (partial update — only provided fields change).No findings
Why it is in this group
- The name "youfiliate_update_smart_link" says "update": a word for a change.
Description, as the server wrote it 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.
Annotations the server declares
- title: Update Smart Link
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
Only reads 9Claude Code: allow
youfiliate_get_aggregate_statsGet aggregate click analytics across all your smart links.No findings
Why it is in this group
- The name "youfiliate_get_aggregate_stats" says "get": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- title: Get Aggregate Stats
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
youfiliate_get_migration_statusGet the status and progress of a specific migration.No findings
Why it is in this group
- The name "youfiliate_get_migration_status" says "get": a word for reading.
Description, as the server wrote it 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`.
Annotations the server declares
- title: Get Migration Status
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
youfiliate_get_preferencesGet your current smart link preferences/defaults.No findings
Why it is in this group
- The name "youfiliate_get_preferences" says "get": a word for reading.
Description, as the server wrote it Get your current smart link preferences/defaults. Returns default settings applied to newly created smart links. Does NOT create or modify any data.
Annotations the server declares
- title: Get Preferences
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
youfiliate_get_smart_linkGet full details of a single smart link by ID.No findings
Why it is in this group
- The name "youfiliate_get_smart_link" says "get": a word for reading.
Description, as the server wrote it 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`.
Annotations the server declares
- title: Get Smart Link Details
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
youfiliate_get_smart_link_statsGet click analytics for a specific smart link.No findings
Why it is in this group
- The name "youfiliate_get_smart_link_stats" says "get": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- title: Get Smart Link Stats
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
youfiliate_get_youtube_statusCheck if your YouTube account is connected.No findings
Why it is in this group
- The name "youfiliate_get_youtube_status" says "get": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- title: Get YouTube Connection Status
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
youfiliate_list_migrationsList your YouTube description migrations with pagination.No findings
Why it is in this group
- The name "youfiliate_list_migrations" says "list": a word for reading.
Description, as the server wrote it List your YouTube description migrations with pagination. Returns a paginated list of all migrations. Does NOT modify any data.
Annotations the server declares
- title: List Migrations
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
youfiliate_list_smart_linksList your smart links with optional filtering, search, and pagination.No findings
Why it is in this group
- The name "youfiliate_list_smart_links" says "list": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- title: List Smart Links
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
youfiliate_preview_migrationPreview a YouTube description migration without making changes.No findings
Why it is in this group
- The name "youfiliate_preview_migration" says "preview": a word for reading.
Description, as the server wrote it 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`.
Annotations the server declares
- title: Preview Migration
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Install
Pinned to version 0.1.1. Values in angle brackets are yours to fill in.
claude mcp add --transport http youfiliate https://youfiliate-mcp.onrender.com/mcp --header 'Authorization: <your-authorization>'Run in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__youfiliate__youfiliate_list_smart_links",
"mcp__youfiliate__youfiliate_get_smart_link",
"mcp__youfiliate__youfiliate_get_smart_link_stats",
"mcp__youfiliate__youfiliate_get_aggregate_stats",
"mcp__youfiliate__youfiliate_get_preferences",
"mcp__youfiliate__youfiliate_get_youtube_status",
"mcp__youfiliate__youfiliate_preview_migration",
"mcp__youfiliate__youfiliate_get_migration_status",
"mcp__youfiliate__youfiliate_list_migrations"
],
"ask": [
"mcp__youfiliate__youfiliate_create_smart_link",
"mcp__youfiliate__youfiliate_update_smart_link",
"mcp__youfiliate__youfiliate_check_link_health",
"mcp__youfiliate__youfiliate_update_preferences",
"mcp__youfiliate__youfiliate_connect_youtube"
],
"deny": [
"mcp__youfiliate__youfiliate_delete_smart_link",
"mcp__youfiliate__youfiliate_disconnect_youtube",
"mcp__youfiliate__youfiliate_start_migration",
"mcp__youfiliate__youfiliate_rollback_migration"
]
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as youfiliate. Review it before you use it.
