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_share

    Share of sampled AI answers that cite you, per engine, with n and interval.

  • get_citation_metrics

    Citation aggregates over a trailing window.

  • get_crawler_activity

    Which AI crawlers actually hit your site.

  • get_measurement_status

    How fresh the data is, what is running, and what already awaits approval.

  • get_visibility_score

    The composite, or the reason it is held.

  • list_assets

    The sites in your workspace.

  • list_cited_passages

    The passages engines quoted from your own pages.

  • list_competitors

    The tracked rivals, and how often each is cited where you are not.

  • list_findings

    What we detected, with severity.

  • list_prompt_outcomes

    Which tracked questions you lose, on which engine, with n and interval.

  • list_recommendations

    The ranked plan, with predicted gain.

  • list_sources

    Which domains and pages the answers cite, yours and everyone else's, with n and interval.

Propose

  • propose_competitor

    Track a competitor.

  • propose_fact

    Declare a fact for Answer Accuracy to check against.

  • propose_measurement

    Ask for a fresh run.

  • propose_prompt

    Add a prompt to the sampled set.

  • propose_remove_competitor

    Stop tracking one.

Fix while you ship

The loop, in the order you actually work it. Nothing here leaves your editor.

  1. 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.

  2. 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.

  3. 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.

Create an account and connect

Prefer to pull rather than be pushed? There is a partner data API and outbound webhooks too.