Skip to main content
Glama

Server Details

Affilio.link URL shortener — shorten affiliate links, get QR codes, powered by Affilio's affiliate link management platform.

Ownership verified
Status
Healthy
Uptime
98.9% over 78 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
ChatGPT
–
Claude
–

TDQS

A3.8/5.0

Scored across 20 tools

Disambiguation4/5

Most tools target a distinct resource+action pair, and the descriptions actively disambiguate the trickiest pairs (shorten_url vs. auth.create_link, list_links vs. list_links_ranked, check_url vs. check_international_redirect). The only residual overlap is between the two URL-checking tools and between get_link_stats and list_links_ranked, but the stated use cases differ enough that an agent can pick correctly.

Naming Consistency4/5

Nearly everything follows a verb_noun snake_case pattern (create_link, get_product, list_store_products, set_link_visibility, generate_qr). The split between the `auth.`-prefixed account tools and the unprefixed public utilities is a deliberate namespace boundary rather than chaotic drift, though it does break the uniform pattern.

Tool Count3/5

Twenty tools is on the heavy side for an affiliate-link service; the link CRUD, product, storefront, analytics, and utility groupings are all justified, but a few (list_links_ranked, set_link_visibility, add_product_link) could arguably be folded into broader tools. It is borderline rather than clearly over-scoped.

Completeness3/5

Link lifecycle is well covered (create, get, list, list_ranked, update, archive, product association, visibility, stats), but archive has no unarchive/restore counterpart and products lack update, delete, and a catalog-wide list operation (only list_store_products exists). Storefront coverage is also thin — get and a partial update, with branding updates punted to the external dashboard.

Available Tools

20 tools
auth.create_productAuth.Create ProductAInspect

Create a new product in your Affilio product catalog.

Products are the items you promote via affiliate links. Each product can have multiple affiliate links (one per platform or country) and can be added to one or more Affilio storefronts.

The response includes the new product's ID — you'll need it for auth.add_product_link, auth.get_product, and storefront operations.

Requires Bearer token authentication.

Technical reference: https://affilio.link/blog/mcp-for-everyone

NameRequiredDescriptionDefault
urlYesCanonical product page URL (affiliate or standard). Affilio detects and classifies the affiliate network automatically. Example: https://www.amazon.com/dp/B09XS7JWHH?tag=mystore-20
nameYesProduct display name shown in your storefront and link catalog. Example: 'Sony WH-1000XM5 Wireless Noise-Cancelling Headphones'.
platformYesAffiliate platform identifier for this product — e.g. 'amazon', 'ebay', 'awin'. Use the platform name as returned by auth.list_integrations.
image_urlNoOptional product image URL — must be a publicly accessible HTTPS URL. Displayed in storefront product cards and listings. Example: https://m.media-amazon.com/images/I/71o8Q5XJS5L.jpg
descriptionNoOptional product description displayed to storefront visitors. Supports plain text. Omit to leave blank.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the behavioral disclosure burden. It states this is a creation operation, that a Bearer token is required, and that the response contains the new product ID for downstream use. It also clarifies the product-to-affiliate-link relationship. It does not cover idempotency or error behavior, but it provides meaningful operational context beyond the bare mutation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, front-loaded with the main action, and every sentence adds value: the action, the product concept, downstream usage of the returned ID, authentication, and a reference link. No filler or unnecessary repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple enough, the input schema is fully documented, and an output schema exists, so the description does not need to explain return values in detail. It covers the domain model, the required auth, and the follow-up operations. It could be more explicit about when not to use it, but for a create-with-five-parameters tool it is sufficiently complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already thoroughly documents all five parameters with examples. The description adds conceptual context about products and affiliate links, but it does not add parameter-level meaning beyond what the schema provides. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb and resource: 'Create a new product in your Affilio product catalog.' It distinguishes products from links by explaining that products are promoted via affiliate links and can have multiple links, which separates create_product from sibling auth.create_link and auth.add_product_link.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context for when to call this tool: before adding product links or storefront operations, since 'the response includes the new product's ID' needed by auth.add_product_link and auth.get_product. It does not explicitly state when not to use it or name alternatives, but the product/link distinction makes the intended usage clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

auth.get_productAuth.Get ProductAInspect

Retrieve a single product from your Affilio product catalog by ID.

Returns full product metadata: name, description, image URL, associated affiliate links, categories, custom attributes, visibility/active status, and timestamps.

Requires Bearer token authentication.

Technical reference: https://affilio.link/blog/mcp-for-everyone

NameRequiredDescriptionDefault
product_idYesProduct ID returned by auth.create_product or auth.search_products.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full behavioral burden. It discloses the Bearer token authentication requirement and the read-only nature of retrieving a product, and it summarizes what metadata is returned. It does not describe edge cases like invalid IDs, but for a straightforward single-product getter this is a minor omission.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is four sentences with no filler. It front-loads the action and resource, then efficiently covers return contents, authentication, and a reference link. Every sentence serves a purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter, single-product getter with an output schema available, the description is complete enough to call correctly. It includes the required parameter origin, what the response contains, and the authentication prerequisite. Nothing essential is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and the product_id parameter already has a clear description explaining it comes from auth.create_product or auth.search_products. The tool description adds only the context of retrieving by ID, so its parameter-level contribution beyond the schema is minimal but acceptable.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Retrieve a single product from your Affilio product catalog by ID.' This clearly distinguishes it from siblings such as auth.list_store_products and auth.search_products, which operate over multiple products or use search criteria.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The tool says it retrieves a single product by ID, which clearly implies it is for when you already have a product_id. The parameter description adds that product_id comes from auth.create_product or auth.search_products, giving useful context. It does not explicitly name alternatives or when-not-to-use cases, but the intended usage is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

