youfiliate-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@youfiliate-mcpCreate a smart link for https://amazon.com/dp/B09V3KXJPB"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Youfiliate MCP Server
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-mcpRequires 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
Related MCP server: Refgrow MCP Server
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 |
| Create a new geo-targeted smart link |
| List smart links with filtering and pagination |
| Get full details of a smart link by ID |
| Update a smart link (partial update) |
| Delete a smart link (requires |
Analytics (3)
Tool | Description |
| Get click analytics for a specific link |
| Get analytics across all links |
| Trigger a health check on a link |
Preferences (2)
Tool | Description |
| Get default smart link preferences |
| Update preferences for new links |
YouTube (3)
Tool | Description |
| Check YouTube connection status |
| Start YouTube OAuth flow (returns auth URL) |
| Disconnect YouTube (requires |
Migrations (5)
Tool | Description |
| Preview migration scope (dry run) |
| Start YouTube description migration (requires |
| Check migration progress |
| List all migrations |
| Rollback a migration (requires |
Available Resources (4)
URI | Description |
| Dashboard summary (link counts, clicks, health) |
| Current preferences (read-only) |
| Single smart link details |
| 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 |
| (required) | Your API key |
|
| Backend URL |
| (empty) | Shared secret for verify-api-key (server operators only) |
|
|
|
|
| Port for HTTP transport |
|
| Bind address (use |
Development
git clone https://github.com/andrewmpierce/youfiliate-mcp.git
cd youfiliate-mcp
pip install -e ".[dev]"
pytest -vTest with MCP Inspector
npx @modelcontextprotocol/inspector youfiliate-mcpDocker
docker build -t youfiliate-mcp .
docker run -p 8080:8080 \
-e YOUFILIATE_API_KEY=youfiliate_sk_... \
youfiliate-mcpTroubleshooting
"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
Changelog: CHANGELOG.md
Available Tools
18 toolsyoufiliate_check_link_healthARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true. The description adds value by detailing the rate limit, the scope of health check (all URLs), and the return status values. It confirms non-modification, which is consistent with annotations. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured, with a clear opening statement, then bullet-like details on scope, rate limit, and common errors. Every sentence serves a purpose without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has only one required parameter, an output schema (not shown but indicated), and annotations covering safety, the description fully addresses what the tool does, its limitations, and error handling. No additional information is needed for correct usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema includes descriptions for both parameters (id and response_format), reducing the need for description to add further semantics. The description mentions 'smart link UUID' implicitly but does not elaborate on response_format options. With schema already covering the parameters, the description adds marginal value, warranting a baseline score of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it triggers a health check for a specific smart link. It explains what is checked (default URL and geo-rule URLs) and what is returned (health status). This distinguishes it from sibling tools like create, get, update, and delete by emphasizing it is a read-only check.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear usage context, including rate limiting (once per 5 minutes per link) and common errors. It explicitly states it does NOT modify the link configuration, helping agents avoid using it for mutation. However, it lacks explicit comparison to sibling tools or when not to use it beyond the rate limit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
youfiliate_connect_youtubeAInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond annotations (readOnlyHint=false, destructiveHint=false, idempotentHint=false, openWorldHint=true), the description adds that the tool does NOT read or modify YouTube data, that the OAuth flow is completed by the user in the browser, and that it only returns a URL. This provides critical behavioral context for safe invocation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise yet thorough, starting with the core action, then explaining the workflow, followed by clarifying non-modification, and concluding with common errors. Every sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity and the presence of annotations and an output schema, the description covers all key aspects: purpose, usage steps, behavioral side effects, and error handling. It references the sibling disconnect tool, making it contextually complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has one required parameter 'params' with an optional nested property 'response_format'. Schema description coverage is 0% for the top-level parameter, but the description does not mention this parameter at all, failing to add value beyond the schema for guiding agent parameter selection.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool initiates a YouTube OAuth connection and returns an authorization URL. It distinguishes itself from sibling tools like youfiliate_disconnect_youtube and youfiliate_get_youtube_status by specifying the action and output.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly instructs the user to open the returned URL in a browser, explains that the OAuth callback is handled in the browser, and provides a common error case (already connected) with a suggested action (disconnect first). This provides clear when-to-use and when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
youfiliate_create_smart_linkAInspect
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/).
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.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=false and destructiveHint=false, which are consistent with a creation tool. The description adds value by stating it does not modify existing links and lists common errors (slug taken, plan limit, invalid URL), providing behavioral insight beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise at 7 sentences, starting with a clear purpose, then optional features, then a clarification of non-modification, then return value, then common errors. Every sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description mentions the return value includes the short URL and smart link details, which compensates for the missing output schema. However, it does not detail all possible fields in the response. Given the tool's complexity (geo rules, deep linking), the description is fairly complete but could elaborate more on the response structure.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has detailed descriptions for all parameters, so the description adds little new semantic meaning. It summarizes the purpose of key parameters (slug, geo_rules, deep_link_config) but does not provide additional depth beyond the schema. Baseline 3 is appropriate given high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool creates a new geo-targeted smart link with optional custom slug, redirects visitors, and configurable geo rules and deep linking. It distinguishes from siblings by explicitly noting it does not modify existing links, which separates it from update and delete tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for usage: to create a smart link with optional geo-targeting and deep linking. It implicitly guides against modifying existing links via the 'does NOT modify' statement, but does not explicitly name alternatives or when not to use this tool. The sibling tool list provides additional context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
youfiliate_delete_smart_linkADestructiveIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructive and non-read-only. Description adds context: permanent deletion, slug cooldown, no side effects on other resources.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Structured with sections, front-loaded with core action. Some redundancy in repeating confirm parameter details, but overall efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers all essential context: destructive nature, user confirmation requirement, common errors, and what is not affected. With output schema present, it is complete for safe invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already has good descriptions for id and confirm. The tool description reinforces the confirm requirement and adds context about slug cooldown, but schema coverage is actually high (not 0% as indicated).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Delete a smart link permanently' with specific verb and resource, and distinguishes from siblings like create or update.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly warns to confirm with user before executing, and notes that other links and YouTube descriptions are unaffected. Could mention alternatives but sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
youfiliate_disconnect_youtubeADestructiveIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses that it removes OAuth tokens and does not modify YouTube data, adding context beyond annotations. Annotations include destructiveHint=true, and the description confirms this without contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured with clear sections (action, important note, common errors). Every sentence adds value, and the content is appropriately concise for a simple tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given one parameter and simple functionality, the description covers behavior, safety, errors, and output, making it complete. An output schema exists but isn't shown here.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter (confirm) is thoroughly explained, including its necessity and the requirement for user confirmation. The description adds meaningful context beyond the schema's parameter description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Disconnect your YouTube account from Youfiliate' with a specific verb and resource. It distinguishes from sibling tools like connect_youtube and check_link_health.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states the need for user confirmation and provides common errors. While it doesn't mention alternative tools, the purpose is clear enough for correct selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
youfiliate_get_aggregate_statsARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and idempotentHint=true. The description reinforces non-modification and adds return field details. However, it does not disclose additional behaviors like rate limits or data freshness beyond what annotations already convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no superfluous words: first sentence states purpose, second sentence lists return fields and safety guarantee. Efficient and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema (implied by 'Has output schema: true') and clear parameter schema, the description adequately covers purpose, return fields, and safety. It lacks explicit contrast with per-link stats but is otherwise complete for a simple aggregate query tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides full descriptions for both parameters ('period' and 'response_format'), so schema coverage is high. The description adds 'for the specified period' but does not detail enum values or format options. Baseline 3 is appropriate as the schema carries the semantic load.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it retrieves aggregate click analytics across all smart links, specifying return fields (total clicks, top countries, devices, referrers) and scope (entire account). It is distinguishable from the sibling tool `youfiliate_get_smart_link_stats` by the word 'aggregate', but does not explicitly name the alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description notes the tool is read-only ('Does NOT modify any data'), but does not provide explicit guidance on when to use this tool versus per-link stats or other alternatives. The usage context is implied by the word 'aggregate', but no when-not or alternative names are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
youfiliate_get_migration_statusARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and idempotentHint=true. The description adds 'Does NOT modify any data' and outlines return content (videos processed, links, errors), but does not significantly extend beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise at 5 lines, immediately states purpose, includes key behavioral notes, and a helpful error section. Every sentence is informative and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only status tool with an output schema, the description covers usage, safety, and common errors. It lacks some detail on return format but the output schema fills that gap. Adequate for the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description provides no information about parameters (id, response_format). Schema descriptions handle this, but the description adds no value beyond the structured input schema, resulting in low parameter guidance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get the status and progress of a specific migration' with a specific verb and resource. It differentiates from sibling tools by focusing on a single migration ID and references youfiliate_list_migrations for finding IDs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states 'Does NOT modify any data' and provides common errors including a suggestion to use youfiliate_list_migrations if the ID is not found. Clear context for when to use, though no explicit 'when not to use' exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
youfiliate_get_preferencesARead-onlyIdempotentInspect
Get your current smart link preferences/defaults.
Returns default settings applied to newly created smart links. Does NOT create or modify any data.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true, covering safety. The description adds context that it returns default settings and does not create/modify data, reinforcing the read-only nature without contradicting annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with two short sentences that front-load the purpose and add necessary behavioral context. Every sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, no nested objects) and the presence of an output schema, the description adequately covers the tool's behavior and purpose. No additional information is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema includes one parameter (response_format) with a description in the schema itself. The tool description does not mention parameters, but the schema provides sufficient meaning. With high schema description coverage, a baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves current smart link preferences/defaults, using specific verb 'Get' and resource 'preferences/defaults'. It distinguishes from sibling tools like update_preferences and create_smart_link by specifying it returns default settings for new links without modification.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states it does not create or modify data, implying it's a read-only operation. However, it lacks explicit guidance on when to use this tool versus alternatives (e.g., checking preferences before creating links), but the context is clear enough for an AI agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
youfiliate_get_smart_linkARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only and idempotent behavior. The description reinforces this with 'Does NOT modify the link' and adds details about returned data (geo rules, deep link config, click stats) and common errors, providing behavioral context beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (three sentences plus error hint) and front-loads the core purpose. Every sentence adds value, with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one required param) and the existence of an output schema, the description adequately covers purpose, behavior, and common errors. It could briefly mention the response_format parameter, but overall it is sufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description does not explain the parameters (id UUID format, response_format enum). It only mentions 'by ID' without elaboration. The description should compensate for the missing schema descriptions but fails to do so.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves full details of a single smart link by ID, listing specific configuration elements (geo rules, deep link config, click stats) and explicitly notes it does not modify. This distinguishes it from list and stats-only sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes a common error scenario and suggests using youfiliate_list_smart_links if the ID is not found, providing guidance on when not to use this tool. However, it doesn't explicitly contrast with youfiliate_get_smart_link_stats or other similar tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
youfiliate_get_smart_link_statsARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint, destructiveHint, idempotentHint. Description adds value by specifying non-modification and detailing the breakdown dimensions (country, device, referrer, day), as well as listing common errors.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is concise and front-loaded, delivering key information in two sentences plus a brief error note. Every sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given output schema for return format, annotations for safety, and schema descriptions for parameters (though not in description), the tool is well-documented for a read-only stats retrieval. Includes error handling hints.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% per context signals, meaning the description text must compensate. However, the description does not explain any parameters (id, period, response_format), leaving the agent to rely solely on the schema, which is insufficient for full understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it gets click analytics for a specific smart link, breaking down counts by country, device, referrer, and day. Title in annotations and verb+resource structure distinguish it from siblings like get_aggregate_stats.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear context on what it returns and that it does not modify data. However, it does not explicitly state when to use this tool versus alternatives or provide exclusions, such as when to use get_aggregate_stats instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
youfiliate_get_youtube_statusARead-onlyIdempotentInspect
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_youtubeto connect.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint true and destructiveHint false, but description adds value by explicitly stating it does not modify data or initiate connections, confirming no side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise with two sentences and a bullet point. Front-loaded with the main purpose, no redundant words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read tool, the description covers purpose, behavior, error handling, and alternative tool. Output schema existence handles return value details, so no need to elaborate further.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description does not mention the single parameter (response_format). Although the schema provides a description, the tool description fails to add any context about this parameter, which is a gap given the 0% schema description coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool checks YouTube account connection status and returns specific information. It distinguishes itself from sibling tools like youfiliate_connect_youtube.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use (check status) and when not (if not connected, use youfiliate_connect_youtube). Provides a clear alternative action.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
youfiliate_list_migrationsBRead-onlyIdempotentInspect
List your YouTube description migrations with pagination.
Returns a paginated list of all migrations. Does NOT modify any data.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true. The description reinforces that it does not modify data and returns a paginated list. It adds context about pagination but does not disclose additional behavioral traits like rate limits or the structure of the returned data. With strong annotations, this is adequate but not exceptional.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with two sentences, front-loading the purpose. Every sentence adds value: it states what the tool does, that it returns a paginated list, and that it does not modify data. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description provides the core purpose and safety assurance, but lacks details about the return format (though there is an output schema), pagination behavior details, filtering options, and differentiation from sibling tools. For a simple listing tool, it is minimally complete but could be improved with more context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is reported as 0%, meaning the schema does not describe its parameters (though the provided schema has descriptions for limit and offset, but the signal indicates 0% coverage). The description only mentions 'with pagination', which vaguely hints at pagination but does not explain the limit, offset, or response_format parameters. The description fails to compensate for the lack of schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it lists migrations with pagination and returns a paginated list. It uses a specific verb 'List' and resource 'migrations'. However, it does not explicitly differentiate from the sibling tool 'youfiliate_get_migration_status', which might get a single migration's status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions 'Does NOT modify any data', indicating safe usage. However, it does not provide when-to-use guidance versus alternatives like 'youfiliate_get_migration_status' or any prerequisites (e.g., needing a YouTube connection). The usage context is implied but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
youfiliate_list_smart_linksARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and idempotentHint=true. The description reinforces idempotence by stating 'Does NOT create or modify any links' and adds pagination context. No new behavioral traits are disclosed beyond annotations, but consistency is maintained.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with a clear front-loaded purpose, bullet-style argument listing, and a helpful common errors section. Every sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the main functionality, pagination, filtering, and a common error. With an output schema present, return type details are not needed. However, it could mention that results can be formatted as markdown or json based on response_format parameter.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description lists key filters (health_status, search, ordering, limit, offset) but misses response_format. The input schema provides detailed descriptions for all nested parameters, so the description adds a concise summary but does not significantly enhance meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists smart links with optional filters and pagination. It explicitly says 'Does NOT create or modify any links,' distinguishing it from sibling tools like create_smart_link and update_smart_link.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for filtering and searching links but does not explicitly guide when to use this tool over alternatives like get_smart_link or other list tools. The common error note provides some context but lacks explicit when-to-use/when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
youfiliate_preview_migrationARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true, destructiveHint=false, idempotentHint=true. The description reinforces this by stating 'Does NOT modify any data or YouTube descriptions' and explains the dry-run behavior. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with 5 sentences, front-loaded with the core purpose, and includes usage guidance and errors without unnecessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (previewing a migration), the description covers purpose, safety, prerequisites, error handling, and references a sibling tool. An output schema exists, reducing need to describe return values.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds no parameter details, but the input schema provides comprehensive descriptions for all three parameters (conversion_mode, auto_geo_rules, response_format). Schema coverage is effectively high via schema, so the description's lack of parameter info is acceptable but not additive.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Preview a YouTube description migration without making changes.' It specifies the verb 'preview' and resource 'migration', and distinguishes itself from sibling tools like youfiliate_start_migration by emphasizing it is a dry-run.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes when to use: 'before making changes' (implied by 'dry-run'), and prerequisites: 'Requires a connected YouTube account.' It also provides common errors and a link to a sibling tool for resolution. Lacks explicit comparison to alternatives but context is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
youfiliate_rollback_migrationADestructiveInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Disclosures beyond annotations: modifies YouTube descriptions, asynchronous operation, requires confirmation. Annotations provide destructiveHint=true, but description adds critical context about user confirmation and asynchronicity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is concise and well-structured: main action first, then important warnings, then common errors. No unnecessary sentences.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive tool with 2 parameters and an output schema, the description covers purpose, usage, prerequisites, and error conditions comprehensively. The output schema likely covers return values, so no need to duplicate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Despite schema description coverage of 0% (though schema actually includes descriptions), the tool description thoroughly explains the confirm parameter and its importance. It reiterates the id parameter's purpose (Migration UUID) and provides usage guidance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'Roll back a completed migration, restoring original YouTube descriptions.' This provides a specific verb and resource, and distinguishes from sibling tools like youfiliate_start_migration.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description explicitly instructs to confirm with the user before executing and lists common errors including the need for confirm=True. It also mentions the prerequisite of a connected YouTube account. However, it does not explicitly state when not to use this tool versus alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
youfiliate_start_migrationADestructiveInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveness (destructiveHint: true). The description adds key details: the tool modifies YouTube descriptions, runs asynchronously, and requires explicit confirmation. It also mentions common errors. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured. It front-loads the core purpose, then provides critical usage notes, async behavior, prerequisites, and common errors in a scannable format. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the tool's purpose, key behavioral aspects, prerequisites, and common errors. It explains async tracking but does not explicitly state the return value (migration ID). Given that an output schema exists, this gap is minor.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already describes all parameters in detail, including the critical 'confirm' field's purpose. The tool description reinforces these points and adds usage context but does not introduce new parameter semantics beyond what the schema specifies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: starting a migration to convert YouTube description links to smart links. It distinguishes from sibling tools like preview_migration and rollback_migration by noting that the migration runs asynchronously and requires confirmation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear usage guidelines: requires user confirmation after previewing scope, mentions tracking with get_migration_status, and lists common errors including prerequisites like YouTube connection. It strongly implies that preview_migration should be used first to determine scope.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
youfiliate_update_preferencesAIdempotentInspect
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'.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide idempotentHint=true and destructiveHint=false. The description adds that no data is deleted and changes only affect new links, which supplements the annotations without contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences plus a bullet list, efficiently covering purpose, scope, and common errors. Front-loaded with the main action, no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema exists (return values not needed), the description fully covers what the tool does, its behavioral constraints, and error handling. It is complete for an agent to understand invocation requirements.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description mentions one parameter (redirect_type) and its valid values. Schema coverage is 0% (parameters not described in tool description), but the schema itself has descriptions for each parameter. The description adds minimal extra meaning beyond the schema, but not for all parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Update your smart link preferences/defaults,' specifying the verb and resource. It distinguishes from siblings like 'youfiliate_get_preferences' (read) and 'youfiliate_create_smart_link' (create) by focusing on preferences.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains that changes apply only to newly created links, guiding when to use. However, it lacks explicit exclusions or alternatives (e.g., for existing links, use youfiliate_update_smart_link). Common errors are listed, aiding correct invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
youfiliate_update_smart_linkAIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide idempotentHint=true and destructiveHint=false. Description adds behavioral details: partial update, geo rules replaced entirely, does NOT delete the link. This enriches understanding beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured: first sentence states purpose, second lists fields, third covers errors. It is concise and front-loaded but could be slightly tighter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (optional fields, nested objects), the description covers partial update, geo rules replacement, and common errors. It does not explain return values (mitigated by output schema) or deep link replacement behavior, but is adequate overall.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Each parameter in the schema has a detailed description. The description lists updatable fields but adds little extra meaning beyond the schema. It notes geo_rules replacement and common errors, which is helpful but not essential.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Update an existing smart link' with partial update behavior, distinguishing it from sibling tools like create, delete, or get. The title from annotations is also clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains partial update behavior and that geo rules are replaced entirely. It also lists common errors. However, it does not explicitly state when to use this tool versus alternatives like create or delete, though it is contextually clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
18 tool updates
v0.1.1- First observed
youfiliate_check_link_health - First observed
youfiliate_connect_youtube - First observed
youfiliate_create_smart_link - First observed
youfiliate_delete_smart_link - First observed
youfiliate_disconnect_youtube - First observed
youfiliate_get_aggregate_stats - First observed
youfiliate_get_migration_status - First observed
youfiliate_get_preferences - First observed
youfiliate_get_smart_link - First observed
youfiliate_get_smart_link_stats - First observed
youfiliate_get_youtube_status - First observed
youfiliate_list_migrations - First observed
youfiliate_list_smart_links - First observed
youfiliate_preview_migration - First observed
youfiliate_rollback_migration - First observed
youfiliate_start_migration - First observed
youfiliate_update_preferences - First observed
youfiliate_update_smart_link
TDQS
Scored across 18 tools
Each tool has a clearly distinct purpose, covering separate actions like CRUD on smart links, YouTube connection management, migration operations, and preferences. There is no overlap or ambiguity.
All tool names follow a consistent pattern: 'youfiliate_' + verb_noun in snake_case (e.g., youfiliate_create_smart_link, youfiliate_get_youtube_status). No deviations or mixed conventions.
With 18 tools, the set is comprehensive yet focused—covering smart link management, migrations, YouTube integration, and preferences. The count is appropriate for the server's scope.
The tool surface covers the full lifecycle of smart links (create, read, update, delete, list, stats, health), migrations (preview, start, status, list, rollback), YouTube connection, and preferences. No obvious gaps.
Maintenance
Related MCP Connectors
MCP server unifying ERPs, CRMs, APIs and knowledge base for Claude, ChatGPT and Gemini.
Hosted Amazon Seller and Vendor MCP server for Claude, ChatGPT, Cursor, Codex, Gemini, Copilot.
Hosted Amazon Seller Central and Amazon Ads MCP server for Claude, ChatGPT, Cursor, and agents.
Hosted MCP server connecting claude.ai, ChatGPT and other AI apps to your own computer
Related MCP Servers
- FlicenseNot gradedqualityNot gradedmaintenanceAn MCP server that provides AI assistants with access to the FirstPromoter affiliate management platform for managing referrals, promoters, campaigns, and commissions. It is designed for remote multi-user deployment and supports operations via HTTP/SSE transport.-
- AlicenseAqualityDmaintenanceMCP server for managing affiliate and referral programs. Track referrals, manage affiliates, process conversions, and handle payouts through AI assistants like Claude, Cursor, and ChatGPT.1823 npm2MIT
- FlicenseAqualityDmaintenanceMCP server for ManyChat API integration that enables Claude and other AI assistants to manage subscribers, tags, custom fields, flows, and send messages through natural language.17-
- AlicenseBqualityCmaintenanceComprehensive MCP server to manage WordPress sites via natural language, enabling content creation, SEO, and multi-site administration through AI tools like Claude Desktop.701,291 npmMIT