MCP server

Model Context Protocol server for Track Link. Point an AI assistant at your account and ask questions about your links in plain language.

Setup

Create a key on the Developers page, then add the server to your client.

{
  "mcpServers": {
    "tracklink": {
      "command": "npx",
      "args": ["-y", "@tracklink/mcp"],
      "env": { "TRACKLINK_API_KEY": "tl_live_..." }
    }
  }
}

Claude Desktop reads claude_desktop_config.json; Claude Code and Cursor read .mcp.json / .cursor/mcp.json. Same shape everywhere.

Tools

Available on every plan:

ToolDoes
whoamiWhich account, plan and workspace this key belongs to
list_linksLinks with click totals; search and pagination
get_linkOne link by id
get_statsAggregates by device, platform, country, city, source
list_clicksIndividual click events with geo, device, referrer, UTM
get_usagePlan limits and what is consumed

Registered only with a write-scoped key on Agency or Business:

create_linkCreate a link, returns its short URL
update_linkChange name, destination, slug or active state
delete_linkDelete a link
list_webhooksWebhook subscriptions

Write tools are not merely refused when unavailable — they are never advertised. An agent offered a tool that always fails will keep retrying it, so the server asks the API what the key can actually do before registering anything.

Ask it things

"Which of my links got the most clicks this week?"
"What countries is the summer campaign reaching?"
"Compare mobile vs desktop for my newsletter links."
"Am I close to my plan's click limit?"
"Create a tracked link for example.com/pricing with slug pricing-q3."

Safety

  • Use a read-only key unless you specifically want the agent creating links. A read key cannot change anything, which makes it a safe way to let an assistant analyse an account.
  • Mutating tools are flagged. delete_link and update_link carry the protocol's destructive hint, so a client can prompt before running them. update counts as destructive because repointing a live link changes where every future visitor lands.
  • Returned data is framed as data. A link name or a UTM value can contain anything — a utm_source is set by whoever clicked the link, not by you. Tool output is delimited and labelled so text inside it does not read as instructions to the model.
  • Scope is the workspace. A key sees the workspace it was created in, and nothing else.

Limits

The same plan rules as the API: reads clamp to your data-retention window, page size caps at 100, and requests count against your per-minute limit (Free 60, Starter 120, Pro 300, Agency 600, Business unlimited). An agent looping over a large account will feel that ceiling — ask it for aggregates via get_stats rather than paging every click.