auth.get_storeAuth.Get StoreAInspect

Retrieve your Affilio storefront configuration.

Returns full store configuration: name, description, public store URL/slug, branding settings (primary/secondary colors, logo, fonts, favicon, banner image), product display layout, footer text, embedded snippet, active status, and timestamps.

Requires Bearer token authentication.

Technical reference: https://affilio.link/blog/mcp-for-everyone

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of disclosure. It explicitly states 'Retrieve' (a read operation), describes the full contents of the response, and calls out the Bearer token authentication requirement. It does not discuss deeper behavioral traits like rate limits or error semantics, but for a simple parameterless getter this is solid coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and well-organized: a one-line purpose, a bullet-style list of returned fields, an authentication note, and a reference link. Every sentence earns its place, and the core retrieval intent is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a parameterless read tool with an output schema available, the description is fully sufficient. It names the resource, details the return contents, and states the authentication requirement. Nothing needed to invoke the tool correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters and the schema has 100% description coverage, so there is nothing for the description to add regarding parameter meaning. The baseline for a zero-parameter tool is 4, and the description appropriately focuses on the return payload instead.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Retrieve your Affilio storefront configuration.' It lists the exact fields returned, distinguishing it clearly from sibling tools like auth.get_product or auth.list_links. An agent can immediately tell this is the read-only storefront-level getter.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description makes clear it returns store configuration and requires Bearer token authentication, giving a usable context. However, it does not explicitly state when to use this tool versus alternatives such as auth.update_store or when a cached value might suffice. No exclusions or alternative routing are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

auth.list_integrationsAuth.List IntegrationsAInspect

List all affiliate platform integrations connected to your Affilio account.

Returns the status, configuration, and credential metadata for each connected integration. Active integrations are required to use auth.search_products for live product search.

Requires Bearer token authentication.

Technical reference: https://affilio.link/blog/mcp-for-everyone

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden of disclosure. It states the operation is a list (read-only), enumerates returned content ('status, configuration, and credential metadata'), and mentions Bearer token authentication. It does not discuss rate limits, pagination, or error behavior, but those are less critical for a parameterless read-only call.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four substantive sentences plus a reference link. The purpose is front-loaded, the return contents are in the second sentence, and the dependency on auth.search_products is a high-value note. No filler or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple no-argument list tool, this is complete: purpose, returned data categories, the related search tool's prerequisite, and authentication requirement are all present. An output schema exists, so the description need not spell out return value structure.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has zero parameters, so the 0-parameters baseline of 4 applies. The description adds no parameter-level details because there are none to document.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'List all affiliate platform integrations connected to your Affilio account.' The resource is distinct from sibling list tools (links, products, stores), though it never names a sibling or explicitly contrasts with auth.list_links or auth.list_store_products.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives useful context by stating that 'Active integrations are required to use auth.search_products for live product search,' which implies checking this tool before searching. It lacks explicit when-not-to-use guidance or alternatives, so it stops short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

auth.list_store_productsAuth.List Store ProductsAInspect

List all products assigned to your Affilio storefront.

Returns paginated product objects with: name, description, image URL, associated affiliate links, categories, custom attributes, and active status. Products are returned in their configured storefront display order.

Use skip + limit to paginate through large storefronts. Requires Bearer token authentication.

Technical reference: https://affilio.link/blog/mcp-for-everyone

NameRequiredDescriptionDefault
skipNoNumber of products to skip for pagination. Default: 0.
limitNoMaximum number of products to return per page (1–200). Default: 50.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral disclosure burden. It discloses the response contents, pagination behavior, storefront ordering, and Bearer token requirement. For a read-only list operation, this is reasonably transparent, though it does not mention rate limits or explicit read-only guarantees.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and front-loaded with the main purpose. Each sentence adds useful context such as return fields, ordering, pagination, authentication, and a reference link. The technical reference link is slightly extraneous but not distracting.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's low complexity, an output schema, and fully described optional parameters, the description covers the essentials: what is returned, pagination, ordering, and authentication. It does not explicitly route agents away from sibling tools or state read-only behavior, but for a list endpoint these omissions are minor.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and both skip and limit already have clear descriptions, defaults, and bounds. The description only reinforces pagination without adding semantic details beyond what the schema provides, so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'List all products assigned to your Affilio storefront.' It clearly conveys the scope and distinguishes this from a generic list call, though it does not explicitly contrast it with sibling tools like auth.search_products or auth.get_product.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives concrete operational guidance ('Use skip + limit to paginate through large storefronts') and mentions authentication. However, it does not explain when to prefer this tool over sibling alternatives such as auth.search_products or auth.list_links, leaving some selection burden on the agent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

auth.search_productsAuth.Search ProductsAInspect

Search for products on a connected affiliate platform.

Returns live product listings from the platform's catalog including: product name, price, image URL, direct affiliate link, ASIN/item ID, and platform metadata. Results are ready to pass directly to auth.create_product.

