agent-tracking

Open source · free pilot

Measure agents on your site.

Your analytics counts people. It does not see the visitor ChatGPT sent, the page ClaudeBot fetched, or the WebMCP tool an assistant called inside the browser. One line of script does, and shows it in four views.

Sign in by email, paste one line, done. No card, no cookies on your visitors, no personal data. See the demo page first if you like.

AI agent analytics for websites

What Agent Tracking does

Agent Tracking is AI agent analytics for websites: it records which AI assistants send visitors, which AI crawlers and live fetchers read pages, which MCP and WebMCP tools an agent calls inside the browser, and whether the agent reaches a goal.

Web analytics counts people. Bot managers count crawlers at the edge. Neither sees the agent that is already inside the site, calling a tool or finishing a booking on someone's behalf. Agent Tracking measures that third kind of visitor, from the referral to the completed action, with one line of script, without cookies and without personal data.

What it is not

The name is used for five other things. None of them is this. If a search engine or an assistant sent you here for one of those, this is the wrong page, and here is where the right one lives.

Not agent observability

AgentOps, LangSmith, Langfuse, OpenTelemetry for LLM apps

Those trace the agents you build, from inside your own code: spans, prompts, token cost. Agent Tracking measures agents other people run when they visit your website, from the outside, with a script tag. The two are complementary; a team can use both.

Not workforce tracking

Call-centre or support agents

No schedule adherence, handle time, idle time or ticket counts of human employees. The word agent here means a piece of software acting for a person.

Not field tracking

Sales reps, couriers, GPS check-ins

No location, no route, no visit duration of any person. Nothing here knows where anyone is.

Not parcel tracking

Air waybills, shipments, delivery agents

Not a package lookup and not connected to any carrier.

Not mobile agents

The distributed-computing sense

Not a mechanism for forwarding or locating migrating code across hosts.

Not a bot blocker

No CAPTCHA, no firewall, no rate limit on your visitors

It measures and never blocks. The only request it makes to your site is one fetch of the homepage to verify the snippet.

What it sees

Five layers, from the first click to the finished job. Each one comes from a source you can check.

AI referrals

Who sends visitors

A visit from chatgpt.com, perplexity.ai, claude.ai, copilot.microsoft.com, gemini.google.com and a dozen more is attributed to the assistant, from the referrer and utm_source, matched against a published, versioned list.

AI fetches

Who reads your pages

GPTBot, ClaudeBot, PerplexityBot, OAI-SearchBot, Google-Extended, Applebot-Extended, Bytespider and the rest. Agents that run JavaScript are seen by the snippet; the others come from your server log, each line verified against the vendor's published IP ranges, and grouped into fetch bursts: one agent, many pages, a few seconds, which is what a query fan-out looks like from your side.

Tool calls

What they do with your tools

Every MCP and WebMCP tool on the site: calls, duration, success rate, error classes, the names of the input keys, and the tools no agent has ever called. The snippet wraps navigator.modelContext and watches declarative forms; nothing in your code changes.

Conversions

Whether they finish

Mark a booking, an order or a signup with data-agent-goal and see the conversion rate of agents, separately from people.

Manifest

When your tool list changes

The manifest at /.well-known/webmcp is hashed once per visit. The dashboard shows when it last changed; Pro accounts are alerted by email.

Score

Beside the numbers stands the site's Agent Readiness Score from webmcp-tool.com: how well the site can be used by agents, next to how much it actually is. webmcp-tool.com

Win the fight for AI bot traffic

Agents already decide which sites get cited, read and used. Most sites have no idea what agents do on them. The one that knows can improve; the rest guess. Four steps, repeated.

1. Measure

Every agent, every action

Referrals, verified fetches, bursts, tool calls, goals. Not sampled, not estimated: the actual events, with the agent named.

2. Understand

Study how MCP and WebMCP agents behave

Which pages a crawler takes, in which order and how fast. Which tool an assistant tries first, where it fails, which argument keys it sends, whether it reaches the goal or gives up.

3. Fix

Change the site, the tools, the manifest

Rename the tool the agent keeps missing. Fix the error class that fails half the calls. Open the page every fan-out lands on. Publish the manifest agents look for.

4. Verify

Readiness score and real usage, side by side

The score from webmcp-tool.com says whether agents can use the site. The numbers say whether they do. When both go up, you are winning.

Who it is for

Anyone whose site is read, cited or operated by AI agents, which today is every site that ranks.

Marketing and GEO

Teams working on AI visibility

Know which assistants send visitors and which pages they cite, week over week. The number your generative engine optimisation was missing.

Developers

Teams publishing MCP and WebMCP tools

Production analytics for your tools: calls, success rate, duration, errors, the tools nobody uses. The only place this exists.

Agencies

Many client sites, one account

