AI & agents
AI Agent and MCP Server for Your Links
Your assistant knows how to write a campaign. It doesn't know if it worked. Subtraq opens a door: it creates links, reads attribution, records a sale — on your real data, and only on that.
The handshake, as-is
8
curl -s subtraq.co/api/mcp | jq { "name": "subtraq", "protocol": "mcp", "protocolVersion": "2025-06-18", "transport": "http", "authentication": "Bearer <Subtraq API key>", "tools": [ "list_spaces", "create_space", "list_links", "create_link", "get_link", "update_link", "get_analytics", "track_sale" ], "documentation": "/api/v1/agent-skill.md" }
Not a demo video, not a screenshot: the address responds to whoever calls it, and it announces its own eight tools. Same key as the API — and a revoked key closes both doors at once.
Three access points to the same registry
An agency does not connect its assistant the way a developer connects a script. Three entry points, then — and one truth behind all of them.
The server for agents
One URL, one key, and the agent discovers the tools on its own: initialize, tools/list, tools/call. Plain JSON-RPC 2.0 over HTTP, no proprietary extension, no library to install.
The agent's instruction manual
/api/v1/agent-skill.md: what the agent reads before acting. It is not stored in a repository where it would go stale in silence — it is regenerated on every call from the tool registry.
The API, for everything else
/api/v1/openapi.json, produced from that same registry. Your existing scripts go through here and get exactly what the agent gets.
The guardrail, not the promise
The agent's five rules
They open the instruction manual served by the API. An assistant that has read them no longer produces approximate numbers — and if it tries anyway, it is not politeness that stops it, it is the code.
Amounts are in cents
$43 is written 4300. No decimal number moves between your payment system, the API, and the agent: a rounding error that travels from system to system always ends up costing someone a dollar.
Attribution is never invented
No attributable click in the window? The conversion is recorded unattributed and counted separately. attributed: false is not a failure — it is the truth. A report that invents a plausible origin is worse than an incomplete one.
First click wins
Once a person's origin is set, nothing moves it. The agent can re-read the same data as last-touch or linear; it re-reads it, it does not rewrite it. In all three cases, attributed plus unattributed add up to the total, to the cent.
Sales only enter through the server
An amount posted from a browser is an amount anyone can write. The public entry point rejects all revenue.
Subtraq does not convert currencies
If a workspace mixes several, mixedCurrencies is set to true and the totals cover only the stated currency. The agent should say so rather than add euros and dollars together.
Proof, not a brochure
The contract is an HTTP response
Handwritten documentation lies from the first patch, and no one notices until an agent runs into it. Here, the instruction manual, the OpenAPI description, and the MCP server come from the same tool registry, on every call.
The consequence is simple to state and rare to hold: if a tool is renamed tomorrow, the documentation, the contract, and the page you are reading change the same day. There is no place where a stale version could survive.
GET /api/v1/agent-skill.md
The complete documentation: authentication, the five rules, the data model, the most common workflow, then the 8 tools with all their parameters — required and optional, one table per tool.
The question nobody says out loud
The agent reads totals. Never people.
Opening your data to a machine is fine. Knowing what's behind the door is better — and an agent cannot ask for what the product never collected.
No IP address
It is read in memory long enough to determine a country and filter out bots, then discarded. Never written to the database, so never readable — by an agent or by you.
No device fingerprint
Fingerprinting is prohibited by the product's design, not discouraged in a policy document. No tool reads it because there is nothing to read.
Totals, not individuals
Reading the numbers returns clicks, leads, sales, and revenue by placement. Not a list of names, not an individual journey to narrate.
The block to paste into your agent's configuration
Server address: https://subtraq.co/api/mcp — Authentication: Authorization: Bearer stq_sk_… header, create the key in Settings → API Keys — Transport: JSON-RPC 2.0 over HTTP — Documentation: https://subtraq.co/api/v1/agent-skill.md. Nothing else to install.
Create an API keyThe limits of AI at Subtraq
A page about AI that only said good things about AI would be worthless. Here are the four things we get asked the most, and for which the answer is no.
Does AI predict my future sales?
Does AI write my client reports?
Does AI guess where a sale came from when the link is missing?
Does AI choose the attribution model for me?
8
tools, identical between the agent and the API
4
separate permissions — a key only has what you give it
3
attribution reads, never guessed
Questions about AI
Which assistants does it work with?
Any MCP-compatible client: Claude (Desktop and Code), Cursor, or Zed, for example. The server sticks to the standard protocol — initialize, tools/list, tools/call — with no proprietary extensions. There is no partner list to maintain: if it speaks the protocol, it connects.
Is there anything to install?
No. No SDK, no library, no connector to maintain. One address, one Bearer key, and the agent discovers the tools on its own. The same registry serves the API, for those who prefer to write a script.
What can the agent break?
Only what its key allows. Each tool requires a specific permission — links:read, links:write, analytics:read, events:write — and a key that lacks it gets a clean refusal, never a partial result. No deletion tool is exposed: a link is archived, its history stays.
Can an agent skew my numbers by replaying a call?
No. Writes accept an Idempotency-Key header, and for sales the invoice number plays that role — it is required. Replaying the call returns the original response and flags the replay: nothing is created twice.
Is my data used to train a model?
No, and the reason is structural: Subtraq sends your data to no model, since it calls no AI provider. Your agent reads your data with your key. What happens next on your assistant provider's side depends on the contract you have with them.
Which plan includes it?
The API and the MCP server are tied to your workspace API key, and key creation is available in the product. Your plan's limits apply to links created and clicks counted, regardless of where they come from — interface, script, or agent.
Connect your AI agent today
The first time you ask “what brought in revenue this week, client by client?” and get an actual number instead of “I don't have access to that data,” the question of whether to connect settles itself.
Get started free