NameRequiredDescriptionDefault
limitNoMaximum number of products to return (1–50). Default: 10.
queryYesProduct search query sent to the affiliate platform's live catalog. Use natural-language product descriptions for best results. Example: 'wireless noise cancelling headphones', 'standing desk electric'.
platformYesAffiliate platform to search. Supported values: amazon, aliexpress, ebay. The corresponding platform integration must be connected in your Affilio account (Settings → Integrations). Check auth.list_integrations to verify connectivity.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must carry the behavioral burden; it usefully enumerates the returned fields (name, price, image URL, affiliate link, ASIN, metadata), aiding the agent. But it omits rate limits, failure modes, and explicitly stating this is a non-mutating read—search implies read but is never asserted, and the platform-connection prerequisite only appears in the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two compact sentences, front-loaded with the purpose and then the return shape and workflow handoff. Every sentence carries distinct value with no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given a 3-param tool with full schema coverage and an output schema, the description covers purpose, return contents, and downstream usage adequately. The only notable gap is the platform-integration prerequisite, which lives in the schema rather than the description.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema fully documents query, platform (with supported values), and limit. The description adds no parameter-level meaning beyond that, so the baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Search) and resource (products) scoped to 'a connected affiliate platform', and clarifies it returns live catalog data rather than stored records, which implicitly separates it from siblings like get_product or list_store_products. It does not explicitly name any sibling, so it falls short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The line 'Results are ready to pass directly to auth.create_product' gives a clear workflow context (find then create), which tells the agent when to reach for this tool. However, there are no exclusions or explicit alternatives (e.g., when to use list_store_products instead), so it stops short of full routing guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

auth.update_storeAuth.Update StoreAInspect

Update your Affilio storefront's metadata.

Provide any combination of name, description, and layout — fields omitted are left unchanged. For full branding updates (colors, logo, custom fonts, banner image, favicon, footer text, embedded snippet) use the Affilio dashboard → Storefront settings.

Requires Bearer token authentication.

Technical reference: https://affilio.link/blog/mcp-for-everyone

NameRequiredDescriptionDefault
nameNoNew display name for the store. Omit to leave unchanged.
layoutNoProduct display layout. Accepted values: 'left' (sidebar layout) / 'top' (horizontal top-bar layout) / 'grid' (default card grid layout). Omit to leave unchanged.
descriptionNoNew store description shown to storefront visitors. Supports plain text. Omit to leave unchanged.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must carry the behavioral burden. It does disclose Bearer token authentication and the partial-update contract ('fields omitted are left unchanged'), which is valuable. It says nothing about reversibility, error behavior, or whether the name is unique/validated, leaving real gaps for a mutation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the purpose, then the partial-update rule, then the out-of-scope routing, then auth. Efficient overall, though the marketing 'Technical reference' blog URL adds little for an agent deciding how to call the tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and the description covers scope, partial-update semantics, auth, and the out-of-scope branding case. Only error/validation behavior is unaddressed, which is a minor gap for a low-complexity 3-param update.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, with per-parameter descriptions including the accepted layout values, so the schema already does the heavy lifting. The description's only added value is the 'any combination / omitted means unchanged' framing, which is a baseline-3 contribution.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Update your Affilio storefront's metadata') and enumerates exactly which fields are in scope, which lets an agent distinguish it from auth.get_store and the product/link tools. It does not name a sibling explicitly, so it stops short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear context for use ('provide any combination of name, description, layout') and an explicit when-not: full branding updates must go through the Affilio dashboard → Storefront settings. No alternative MCP tool is named, but the exclusion is concrete and actionable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_international_redirectCheck International RedirectAInspect

Test an Amazon affiliate link from US, EU, and Asia vantage points to check whether Amazon's OneLink geo-redirect is active for it.

Returns per-region resolved marketplace domains, a summary of whether a redirect was detected, and caveats about the test's limitations.

Use this tool when the user needs to:

  • Check if their Amazon affiliate link redirects international visitors

  • Verify OneLink is configured for a specific product link

  • Diagnose why international clicks may not be earning commissions

NameRequiredDescriptionDefault
urlYesAn Amazon product URL (amazon.<tld>/dp/... or /gp/product/...) or an amzn.to short link. Non-Amazon URLs are rejected. Example: https://www.amazon.com/dp/B08N5WRWNW?tag=mystore-20

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It does well: it discloses the multi-region testing behavior, the shape of the result (per-region resolved domains plus a redirect-detected summary), and honestly flags that the test has limitations. It stops short of naming those caveats, timeouts, or rate limits, so an agent can't predict cost or failure modes.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core action and mechanism, followed by a return-value sentence and a bulleted usage list. Slightly longer than needed given the schema covers input validation, but every line adds orientation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return-value detail is not required, and the description still summarizes it usefully. The main residual gap is the unnamed 'caveats about the test's limitations' and any latency or regional-coverage boundary, minor for a single-parameter read-style check.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the schema itself defines the accepted URL forms (amazon.<tld>/dp/, /gp/product/, amzn.to) and rejection of non-Amazon URLs with an example. The description adds no parameter detail beyond that, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb (test) and resource (an Amazon affiliate link across US/EU/Asia vantage points) and names the concrete mechanism being verified: OneLink geo-redirect. It is clearly distinguishable from siblings like check_url (generic URL liveness) and get_link_stats (performance data).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides an explicit 'Use this tool when the user needs to' list with three concrete scenarios (international redirect check, OneLink verification, diagnosing missed international commissions). Implicitly excludes generic link validation, which routes to check_url.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_urlCheck UrlAInspect

Check the health and destination of a URL (link checker / redirect resolver).

