Integrations · MCP · Claude, ChatGPT
Analytics MCP server: ask your AI assistant about your traffic
The analytics MCP server in Skald lets Claude, ChatGPT through the OpenAI API, or any MCP client ask about your traffic in plain words. It reads the same figures the dashboard shows, with the same rules, and cannot change a thing.
An analytics MCP server gives an AI assistant tools to read a site's traffic through the Model Context Protocol, instead of guessing. Skald's has 14 read-only tools at /traffic-mcp, from overview and breakdown to compare and page story, and answers each in plain text with the numbers as data. One of the Skald integrations.
30-day free trial · no card · we set it up within one working day · free to self-host
- you Which pages did ChatGPT fetch yesterday?question
- tool ai_activity(from: "2026-10-22", to: "2026-10-22")MCP call
- skald ChatGPT-User: 27 fetches when someone askedAI · live fetch
- skald /pricing/ 14 · /docs/setup/ 9 · /compare/plausible/ 4fetches
- skald 2 visits followed a link from ChatGPT (a floor)people
Sample answer. The assistant reads Skald's figures; it does not guess.
[01] ask it
Ask Claude about your website traffic, in plain words
The assistant picks a tool, Skald answers with a short text and the numbers as data. Pick a question to see which tool it uses and what comes back. With no dates, a tool uses the last 7 whole days.
pick a question
example.com (whole site), 2026-10-13 to 2026-10-19. Visits (an upper bound on people): 1,240. Pages read: 2,310. Visits that followed a link from an AI assistant: 38 (a floor: referrers are often stripped). AI assistant fetches: 412 when someone asked, 3,980 to train or index. Search-engine fetches: 5,120. 404s people met: 17. Server errors: 0. Counted 7 whole, verified days of 7 (2026-10-13 to 2026-10-19). Against 2026-10-06 to 2026-10-12: visits +8.4%, pages read +5.1%.
example.com (whole site), 2026-10-13 to 2026-10-19. Visits (an upper bound on people): 1,061. Pages read: 1,980. ... Counted 6 whole, verified days of 7 (2026-10-13 to 2026-10-19). Left out, never counted as zero - withheld (the figures did not reconcile, so none are shown): 2026-10-15 (the audit did not agree). No change is stated: this period or the one before is not complete.
The day that failed its check is named, left out, and never treated as a quiet day. No change is stated, because one week is not whole.
example.com (whole site), 2026-10-13 to 2026-10-19: visits (an upper bound on people) by source. Search engine 610; Direct or unknown 402; Other website 88; AI assistant 74; Social media 66 Total 1,240 visits.
The rows add up to the visits. If they did not, the breakdown would be withheld and the answer would say why.
example.com, 2026-10-22. ChatGPT-User: 27 fetches when someone asked, of 3 pages: /pricing/ 14, /docs/setup/ 9, /compare/plausible/ 4. GPTBot: 212 fetches to train or index. Visits that followed a link from ChatGPT: 2 (a floor: referrers are often stripped).
Live fetches and training crawls are kept apart, and AI clicks are always called a floor. See ChatGPT traffic.
/pricing/ on example.com, first seen 2026-08-03. First Googlebot: 2026-08-03. First AI crawler: GPTBot, 2026-08-05. First person: 2026-08-04. First lead: 2026-08-19.
One page since it was published, with its days.
Sample answers. The overview and breakdown lines follow Skald's own wording; the assistant then writes its reply from them.
[02] connect
Connect Claude Code, Claude Desktop or the OpenAI API
One address for every site: your dashboard's address and /traffic-mcp. The token decides which sites the assistant may read. Pick your client.
Skald does not offer OAuth sign-in yet. Screens that ask only for a URL or OAuth, such as Claude's Connectors screen and the ChatGPT app's connectors, cannot send the token, so they cannot connect today.
$ claude mcp add --transport http skald \
https://stats.example.com/traffic-mcp \
--header "Authorization: Bearer <your-mcp-token>"
{"mcpServers": {"skald": {
"command": "npx",
"args": ["mcp-remote", "https://stats.example.com/traffic-mcp",
"--header", "Authorization:${SKALD_AUTH}"],
"env": {"SKALD_AUTH": "Bearer <your-mcp-token>"}}}}
server URL https://stats.example.com/traffic-mcp header Authorization: Bearer <your-mcp-token>
transport Streamable HTTP, at https://stats.example.com/traffic-mcp header Authorization: Bearer <your-mcp-token> on every request answers plain JSON; no event stream is kept open
Copy your own address and command from Settings › Connections › Connect an AI assistant (MCP); it fills in the token and tests it.
[03] 14 tools
The 14 read-only MCP tools, and what each answers
The assistant chooses these itself. Dates are in your site's own time zone. There is also a ready prompt, weekly_report, for a short weekly report.
| Tool | What it answers |
|---|---|
list_sites | The sites you may read, their views, and the days held |
overview | Visits, pages read, AI and search fetches, 404s, server errors, and the change against the period before |
breakdown | Visits by country, source, campaign, landing page, device, browser, hour, system or referrer |
top_pages | The pages people read most, with AI fetches of each |
ai_activity | Which assistants and crawlers came, what they fetched, and visits that followed an assistant's link |
leads | Leads from the website's forms, by type and by first source (totals only) |
funnel | A saved funnel, or steps you name, over the last 7 days and today |
compare | Two date ranges side by side, up to 400 days |
page_story | One page since it was published: first Googlebot, first AI crawler, first person, first lead |
live_today | Today so far, from the 2-minute snapshot (partial, never compared) |
data_quality | Per day: whether the log was read whole and passed its checks |
site_health | Open alerts, heartbeat uptime, errors today, late runs, page speed |
conversions | Demos, forms, sign-ups and payments by stage, and by source, landing page, country, campaign, device or tool |
find_person | One person by address, email, visitor ID or lead. Only with Reading visitor addresses; each search is audit-logged |
[04] honest answers
AI answers about your analytics that you can trust
An assistant is only as good as what it reads. Skald gives it the same rules the dashboard follows, in every answer, so it cannot get a figure the dashboard would not show.
Upper bound
Visits are called "visits (an upper bound on people)": at most the number of people, never a count of them. Requests are never people.
Whole days only
Totals use whole, checked days. Withheld, partial and missing days are named by date and left out.
Null, never 0
A figure that was not recorded is null. It never becomes 0.
Fair changes
A change against an earlier period is given only when both periods are whole.
[05] safety
Read-only MCP, scoped to your sites, off in one click
The assistant holds a token. Here is all that token can do.
- Read-only. No tool changes a setting, deletes data or adds anything.
- Only your sites. The token reads only the sites ticked for it, checked again on every call.
- No addresses by default. Without Reading visitor addresses, no answer carries one.
- Off at once. Revoke the token on Settings › Connections and it stops immediately. It also stops when the admin who made it leaves.
two different things
Claude reading Skald is this page: you ask, and the assistant calls your Skald server's MCP address with your token.
Claude reading your website is AI traffic: ClaudeBot crawling, or Claude-User fetching a page while someone waits. Skald counts that from your log.
[06] what it does not do
What Skald's MCP server does not do
It reads, honestly. Here is what that leaves out.
What it does not do
- No OAuth yet: clients must send the token as a header. The ChatGPT app's connectors and Claude's Connectors screen cannot connect today.
- It needs team accounts, and MCP switched on by whoever runs the server. A server with one shared login has no MCP.
- No tool writes anything, not even a lead.
- No event stream: one JSON answer per request.
- It shows what the dashboard shows, no more: compare reaches 400 days, and a withheld day stays withheld.
keep reading
More on analytics MCP server
questions
Analytics MCP server FAQ
Straight answers, including what Skald does not do.
What is an analytics MCP server?
MCP, the Model Context Protocol, is a standard way for an AI assistant to use outside tools. An analytics MCP server gives the assistant tools that read your traffic figures, so when you ask how last week went, it reads the answer instead of guessing.
Can I ask ChatGPT about my traffic with Skald?
Through the OpenAI API, yes: a developer adds Skald as a remote MCP server with its URL and the Authorization header. The ChatGPT app's connector screens ask for OAuth or no sign-in, and Skald does not offer OAuth yet, so they cannot connect today. Claude Code connects with one command.
Can the assistant change anything in Skald?
No. Every tool only reads. The assistant cannot change a setting, delete data, or add anything, not even a lead. To cut it off, revoke its token: it stops working at once.
Will the assistant make up numbers?
It reads Skald's own figures, and each answer carries the rules: visits are an upper bound on people, totals use whole verified days only, withheld and missing days are named by date and never counted as zero, and a figure not recorded is null. A change is stated only when both periods are whole.
Can the assistant see visitor addresses?
Not by default. Only a token with Reading visitor addresses, ticked on purpose by an admin, lets it see addresses in today's AI activity or look a person up. Each lookup goes to the audit log by its kind and a hash, never the value.
What do I need before connecting an assistant?
Team accounts on your Skald server, MCP switched on by whoever runs the server, and a token with the AI assistant (MCP) scope, which an owner or admin makes on Settings › Connections. If MCP is off, the address answers MCP is not switched on here.
$ tail -f access.log | skald
See what AI does with your site. Free for 30 days.
No card. We set up hosted Skald for you within one working day, or you self-host it free. Every line of your log, sorted and added up.