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.

HTTP transport No package to install One address, that's it
claude · tonaily

> 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
See the 5 tools

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
See the 16 tools

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 Code
claude mcp add --transport http tonaily-tools \
  https://app.tonaily.com/mcp/tools
Claude Desktop / Cursor
{
  "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.

OAI-SearchBotChatGPT-UserClaude-SearchBotClaude-UserPerplexityBotPerplexity-User

Training crawlers

They collect content to train a model. Blocking them is a defensible choice, not a mistake.

GPTBotClaudeBotGoogle-ExtendedApplebot-ExtendedMeta-ExternalAgentCCBot

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 Code
claude mcp add --transport http tonaily \
  https://app.tonaily.com/mcp \
  --header "Authorization: Bearer tny_your_token"
Claude Desktop / Cursor
{
  "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.

01

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.

02

Re-running an AI visibility measurement

Billed, and under cooldown. llm-answers reads answers already collected; it triggers none.

03

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.

Still have a question?

We answer in a few hours, no bot involved.

Talk to us

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.

Cette page est disponible en français.