Follows the redirect chain, returns the final resolved URL, HTTP status codes, page title, and — for Amazon and AliExpress product pages — whether the product is still available (in stock / not deleted).

Use this tool when the user needs to:

  • Verify an affiliate or product link still works (not broken / 404 / dead)

  • Resolve where a short or redirecting link actually lands

  • Check whether an Amazon/AliExpress product is still available

  • Inspect the redirect chain of a URL

NameRequiredDescriptionDefault
urlYesFull HTTP/HTTPS URL to health-check. The tool follows redirects, reports the final URL and HTTP status, extracts the page title, and detects Amazon/AliExpress product availability. Example: https://www.amazon.com/dp/B08N5WRWNW

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description carries the full disclosure burden; it does state the key behaviors (follows redirect chains, extracts titles, special-cases Amazon/AliExpress availability), which is genuinely beyond the schema. However it says nothing about timeouts, non-HTML/JS-rendered pages, bot-blocked responses, rate limits, or what a failure looks like — meaningful gaps for a network-fetching tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The one-line purpose statement is front-loaded and the bulleted trigger list is scannable. There is mild redundancy between the paragraph describing outputs and the bullets restating the same use cases, but nothing is filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, the description need not explain return shape, and a single fully-documented parameter keeps the surface small. What is missing is failure-mode context (broken DNS, timeouts, blocked pages) that an agent would want before deciding to rely on the result.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the single `url` parameter is already documented in detail (with an example), so the baseline applies. The description restates the same behavior but adds no per-parameter meaning such as accepted formats, whether tracking params are stripped, or handling of non-HTTP schemes.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening line names a specific verb and resource ('check the health and destination of a URL') and adds a clarifying gloss ('link checker / redirect resolver'), then enumerates the concrete outputs: final resolved URL, status codes, page title, and Amazon/AliExpress availability. It never names the most confusable sibling (check_international_redirect) or contrasts with shorten_url, so sibling differentiation is implied rather than stated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

A dedicated 'Use this tool when the user needs to:' block gives four concrete trigger scenarios (verify affiliate link not dead, resolve short link destination, check product availability, inspect redirect chain). That is clear positive guidance, but there are no exclusions and no pointer to an alternative tool for related-but-different jobs.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generate_qrGenerate QrAInspect

Generate a branded QR code PNG image for any URL with full visual customization.

Returns a base64-encoded PNG you can embed directly in a web page (<img src="data:image/png;base64,..."/>), email, or document. Color, transparency, and dot style are all configurable.

Use this tool when the user needs to:

  • Create a scannable QR code for a URL

  • Generate print-ready QR codes for marketing materials, packaging, or flyers

  • Embed a QR code in an email or web page

  • Create a branded QR code matching their visual identity (custom colors, transparent background)

NameRequiredDescriptionDefault
urlYesFull URL to encode in the QR code. Must be a valid HTTP/HTTPS URL. Example: https://mcp.affilio.link/r/abc1234
colorNoForeground/dot color as a CSS hex string. Examples: #000000 (black), #1A73E8 (Google blue), #FF5722 (deep orange). Default: #000000 (black).#000000
roundedNoWhen true, uses rounded/circular dot style instead of hard square pixels. Produces a modern, visually appealing QR code. Default: true.
transparentNoWhen true, the QR code background is rendered transparent (PNG alpha channel). Overrides background_color. Ideal for overlaying on branded backgrounds. Default: true.
background_colorNoBackground fill color as a CSS hex string. Ignored when transparent=true. Examples: #FFFFFF (white), #F5F5F5 (light grey). Default: #FFFFFF (white).#FFFFFF

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description does carry useful behavioral weight: it discloses the base64-PNG return format and the embed pattern. However, it says nothing about authentication, rate limits, failure modes for invalid URLs, or image dimensions, so the safety/operational profile is only partially covered.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The first sentence front-loads the core action and output, followed by return-format details and a scannable bullet list. The bullets are slightly redundant with the opening sentence but remain useful and short; no filler paragraphs.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need no exposition, and the schema fully documents the five parameters. The description is complete for invocation purposes, with only tangential gaps (auth, limits, image size) remaining.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and each parameter has an example, default, and interaction note (transparent overrides background_color). The description only restates the categories as "color, transparency, and dot style" without adding syntax, constraints, or edge-case guidance beyond the schema, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Generate) and resource (a branded QR code PNG for a URL) with the output format named up front. It is clearly distinguishable from siblings like shorten_url or check_url, since none of them produce an image artifact.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides four explicit use-case bullets (scannable QR, print-ready marketing, email/web embedding, branded visual identity), giving a clear picture of when to reach for it. It stops short of saying when NOT to use it or pointing to an alternative, so it lands just below the top score.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

shorten_urlShorten UrlAInspect

Shorten any URL into a compact, trackable Affilio.link short URL with affiliate link intelligence.

IMPORTANT: This is the UNAUTHENTICATED public shortener. It creates a TEMPORARY, MCP-hosted link at mcp.affilio.link/r/{code} that expires after 30 days and is NOT tied to any Affilio account or dashboard. Links are verified for security before they redirect (new/unknown domains return pending=True until verified). For a PERMANENT, account-owned link at affilio.link/ur/{code} with full click analytics, use the auth.create_link tool instead (requires a bearer token).

Affilio deduplicates identical URLs (same URL always returns the same short link) and generates a branded QR code in the same call.