Unlimited sites on the Agency plan, a public stats page per client, a white-label badge, one API token for your own reporting.

European companies

Data protection first

No consent banner, no transfer, a DPA on adding the site, hosting in Germany, or your own server. The dashboard your DPO signs off.

Ask your agent, not a dashboard

Every number is an MCP tool. Point the agent you already use at it and ask in words. Claude, ChatGPT, Cursor, Codex, Hermes, OpenClaw: anything that speaks MCP, or a script with curl.

Claude

Claude Desktop and Claude Code

Add the MCP server with your token and ask: which agents read our site this week, and which tool failed most?

ChatGPT

Connectors and custom GPTs

The same endpoint as a connector, and your GPT answers from your own agent data.

Cursor, Codex, Hermes, OpenClaw

Any MCP client, in the terminal or a workflow

One JSON block in the client config. The agent that writes your code can read how agents use the result.

Scripts and BI

JSON, CSV, weekly digest

GET /api/stats for dashboards and notebooks, CSV export for spreadsheets, a Monday mail with the week's numbers for people who read mail.

{
  "mcpServers": {
    "agent-tracking": {
      "url": "https://agenttracking.co/api/mcp",
      "headers": { "Authorization": "Bearer wmt_your_token" }
    }
  }
}
  • Which agents read our site this week, and which pages did they take?
  • Which of our WebMCP tools has the worst success rate, and what is the top error?
  • Did any fetch burst look like a Perplexity fan-out on the pricing page?
  • How many agent conversions did we have in the last 30 days, compared to the 30 before?

Why it is different

Every tool on the market measures people or crawlers. The layer in between, where an agent uses the site, is the one nobody measured. Categories rather than vendor names, because products change; check any one of them against the rows.

Agent TrackingWeb analyticsCDN bot auditLog analyzerAI referral SaaS
AI referrals attributed to the assistantyespartlynonoyes
Crawler fetches verified against vendor IP rangesyesnoyespartlyno
Fetch bursts (query fan-outs)yesnononono
MCP and WebMCP tool calls with success, errors, durationyesnononono
Agent conversions (goals reached by agents)yesnononono
Manifest change alertsyesnononono
Readiness score beside the usageyesnononono
Works without a CDN or proxy in front of the siteyesyesnoyesyes
No cookies, no IP stored, no consent banneryessomen/anorarely
Data stays in the EUyes, server in Germanydependsnoyesno
Numbers as JSON and as an MCP toolyesAPI onlynonoAPI only
Open source, self-hostable, one file to back upyessomenoyesno

The middle five rows are the ones you will not find elsewhere.

Built for European companies and professionals

Usable by a company that has a data protection officer, a works council and a lawyer, without a consent banner and without a transfer to think about.

GDPR by construction

Not by banner

No cookies, nothing on the device, no network address stored, no fingerprint. The session id is a hash of a value that changes every day, so yesterday's rows cannot be linked to today's. Tool arguments are recorded as key names, never values. Raw events are deleted after 90 days.

Hosted in Germany

With a DPA you conclude by adding a site

The data processing agreement names the sub-processors, includes the EU standard contractual clauses and describes the processing exactly as the code does it. Your data protection officer can read the source.

Two languages

Dashboard, docs and legal pages

English and German throughout, English binding. Support in both.

Self-hostable

When data must not leave your house

One Node process, one SQLite file, AGPL-3.0, ten minutes with Docker. What the cloud does, your server does.

The concrete value

Six questions the dashboard answers that nothing else on your site can.

Channels

Who sends you business

"Perplexity referred 40 visitors this week, ChatGPT 12, and they land on the pricing page." A channel you can now optimise, and a number for whoever asks whether AI matters for your site.

Readers

Who reads you, and what they take

GPTBot fetching 400 pages a night is training. ChatGPT-User fetching 3 pages in 4 seconds is a person asking about you right now. The Agents view tells them apart; the bursts tell you which question.

Tools

Whether your tools work for agents

You published MCP or WebMCP tools. Are they called? Do they fail? Which error? How long do they take? Which ones has no agent ever touched? This view is the only place that exists.

Goals

Whether agents finish

A tool call is not a sale. Mark the goal and see the conversion rate of agents, separately from people.

Monitoring

What machines do to your site

Verified fetches, impostors claiming to be a known bot, bursts, manifest changes: the operational picture of non-human behaviour, every day, in one place.

Your agents

The numbers in your own tools

A bearer token and one MCP tool, and Claude, ChatGPT or Cursor answer "which agents read our site this week?" from your data.

Four views, nothing else

Overview, Agents, Tools, Pages. Each one answers a question you would otherwise have to guess at. The screenshots below come from our demo page with test data, which is why the numbers are small; they are not a customer's.

