Model Context Protocol
Fix your AI visibility without leaving your editor
Pull measured findings into Claude Code, Cursor or VS Code, change the page, and ask for a fresh measurement from the same session. Every number arrives with how it was measured, so your agent can defend what it did. Sign in with your SEOAIO account and approve access. No API key to paste, nothing to install.
One line, in Claude Code
claude mcp add seoaio --transport http https://app.seoaio.ai/api/mcp
Every number arrives with its evidence
A tool result carries the sample size, the 95% interval and the window. Where we have not measured something, the tool says so instead of returning a zero. That matters more over MCP than anywhere else: a model handed a bare number will round it, restate it and build a confident sentence on top of it.
Connect your client
Claude Code
Run this in your terminal:
claude mcp add seoaio --transport http https://app.seoaio.ai/api/mcp
Claude Desktop, Cursor, VS Code
Add this to your MCP settings file:
{
"mcpServers": {
"seoaio": {
"type": "http",
"url": "https://app.seoaio.ai/api/mcp"
}
}
}Anything else
Any MCP client that speaks Streamable HTTP:
https://app.seoaio.ai/api/mcp
Authentication is OAuth 2.1 with PKCE. Your client registers itself, you approve it on a consent screen, and you can revoke it at any time from Settings. Tokens rotate on refresh, and a reused refresh token revokes the whole family.
Read
get_answer_shareShare of sampled AI answers that cite you, per engine, with n and interval.
get_citation_metricsCitation aggregates over a trailing window.
get_crawler_activityWhich AI crawlers actually hit your site.
get_measurement_statusHow fresh the data is, what is running, and what already awaits approval.
get_visibility_scoreThe composite, or the reason it is held.
list_assetsThe sites in your workspace.
list_cited_passagesThe passages engines quoted from your own pages.
list_competitorsThe tracked rivals, and how often each is cited where you are not.
list_findingsWhat we detected, with severity.
list_prompt_outcomesWhich tracked questions you lose, on which engine, with n and interval.
list_recommendationsThe ranked plan, with predicted gain.
list_sourcesWhich domains and pages the answers cite, yours and everyone else's, with n and interval.
Propose
propose_competitorTrack a competitor.
propose_factDeclare a fact for Answer Accuracy to check against.
propose_measurementAsk for a fresh run.
propose_promptAdd a prompt to the sampled set.
propose_remove_competitorStop tracking one.
Fix while you ship
The loop, in the order you actually work it. Nothing here leaves your editor.
Step 1
Read the finding
Ask your agent what is failing on a page. It reads the measured checks, the evidence behind each one, and the snippet that would fix it.
Step 2
Change the page
Your agent edits the file in front of you. Nothing is written to your site by us; the change is yours to review and commit.
Step 3
Ask for a fresh read
propose_measurement queues a new run. When it lands, the same checks come back with the same provenance, so you can see the fix measured rather than assumed.
A client-reporting dashboard in one Claude conversation
Connect the server, then paste this. Claude pulls the measured numbers through the tools on the left and assembles the report; nothing is retyped and nothing is invented, because every figure arrives with its sample size attached.
Build me a monthly client report for my site. 1. list_assets, then for my main site: 2. get_visibility_score - the composite and each pillar 3. get_answer_share - with the interval and the sample size 4. get_citation_metrics - which pages engines actually cite 5. get_crawler_activity - which AI crawlers fetched us this month 6. list_recommendations - the open items, ranked by predicted impact Lay it out as a dashboard: score up top, share and citations side by side, crawler table, then the action list. Keep every sample size visible next to its number.
Agencies: pair this with a per-client scoped token and the same conversation becomes a white-label reporting workflow, one client per token, with no client ever able to read another’s numbers.
Nothing an agent asks for happens on its own
The propose tools do not write. Each one queues a request that a person in your workspace approves or rejects, and the tool result says applied: false so the agent cannot honestly report otherwise. There is no tool that publishes, unpublishes or deletes anything on your site, because we never touch your site at all. An agent can change what we measure. It cannot change what you say.
Prefer to pull rather than be pushed? There is a partner data API and outbound webhooks too.
