Skip to main content
Glama

Auth.Add Product Link

auth.add_product_link

Associate an affiliate link with a product in your Affilio catalog.

This is how you connect an affiliate URL to a product so it appears in storefront listings and can be tracked per-product. A single product can have multiple links — one per country, platform, or affiliate network.

Typical workflow:

  1. auth.create_link(url=) → get link_id

  2. auth.create_product(name=...) → get product_id

  3. auth.add_product_link(product_id=..., link_id=...) → link attached

Requires Bearer token authentication. Returns an auth_error envelope if authentication fails.

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

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
link_idYesLink ID returned by auth.create_link.
product_idYesProduct ID returned by auth.create_product or auth.get_product.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. Changed2 schema 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."
  2. Changed2 schema 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."
  3. Added

TDQS

A4.5/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 burden of behavioral disclosure. It does useful work by stating Bearer token authentication is required, noting the auth_error envelope on failure, and explaining that a product can have multiple links across country/platform/network. It could go further on idempotency or duplicate-link behavior, but the key operational traits are disclosed.

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 well-structured and front-loaded: purpose, key constraint, workflow, auth requirement, error behavior. Every section earns its place and the numbered workflow makes the invocation sequence easy for an agent to follow without excess verbosity.

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 two-parameter mutation with an output schema already present, the description covers the essential context: why to use it, what the preconditions are, how to get the IDs, what auth is needed, and what happens on auth failure. Nothing critical is missing for an agent to invoke it correctly.

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 already has 100% coverage with clear parameter descriptions, so the baseline is 3. The description adds real value by showing the exact provenance of both parameters (link_id from auth.create_link, product_id from auth.create_product or auth.get_product) and embedding them in a runnable workflow with placeholder syntax.

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: 'Associate an affiliate link with a product in your Affilio catalog.' It clearly distinguishes this from related tools like auth.create_link and auth.create_product by framing it as the connection step in the workflow, not the creation of either entity.

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 'Typical workflow' section gives concrete steps and explicit ordering: create_link first, create_product second, then add_product_link with the returned IDs. This gives clear context for when to use it, though it does not explicitly mention when not to use it or name alternative tools for exclusion.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

A3.9/5.0
Disambiguation4/5

Most tools map cleanly to distinct resources and actions, but auth.create_link vs shorten_url and check_url vs check_international_redirect have overlapping purposes. The descriptions do a good job of clarifying the differences, so ambiguity is limited.

Naming Consistency4/5

All names follow a readable snake_case verb_noun pattern, but auth.* tools are prefixed while utility tools like check_url, generate_qr, and shorten_url are not. Names like list_links and list_links_ranked are also close, though still predictable.

Tool Count3/5

20 tools is on the heavy side for this domain. Most cover distinct functions, but there is some redundancy such as list_links_ranked being a sorting variant of list_links and shorten_url overlapping with auth.create_link.

Completeness3/5

Link lifecycle coverage is solid: create, get, list, update, archive, stats, and visibility are all present. However, product management is incomplete with no update/delete/remove-link operations, and there is no unarchive or hard-delete for links.

Resources