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.

Connect your assistant

Standard MCP protocolOpenAPI contract generated from codeReturned figures name no one

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.

The protocol, all eight tools and their parameters

01

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.

MCP

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.

Markdown

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.

OpenAPI

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.

How to connect an MCP client, step by step

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.

1

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.

2

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.

3

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.

4

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.

5

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.

What “attribute” means, in plain terms

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.

What is collected, and what is not

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 key

The 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?

No. No forecasting model in the product, and no call to an AI provider in its code. Subtraq measures what happened; what is going to happen stays your job.

Does AI write my client reports?

It is your agent that writes, using the numbers Subtraq provides. The product writes no text: it exposes totals, placements, and the attribution model that was used.

Does AI guess where a sale came from when the link is missing?

Never. Without an attributable click, the sale is unattributed and appears as such, on its own line. We prefer a visible gap to a plausible origin: a gap can be filled, a false certainty shapes a budget.

Does AI choose the attribution model for me?

No — and an unknown model is rejected instead of being silently substituted: an agent that asks for “linear” and receives first-touch without knowing it would make a decision based on a number it thinks is something else. Every response names the model that was used, in full.

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