The overview: agent interactions per day, referrals, fetches, tool calls and conversions in one chart
Overview: interactions per day, with the check score beside them.
The tools view: calls, success rate, average duration and top errors per WebMCP tool
Tools: which ones are called, which fail, which nobody touches.

One line, then wait for the first agent

Add your site in the dashboard, put this on every page, and press verify. Tools you register through navigator.modelContext are picked up without any change to your code; declarative tools are forms with a toolname.

<script defer data-domain="example.com" src="https://agenttracking.co/agent.js"></script>

Read the documentationCheck agent readiness first

Privacy by construction

No cookies, nothing written to the visitor's device, no network address stored, and for tool calls the names of the input keys but never their values. Raw events are deleted after 90 days; daily totals stay as long as the site does. Everything lives on our own server in Germany, and the data processing agreement is concluded the moment you add a site. Removing the site deletes all of it.

Cloud or your own server

The whole product is open source under AGPL-3.0: the snippet, the ingest, the dashboard, the log import, the cron jobs. Run it on your own machine with one compose file, or use the hosted version here and let us run it.

Cloud · Free

Free during the pilot

1 site, 10,000 agent events a month, 30 days of history. Plain page views are not counted. No card.

Cloud · Pro and Agency

Not open yet

5 sites and 500,000 events with manifest alerts, or unlimited sites with a white-label badge. Prices follow when the product has earned them; until then write to us and we switch your account by hand.

Self-hosted · Free

Your server, your data

Every plan limit is yours to set. One Node process, one SQLite file, no external service except a mail sender. Source and instructions on GitHub.

git clone https://github.com/shufflethis/agent-tracking.git && cd agent-tracking
cp .env.example .env && docker compose up -d

Free during the pilot

Agent Tracking is new, and the honest way to price something new is to run it first. During the pilot every account is on the Free plan: 1 site, 10,000 agent events a month, 30 days of history. Plain page views are not counted.

Need more than that while the pilot runs? Write to hi@finalmaster.net and we switch your account by hand. Paid plans follow when the product has earned them, and nothing about your account changes without 30 days' notice by email.

What we ask in return: tell us what the dashboard got wrong, which agent it missed, which number you did not believe. That is what the pilot is for.

Questions people ask

Short answers. The documentation has the long ones. Read the documentation. Guides, one question each. Source on GitHub.

What is Agent Tracking?

Agent Tracking is an open-source analytics service that measures what AI agents do on a website: AI referrals, AI crawler fetches verified against published IP ranges, MCP and WebMCP tool calls with their outcome, and conversions reached by agents. It is installed with one script tag and stores no cookies and no personal data. Its category is AI agent analytics for websites.

Is this the same as AgentOps, LangSmith or LLM observability?

No. Observability tools trace the agents you build, from inside your code. Agent Tracking measures agents that other people run when they visit your website, from the outside, through a script tag on your pages. It does not see prompts, spans or token costs, and it needs no SDK. The two complement each other.

Does it track call-centre agents, field staff or parcels?

No. Agent here means software acting for a person: ChatGPT, Claude, Perplexity, a crawler, a WebMCP-capable browser. Nothing in the product records people, locations, shifts or shipments.

How is it different from Google Analytics or Plausible?

Web analytics counts people and their pages. Agent Tracking counts agents and their actions: which assistant sent the visitor, which crawler read which pages, which tool an agent called and whether it succeeded. It runs beside your analytics, not instead of it.

How is it different from Cloudflare AI Audit or a bot manager?

A bot manager sees crawlers at the edge and needs to sit in front of your site. Agent Tracking sees referrals, fetches and tool calls inside the page, needs no CDN, verifies crawlers against vendor IP ranges from your own log, and measures whether agents reach a goal.

Do I need a cookie banner for it?

No. The snippet sets no cookie, writes nothing to the device, stores no network address and builds no fingerprint. The session id is a hash of a daily random value. Consent under ePrivacy is for storage on the device, and there is none.

Where is the data stored?

On a server in Germany. A data processing agreement with the EU standard contractual clauses is concluded when you add a site. Or run the software yourself: it is open source under AGPL-3.0.

How long does installation take?

About a minute: sign in by email, add the domain, paste one script tag on every page, press verify. Tools registered through navigator.modelContext are picked up automatically. Server logs for crawlers that do not run JavaScript can be uploaded or sent by a daily cron.

What does it cost?

Free during the pilot: one site, 10,000 agent events a month, 30 days of history, no card. Plain page views are never counted. Paid plans with more sites and a year of history follow with 30 days' notice. Self-hosting is free.

Can my own agents read the numbers?

Yes. Every number is available as JSON through a bearer token and as an MCP tool named get_agent_stats, so Claude, ChatGPT, Cursor or a script can ask which agents read your site this week.