Use this tool when the user needs to:

  • Shorten a URL for sharing on social media, email, or in content

  • Generate a QR code for print/digital media alongside the short link

  • Get a compact, clean version of a long product or affiliate URL

  • Create a throwaway/temporary link that does not need account tracking

NameRequiredDescriptionDefault
urlYesFull HTTP/HTTPS URL to shorten. Supports affiliate links from Amazon Associates, eBay Partner Network, AliExpress, Awin, ShareASale, Impact, CJ Affiliate, Rakuten Advertising, Etsy, Walmart, Target, Best Buy, and any other URL. Example: https://www.amazon.com/dp/B08N5WRWNW?tag=mystore-20

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description carries the full burden and largely does: 30-day expiry, not tied to any account, unauthenticated access, security verification with pending=True on new/unknown domains, and URL-level deduplication returning the same code. These are exactly the behavioral traits an agent needs before calling a URL shortener.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded correctly: the unauthenticated/temporary warning and the auth.create_link escape hatch come before any detail. Slightly long, and the 'Use this tool when' bullet list partly restates the earlier prose, costing some economy without hurting comprehension.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Complete for a one-parameter tool with an output schema present. Lifetime, ownership, verification state, dedup behavior, and the QR side-effect are all disclosed, so nothing an agent needs to call it correctly or set user expectations is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Only one parameter, and the schema already documents it fully (100% coverage, accepted URL form, affiliate networks, example). The description adds meaning beyond the schema by explaining that identical URLs deduplicate to the same short link and that a branded QR is generated in the same call, which affects how the agent should interpret and reuse results.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource (shorten URL into an Affilio.link short link) and immediately scopes it as the unauthenticated, temporary, MCP-hosted variant at mcp.affilio.link/r/{code}. That naming of the counterpart (affilio.link/ur/{code} via auth.create_link) makes it distinguishable from siblings without opening a schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when to use this tool (social sharing, QR for print, throwaway links) and names the alternative plus its selection condition: permanent, account-owned, analytics-bearing links require auth.create_link with a bearer token. Both the when and the when-not are present.

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.

  1. 1 tool update
    • Changedauth.update_store1 field changed
      • changedInput schema / properties / layout / description
        Previous value: -"Product display layout. Accepted values: 'grid' (default card grid layout) or 'list' (vertical list view). Omit to leave unchanged."New value: +"Product display layout. Accepted values: 'left' (sidebar layout) / 'top' (horizontal top-bar layout) / 'grid' (default card grid layout). Omit to leave unchanged."
  2. 1 tool update
    • Changedauth.list_links2 fields changed
      • changedInput schema / properties / limit / description
        Previous value: -"Maximum number of links to return per page (1–200). Default: 50."New value: +"Maximum number of links to return per page (1–100). Default: 50."
      • changedInput schema / properties / limit / maximum
        Previous value: -200New value: +100
  3. 1 tool update
    • Addedcheck_international_redirect
  4. 1 tool update
    • Changedgenerate_qr1 field changed
      • changedInput schema / properties / url / description
        Previous value: -"Full URL to encode in the QR code. Must be a valid HTTP/HTTPS URL. Example: https://affilio.link/abc123"New value: +"Full URL to encode in the QR code. Must be a valid HTTP/HTTPS URL. Example: https://mcp.affilio.link/r/abc1234"
  5. 1 tool update
    • Addedcheck_url
  6. 14 tool updates
    • Changedauth.add_product_link2 fields changed
      • changedInput schema / properties / link_id / description
        Previous value: -"Unique link/URL ID (MongoDB ObjectId string) of the affiliate link to associate with this product. Create links first via auth.create_link, then pass the returned ID here."New value: +"Link ID returned by auth.create_link."
      • changedInput schema / properties / product_id / description
        Previous value: -"Unique product ID (MongoDB ObjectId string) of the product to attach the link to. Retrieve via auth.create_product or auth.get_product."New value: +"Product ID returned by auth.create_product or auth.get_product."
    • Changedauth.archive_link1 field changed
      • changedInput schema / properties / link_id / description
        Previous value: -"Unique link ID (MongoDB ObjectId string) of the link to archive. Archived links stop redirecting but are NOT permanently deleted — click history and analytics are preserved."New value: +"Link ID returned by auth.create_link or auth.list_links. Archived links stop redirecting but are NOT permanently deleted — click history and analytics are preserved."
    • Changedauth.create_link4 fields changed
      • removedInput schema / properties / destination
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "type": "string"
        -    },
        -    {
        -      "type": "null"
        -    }
        -  ],
        -  "default": null,
        -  "description": "Override destination URL — the URL visitors land on after clicking the short link. Defaults to `url` when not set. Useful for split-testing or geo-redirect scenarios."
        -}
      • removedInput schema / properties / project_id
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "type": "string"
        -    },
        -    {
        -      "type": "null"
        -    }
        -  ],
        -  "default": null,
        -  "description": "Project ID (MongoDB ObjectId string) to assign this link to. If omitted, the link is created in your account's default project. Retrieve project IDs from the Affilio dashboard or via the API."
        -}
      • removedInput schema / properties / title
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "type": "string"
        -    },
        -    {
        -      "type": "null"
        -    }
        -  ],
        -  "default": null,
        -  "description": "Human-readable label for the link — e.g. 'Sony WH-1000XM5 Headphones'. If omitted, Affilio attempts to fetch the page title automatically."
        -}
      • changedInput schema / properties / url / description
        Previous value: -"Full destination URL for the affiliate link — e.g. https://www.amazon.com/dp/B08N5WRWNW?tag=mystore-20. Supports Amazon Associates, eBay Partner Network, AliExpress, Awin, ShareASale, Impact, CJ Affiliate, Rakuten, Etsy, Walmart, Target, Best Buy, and any standard HTTP/HTTPS URL."New value: +"The affiliate URL to shorten and track. Any valid HTTP/HTTPS affiliate link is accepted. Affilio auto-detects the affiliate network from the URL."
    • Changedauth.create_product1 field changed
      • changedInput schema / properties / platform / description
        Previous value: -"Affiliate platform identifier. Supported values: amazon, aliexpress, ebay, awin, shareasale, impact, cj, rakuten, etsy, walmart, target, bestbuy."New value: +"Affiliate platform identifier for this product — e.g. 'amazon', 'ebay', 'awin'. Use the platform name as returned by auth.list_integrations."
    • Changedauth.get_link1 field changed
      • changedInput schema / properties / link_id / description
        Previous value: -"Unique link ID (MongoDB ObjectId string) returned when the link was created, or retrieved via auth.list_links. Example: '64a1f2b3c4d5e6f7a8b9c0d1'."New value: +"Link ID returned by auth.create_link or auth.list_links."
    • Changedauth.get_link_stats1 field changed
      • changedInput schema / properties / link_id / description
        Previous value: -"Unique link ID (MongoDB ObjectId string) of the link whose click statistics to retrieve. Retrieve link IDs via auth.list_links or auth.create_link."New value: +"Link ID returned by auth.create_link or auth.list_links."
    • Changedauth.get_product1 field changed
      • changedInput schema / properties / product_id / description
        Previous value: -"Unique product ID (MongoDB ObjectId string) returned by auth.create_product or found via auth.search_products. Example: '64a1f2b3c4d5e6f7a8b9c0d1'."New value: +"Product ID returned by auth.create_product or auth.search_products."
    • Changedauth.get_store2 fields changed
      • removedInput schema / properties / store_id
        Removed value: -{
        -  "description": "Unique store ID (MongoDB ObjectId string) of the Affilio storefront to retrieve. Retrieve store IDs from the Affilio dashboard or via the API.",
        -  "type": "string"
        -}
      • removedInput schema / required
        Removed value: -[
        -  "store_id"
        -]
    • Changedauth.list_links1 field changed
      • removedInput schema / properties / project_id
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "type": "string"
        -    },
        -    {
        -      "type": "null"
        -    }
        -  ],
        -  "default": null,
        -  "description": "Filter links by project ID (MongoDB ObjectId string). If omitted, returns links across all projects in the account."
        -}
    • Changedauth.list_links_ranked1 field changed
      • removedInput schema / properties / project_id
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "type": "string"
        -    },
        -    {
        -      "type": "null"
        -    }
        -  ],
        -  "default": null,
        -  "description": "Filter to a specific project ID (MongoDB ObjectId string). If omitted, ranks links across all projects in the account."
        -}
    • Changedauth.list_store_products2 fields changed
      • removedInput schema / properties / store_id
        Removed value: -{
        -  "description": "Unique store ID (MongoDB ObjectId string) of the storefront whose products to list.",
        -  "type": "string"
        -}
      • removedInput schema / required
        Removed value: -[
        -  "store_id"
        -]
    • Changedauth.set_link_visibility2 fields changed
      • changedInput schema / properties / link_id / description
        Previous value: -"Unique link ID (MongoDB ObjectId string) of the link whose visibility to change."New value: +"Link ID returned by auth.create_link or auth.list_links."
      • changedInput schema / properties / product_id / description
        Previous value: -"Unique product ID (MongoDB ObjectId string) that the link belongs to. Link visibility in Affilio is managed per product; retrieve via auth.create_product or auth.get_product."New value: +"Product ID that owns this link. Returned by auth.create_product or auth.get_product."
    • Changedauth.update_link1 field changed
      • changedInput schema / properties / link_id / description
        Previous value: -"Unique link ID (MongoDB ObjectId string) of the link to update. Retrieve via auth.list_links or from the create response."New value: +"Link ID returned by auth.create_link or auth.list_links."
    • Changedauth.update_store2 fields changed
      • removedInput schema / properties / store_id
        Removed value: -{
        -  "description": "Unique store ID (MongoDB ObjectId string) of the storefront to update.",
        -  "type": "string"
        -}
      • removedInput schema / required
        Removed value: -[
        -  "store_id"
        -]
  7. 1 tool update
    • Changedauth.set_link_visibility3 fields changed
      • addedInput schema / properties / product_id
        Added value: +{
        +  "description": "Unique product ID (MongoDB ObjectId string) that the link belongs to. Link visibility in Affilio is managed per product; retrieve via auth.create_product or auth.get_product.",
        +  "type": "string"
        +}
      • changedInput schema / properties / visibility / description
        Previous value: -"Visibility setting for the link. Accepted values: 'public' — link is accessible to anyone with the short URL and appears in storefront listings; 'private' — link is hidden from public access and storefront listings, only visible to the account owner."New value: +"Visibility setting for the link. Accepted values: 'public' — link is visible in the product's storefront listing; 'private' — link is hidden from storefront listings."
      • changedInput schema / required
        Previous value: -[
        -  "link_id",
        -  "visibility"
        -]New value: +[
        +  "product_id",
        +  "link_id",
        +  "visibility"
        +]
  8. 17 tool updates
    • Changedauth.add_product_link2 fields changed
      • addedInput schema / properties / link_id / description
        Added value: +"Unique link/URL ID (MongoDB ObjectId string) of the affiliate link to associate with this product. Create links first via auth.create_link, then pass the returned ID here."
      • addedInput schema / properties / product_id / description
        Added value: +"Unique product ID (MongoDB ObjectId string) of the product to attach the link to. Retrieve via auth.create_product or auth.get_product."
    • Changedauth.archive_link1 field changed
      • addedInput schema / properties / link_id / description
        Added value: +"Unique link ID (MongoDB ObjectId string) of the link to archive. Archived links stop redirecting but are NOT permanently deleted — click history and analytics are preserved."
    • Changedauth.create_link4 fields changed
      • addedInput schema / properties / destination / description
        Added value: +"Override destination URL — the URL visitors land on after clicking the short link. Defaults to `url` when not set. Useful for split-testing or geo-redirect scenarios."
      • addedInput schema / properties / project_id / description
        Added value: +"Project ID (MongoDB ObjectId string) to assign this link to. If omitted, the link is created in your account's default project. Retrieve project IDs from the Affilio dashboard or via the API."
      • addedInput schema / properties / title / description
        Added value: +"Human-readable label for the link — e.g. 'Sony WH-1000XM5 Headphones'. If omitted, Affilio attempts to fetch the page title automatically."
      • addedInput schema / properties / url / description
        Added value: +"Full destination URL for the affiliate link — e.g. https://www.amazon.com/dp/B08N5WRWNW?tag=mystore-20. Supports Amazon Associates, eBay Partner Network, AliExpress, Awin, ShareASale, Impact, CJ Affiliate, Rakuten, Etsy, Walmart, Target, Best Buy, and any standard HTTP/HTTPS URL."
    • Changedauth.create_product5 fields changed
      • addedInput schema / properties / description / description
        Added value: +"Optional product description displayed to storefront visitors. Supports plain text. Omit to leave blank."
      • addedInput schema / properties / image_url / description
        Added value: +"Optional product image URL — must be a publicly accessible HTTPS URL. Displayed in storefront product cards and listings. Example: https://m.media-amazon.com/images/I/71o8Q5XJS5L.jpg"
      • addedInput schema / properties / name / description
        Added value: +"Product display name shown in your storefront and link catalog. Example: 'Sony WH-1000XM5 Wireless Noise-Cancelling Headphones'."
      • addedInput schema / properties / platform / description
        Added value: +"Affiliate platform identifier. Supported values: amazon, aliexpress, ebay, awin, shareasale, impact, cj, rakuten, etsy, walmart, target, bestbuy."
      • addedInput schema / properties / url / description
        Added value: +"Canonical product page URL (affiliate or standard). Affilio detects and classifies the affiliate network automatically. Example: https://www.amazon.com/dp/B09XS7JWHH?tag=mystore-20"
    • Changedauth.get_link1 field changed
      • addedInput schema / properties / link_id / description
        Added value: +"Unique link ID (MongoDB ObjectId string) returned when the link was created, or retrieved via auth.list_links. Example: '64a1f2b3c4d5e6f7a8b9c0d1'."
    • Changedauth.get_link_stats1 field changed
      • addedInput schema / properties / link_id / description
        Added value: +"Unique link ID (MongoDB ObjectId string) of the link whose click statistics to retrieve. Retrieve link IDs via auth.list_links or auth.create_link."
    • Changedauth.get_product1 field changed
      • addedInput schema / properties / product_id / description
        Added value: +"Unique product ID (MongoDB ObjectId string) returned by auth.create_product or found via auth.search_products. Example: '64a1f2b3c4d5e6f7a8b9c0d1'."
    • Changedauth.get_store1 field changed
      • addedInput schema / properties / store_id / description
        Added value: +"Unique store ID (MongoDB ObjectId string) of the Affilio storefront to retrieve. Retrieve store IDs from the Affilio dashboard or via the API."
    • Changedauth.list_links6 fields changed
      • addedInput schema / properties / limit / description
        Added value: +"Maximum number of links to return per page (1–200). Default: 50."
      • addedInput schema / properties / limit / maximum
        Added value: +200
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • addedInput schema / properties / project_id / description
        Added value: +"Filter links by project ID (MongoDB ObjectId string). If omitted, returns links across all projects in the account."
      • addedInput schema / properties / skip / description
        Added value: +"Number of links to skip for pagination. Default: 0."
      • addedInput schema / properties / skip / minimum
        Added value: +0
    • Changedauth.list_links_ranked6 fields changed
      • addedInput schema / properties / limit / description
        Added value: +"Maximum number of links to return (1–200). Default: 50."
      • addedInput schema / properties / limit / maximum
        Added value: +200
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • addedInput schema / properties / project_id / description
        Added value: +"Filter to a specific project ID (MongoDB ObjectId string). If omitted, ranks links across all projects in the account."
      • addedInput schema / properties / skip / description
        Added value: +"Number of links to skip for pagination. Default: 0."
      • addedInput schema / properties / skip / minimum
        Added value: +0
    • Changedauth.list_store_products6 fields changed
      • addedInput schema / properties / limit / description
        Added value: +"Maximum number of products to return per page (1–200). Default: 50."
      • addedInput schema / properties / limit / maximum
        Added value: +200
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • addedInput schema / properties / skip / description
        Added value: +"Number of products to skip for pagination. Default: 0."
      • addedInput schema / properties / skip / minimum
        Added value: +0
      • addedInput schema / properties / store_id / description
        Added value: +"Unique store ID (MongoDB ObjectId string) of the storefront whose products to list."
    • Changedauth.search_products5 fields changed
      • addedInput schema / properties / limit / description
        Added value: +"Maximum number of products to return (1–50). Default: 10."
      • addedInput schema / properties / limit / maximum
        Added value: +50
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • addedInput schema / properties / platform / description
        Added value: +"Affiliate platform to search. Supported values: amazon, aliexpress, ebay. The corresponding platform integration must be connected in your Affilio account (Settings → Integrations). Check auth.list_integrations to verify connectivity."
      • addedInput schema / properties / query / description
        Added value: +"Product search query sent to the affiliate platform's live catalog. Use natural-language product descriptions for best results. Example: 'wireless noise cancelling headphones', 'standing desk electric'."
    • Changedauth.set_link_visibility2 fields changed
      • addedInput schema / properties / link_id / description
        Added value: +"Unique link ID (MongoDB ObjectId string) of the link whose visibility to change."
      • addedInput schema / properties / visibility / description
        Added value: +"Visibility setting for the link. Accepted values: 'public' — link is accessible to anyone with the short URL and appears in storefront listings; 'private' — link is hidden from public access and storefront listings, only visible to the account owner."
    • Changedauth.update_link4 fields changed
      • addedInput schema / properties / labels / description
        Added value: +"Comma-separated list of label names to assign to this link — e.g. 'summer-sale,featured'. This REPLACES all existing labels (not a merge). Pass an empty string to clear all labels. Omit to leave labels unchanged."
      • addedInput schema / properties / link_id / description
        Added value: +"Unique link ID (MongoDB ObjectId string) of the link to update. Retrieve via auth.list_links or from the create response."
      • addedInput schema / properties / target / description
        Added value: +"New destination URL — the URL visitors land on after clicking the short link. Omit to leave unchanged."
      • addedInput schema / properties / title / description
        Added value: +"New human-readable title for the link. Omit to leave unchanged."
    • Changedauth.update_store4 fields changed
      • addedInput schema / properties / description / description
        Added value: +"New store description shown to storefront visitors. Supports plain text. Omit to leave unchanged."
      • addedInput schema / properties / layout / description
        Added value: +"Product display layout. Accepted values: 'grid' (default card grid layout) or 'list' (vertical list view). Omit to leave unchanged."
      • addedInput schema / properties / name / description
        Added value: +"New display name for the store. Omit to leave unchanged."
      • addedInput schema / properties / store_id / description
        Added value: +"Unique store ID (MongoDB ObjectId string) of the storefront to update."
    • Changedgenerate_qr5 fields changed
      • addedInput schema / properties / background_color / description
        Added value: +"Background fill color as a CSS hex string. Ignored when transparent=true. Examples: #FFFFFF (white), #F5F5F5 (light grey). Default: #FFFFFF (white)."
      • addedInput schema / properties / color / description
        Added value: +"Foreground/dot color as a CSS hex string. Examples: #000000 (black), #1A73E8 (Google blue), #FF5722 (deep orange). Default: #000000 (black)."
      • addedInput schema / properties / rounded / description
        Added value: +"When true, uses rounded/circular dot style instead of hard square pixels. Produces a modern, visually appealing QR code. Default: true."
      • addedInput schema / properties / transparent / description
        Added value: +"When true, the QR code background is rendered transparent (PNG alpha channel). Overrides background_color. Ideal for overlaying on branded backgrounds. Default: true."
      • addedInput schema / properties / url / description
        Added value: +"Full URL to encode in the QR code. Must be a valid HTTP/HTTPS URL. Example: https://affilio.link/abc123"
    • Changedshorten_url1 field changed
      • addedInput schema / properties / url / description
        Added value: +"Full HTTP/HTTPS URL to shorten. Supports affiliate links from Amazon Associates, eBay Partner Network, AliExpress, Awin, ShareASale, Impact, CJ Affiliate, Rakuten Advertising, Etsy, Walmart, Target, Best Buy, and any other URL. Example: https://www.amazon.com/dp/B08N5WRWNW?tag=mystore-20"
  9. 16 tool updates
    • Addedauth.add_product_link
    • Addedauth.archive_link
    • Addedauth.create_link
    • Addedauth.create_product
    • Addedauth.get_link
    • Addedauth.get_link_stats
    • Addedauth.get_product
    • Addedauth.get_store
    • Addedauth.list_integrations
    • Addedauth.list_links
    • Addedauth.list_links_ranked
    • Addedauth.list_store_products
    • Addedauth.search_products
    • Addedauth.set_link_visibility
    • Addedauth.update_link
    • Addedauth.update_store

Publisher details

Operator
Péter Kiss · Publisher source
Vendor relationship
First-party · Publisher source
Restrictions
Some tools require Affilio subscription

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Remote MCP server that lets AI assistants read tracked competitive intelligence — competitor news, reviews, website changes, social posts and ads — and act on it by managing projects, competitors, battle cards, reports and canvases. Every answer carries a source and a date, and write actions only publish when explicitly shared.
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Enables brand visibility monitoring across major AI platforms like ChatGPT, Claude, Gemini, and Perplexity. It allows users to track visibility scores, analyze competitor data, and receive actionable insights to improve AI-generated brand recommendations.
    16
    23 npm
    1
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Browse IndustryLens's published competitive-intelligence reports and head-to-head competitor comparisons from any AI agent — real, source-backed data.
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources