Model Context Protocol
Connect your agent
to Kira.
Claude Code, Claude Desktop, Cursor. Any MCP client works straight on your product.
A free server for any public site. An account server for your keywords, your sequences and your AI visibility.
> where am I losing to competitors in AI answers?
• tonaily:llm-visibility-report
✓ Share of voice 18% · 30 questions replayed
• tonaily:llm-answers promptId 14
✓ 3 answers read · ChatGPT, Gemini, Grok
• tonaily:what-to-write
✓ 12 themes · top opportunity 90/100
They win on comparison pages you never wrote.
Want me to plan the sequence? Nothing gets published.
>
Two servers
Two doors, two audiences
One is open to everyone and looks at public websites. The other is yours, and looks at your account.
Free audit server
https://app.tonaily.com/mcp/tools - Authentication
- None
- Account
- Not required
- What it sees
- Any public website
- Tools
- 5 tools
- Rate limit
- 10 calls/min per IP
Account server
https://app.tonaily.com/mcp - Authentication
- API token (Bearer)
- Account
- Required
- What it sees
- The token's organisation, nothing else
- Tools
- 16 tools + 1 prompt
- Rate limit
- 120 calls/min per token
Both run over HTTP, not stdio: nothing to install on the machine, no package, no binary. One address is enough.
The free audit server
Open to everyone: no account, no email, no card. Any agent can analyse any public website. A prospect asks their assistant "take a look at my site", and gets a real diagnosis.
claude mcp add --transport http tonaily-tools \
https://app.tonaily.com/mcp/tools {
"mcpServers": {
"tonaily-tools": {
"type": "http",
"url": "https://app.tonaily.com/mcp/tools"
}
}
} check-ai-crawlers Instant Tells you whether a site lets AI assistant crawlers through. Returns bot-by-bot access, llms.txt presence and homepage schema.org markup.
domain, includeFile
audit-website 30 s to 2 min Runs a full analysis of a domain and returns a tracking token. Scores the site out of 100 across 8 checks and recommends 5 article topics.
domain
get-audit-report Instant Returns the finished report, including a shareable web permalink. Called with the token handed back by audit-website.
token
compare-sites 30 s to 2 min Compares two sites on the same 100-point grid: score gap, check-by-check winner, editorial volume and blocked AI crawlers on both sides.
domain, competitor
generate-llms-txt 30 s to 2 min Writes the site's llms.txt, ready to drop at the root, plus a corrected robots.txt. Nothing is re-crawled: the pages come from the analysis.
domain
Guardrails
- • 10 calls per minute per IP, on every tool.
- • 300 analyses per day, all visitors combined.
- • 24 h reuse: a domain already analysed today returns the existing report.
- • check-ai-crawlers never eats that cap: it launches no analysis.
- • Non-public addresses refused, so it never becomes an internal network scanner.
Two regimes, and that's the first thing to understand
check-ai-crawlers answers in the same call. Four HTTP requests, no queue, no token. An agent can run twenty domains in a row without anyone waiting.
The other three go through an analysis of thirty seconds to two minutes. get-audit-report is called back with the token from audit-website; compare-sites and generate-llms-txt are called back with the same parameters, and there is nothing to keep between two turns.
check-ai-crawlers
Two families you must never confuse
Blocking one makes your site invisible inside assistants. Blocking the other is a defensible choice, and the server explicitly forbids the agent from calling it a problem.
Citation crawlers
They fetch a page to quote it inside an answer. Blocking them makes the site invisible in assistants.
Training crawlers
They collect content to train a model. Blocking them is a defensible choice, not a mistake.
With includeFile: true, the tool returns the corrected robots.txt: it unblocks citation crawlers without touching existing rules, and without undoing a deliberate training block.
Googlebot and Bingbot are deliberately absent from the list: AI Overviews go through the first, Copilot through the second. Blocking them is a classic search problem, not an AI one.
The account server
A token carries one organisation. The agent sees exactly what its user would see in the interface. No more, and never for someone else.
claude mcp add --transport http tonaily \
https://app.tonaily.com/mcp \
--header "Authorization: Bearer tny_your_token" {
"mcpServers": {
"tonaily": {
"type": "http",
"url": "https://app.tonaily.com/mcp",
"headers": {
"Authorization": "Bearer tny_your_token"
}
}
}
} Read
The agent reads the account: keywords, themes, sequences, AI visibility. It changes nothing.
Read and write
It can also create a draft sequence and add a question to the AI visibility panel. Nothing else.
Where to create it
Settings → API, admins only. The token starts with tny_ and is shown once. Ten active tokens max, revocable at any time.
With a read-only token, the write tools are not merely refused: they do not appear in the list. The model can neither propose them, nor call them from memory.
Read tools
Twelve tools that open the account without touching it.
list-sites The organisation's sites: domain, language, analysis status. Call it first: every other tool takes a site.
brand-profile Positioning, industry, business model, promises, favourite topics, tone, vocabulary, personas. Read it before proposing a single topic.
what-to-write Themes ranked by opportunity, with volume, difficulty, business relevance, still-free keywords and the pillar keyword.
search-keywords The keyword corpus, filterable by theme, text and state, sortable by opportunity, volume, difficulty or AI search volume.
competitor-gap The gap with tracked competitors, both ways: keywords they own and you don't, and domains linking to them but not to you.
llm-visibility-report Brand visibility inside AI answers: share of voice, appearance rate per question, winning competitor, per-engine split, sentiment, history.
llm-answers The text of the assistants' answers, question by question: who got cited instead of you, and what the assistant used to justify it.
ai-readiness Whether the site lets AI crawlers through. Also returns, on demand, the corrected robots.txt and a generated llms.txt.
list-sequences Editorial sequences: theme, status, progress, and the step-by-step detail on demand.
list-contents Produced content (articles, whitepapers, social posts): metadata and primary keyword, never the body text.
internal-link-suggestions Internal links to add: articles ranked from worst to best linked, then the target page, exact anchor and its context.
quota-status What the plan still allows this month, the delay before the next AI visibility measurement, and the token's permissions.
llm-answers The report says "you appear in three answers out of ten and this competitor wins". This one gives you the answer itself, the only way to understand why they win. Without promptId, the list of questions with an excerpt; with promptId, the full text per engine.
competitor-gap Returns both gaps in a single call: the keywords they own and you don't, and the domains linking to them but not to you. Both were already measured and paid for at analysis time, so reading them re-runs nothing.
internal-link-suggestions The only free, immediate lever on the list: the text is written, the pages exist, only a link is missing. One internal link per 300 words, floor of three. An article already at quota gets no suggestion, because too many links dilutes each one.
Write tools
Four tools on a read and write token, and none of them publishes anything.
plan-sequence Asks Kira for an editorial plan on a theme: which articles, which one is the pillar, with keyword, title, metadata and angle. Asynchronous, and it creates nothing.
get-suggestion The state of a job handed to Kira (pending, running, done, failed) and its result once finished.
create-sequence Creates the sequence from the validated plan: briefs, scheduled content, internal linking, keyword reservation, calendar. As a draft.
add-llm-prompt Adds a question to the AI visibility panel. A question naming your brand or a competitor is refused: it would force the citation.
The prompt
tonaily-briefing
Kicks off a working session: reads the brand profile, the corpus health, the themes to write and the AI visibility, then proposes the next actions. Optional argument: site.
The rule that holds it all
No tool triggers production.
The line isn't technical, it's economic: reading costs nothing, planning costs cents, writing an article costs dozens of times more and eats a monthly quota. A model that explores must not be able to spend while exploring.
Three gestures therefore stay in the interface, because they commit the account's budget and quota.
Activating a sequence
That is what starts the writing. A sequence created by an agent stays a draft and produces no text until a human activates it.
Re-running an AI visibility measurement
Billed, and under cooldown. llm-answers reads answers already collected; it triggers none.
Finding new competitors
And refreshing the backlink profile. competitor-gap reads measurements already taken; it launches none.
Inside the app
The Kira Agent screen
Next to Track, the Kira Agent tab carries three screens, because they are three reading rhythms.
Dashboard
What Kira is, the install command, the three counters and the full tool catalogue.
Once, to understand
Access
The account tokens with their scope and last use, the three install commands, and what Kira will never do.
The day you create a token
Usage
Calls per day over thirty days, and the most-served tools.
Regularly, the only screen that changes by itself
The counter is fed per call: every request to the MCP server increments a counter per day and per tool. Refused calls (invalid token, inactive subscription) are not counted: a misconfigured loop is not activity.
Try it
Prompts that already work
Without an account
>Does example.com let ChatGPT and Claude crawlers through?
>Analyse example.com with the Tonaily MCP server. Run audit-website, wait for the report, then summarise the score out of 100, what blocks AI assistant crawlers, and the five recommended article topics.
>Compare example.com to competitor.com: who wins, on which criteria, and by how much?
>Write the llms.txt for example.com and tell me where to drop it.
With an account
>Give me the state of my SEO: read the brand profile, the themes to write and my visibility in AI assistants, then tell me the three next actions.
>Which theme should I write on first? Dig into it, then propose a sequence plan. Create nothing before I approve.
>On which panel questions is a competitor cited instead of me? Read the answers and tell me what they have that I don't.
>Which articles are the worst internally linked, and which internal links should I add?
Vocabulary
The words the servers impose on agents
So you may as well use them everywhere.
- Cluster
- A group of keywords covering the same subject. It is the unit of production: you don't write one isolated article, you attack a theme.
- Sequence
- An editorial plan on a cluster. One pillar article surrounded by satellites pointing to it, published at a regular cadence.
- Opportunity
- The score that ranks themes. Search volume weighted by difficulty and by relevance to the client's business.
- Share of voice
- The proportion of brand mentions inside AI answers, over the total of your brand plus tracked competitors.
- Panel
- The list of questions replayed periodically to the assistants. A stable question makes two measurements comparable.
- Kira
- The assistant that produces the plans and the content.
Privacy
What crosses, and what never does
The free server asks for no account and no email, and carries no Tonaily account data. The audit report lives outside the per-organisation partition; its permalink is long and unpredictable, and points at a report without saying who asked for it.
The account server is partitioned per organisation, on every read and every write. A token cannot see another organisation, not even by accident: with no context, queries return nothing rather than everything.
An expired or revoked token is refused immediately (401). An organisation without an active subscription is refused too (402), with the reason in plain text so the agent can repeat it to its user.
Frequently asked questions
Everything about connecting an agent to Tonaily.
One address. Your agent does the rest.
Start with the free server, no account needed. Plug your own account in when you want your keywords, your sequences and your AI visibility.