onpage

MCP serverAI & models

Free hosted SEO and AI-visibility scanner for agents: scan, fix, verify, redirects, robots.txt.

Available today. Use it from your connected AI after setup.

Add ahel to your AI once: Claude, ChatGPT, Cursor, Claude Code or Codex. Then ask it to use this.

Then ask your AI: use onpage to scan page

Install onpage

The server’s own address, for the clients that take one directly. Or connect ahel once and every client you use reads it from one address, with the account kept on ahel rather than in each client’s config.

  • Claude Code

    claude mcp add --transport http --scope user onpage 'https://onpage.dev/mcp'

    Run it once in your project, then open /mcp to approve any sign-in the server asks for.

  • Claude Desktop

    https://onpage.dev/mcp

    Add a custom connector in Settings, paste this address, and approve the sign-in.

  • Cursor

    cursor://anysphere.cursor-deeplink/mcp/install?name=onpage&config=eyJ1cmwiOiJodHRwczovL29ucGFnZS5kZXYvbWNwIn0=

    Open the link and Cursor adds the server at that address.

  • ChatGPT

    https://onpage.dev/mcp

    In Settings, enable Developer mode, create an MCP app, and paste this address. Your plan and workspace must allow custom apps.

  • Codex

    codex mcp add onpage --url 'https://onpage.dev/mcp'

    Run it once, then sign in with codex mcp login onpage if the server asks for an account.

From the project's README

As published by seoonpage/onpage-tools in README.md.


Most SEO tools give you a report. OnPage.dev gives your assistant something to do: write the fix, check it before you publish, and confirm it worked. It also checks what AI search sees, not only Google: which AI crawlers may read your site, whether your content is ready to be quoted, and whether you have an llms.txt.

You:        Fix the SEO on our pricing page and keep going until it scores 90 or more.

Assistant:  scan_page            46/100  no meta description, no H1, title 14 characters
            get_fix_pack         title, description and canonical, written from the page
            generate_schema      Product JSON-LD, 2 values to fill in
            (edits pricing.html)
            scan_html            92/100  before deploying, all errors gone
            rescan_and_compare   94/100  live, +48 since the first scan

            Done. 46 to 94. Two prices in the JSON-LD still need your real values.

Install in one minute

The server is hosted. There is nothing to install or run, and no key.

Server URL: https://onpage.dev/mcp

claude mcp add --transport http onpage https://onpage.dev/mcp

Or install the plugin for the server plus ready commands and skills.

Settings → Connectors → Add custom connector → paste https://onpage.dev/mcp → save. Turn the connector on in a chat.

Add a custom connector with https://onpage.dev/mcp (Settings → Connectors, with developer mode on). Which plans can use custom connectors is up to OpenAI.

~/.cursor/mcp.json or .cursor/mcp.json in your project:

{
  "mcpServers": {
    "onpage": { "url": "https://onpage.dev/mcp" }
  }
}

.vscode/mcp.json:

{
  "servers": {
    "onpage": { "type": "http", "url": "https://onpage.dev/mcp" }
  }
}

Streamable HTTP transport at https://onpage.dev/mcp. JSON responses, no authentication.

What it can do

11 tools in three jobs. Every result links to the full visual report on onpage.dev.

Audit and fix

ToolWhat it doesExample result
scan_pageScore from 0 to 100, the issues to fix first with why and how, AI readiness and key facts46/100, 5 fixes
get_fix_packReady-to-paste HTML for every issue, written from the page's own content<title>, <meta>, canonical, social tags
generate_schemaArticle, Product, FAQ, Organization or breadcrumb JSON-LD, validated against Google's rich result rules. Values it cannot read are marked TODO, never inventedProduct: eligible
rescan_and_compareScan again after a fix: score change, what got fixed, what is new46 → 94

AI search

ToolWhat it doesExample result
check_ai_visibilityWhich AI crawlers may read the page (GPTBot, ClaudeBot, PerplexityBot, Google-Extended and more), llms.txt, 11 checks for AI answers, and the page as a model reads it7 of 8 crawlers allowed
find_answer_passagesDoes the page answer a question well enough for AI to quote it? Returns the best passages with length and fitBest passage, 64 words
ai_crawler_policyrobots.txt rules for 13 AI crawlers from a policy (allow all, AI search only, block all), merged into your existing file13 bots, merged
generate_llms_txtA ready llms.txt built from the sitemap and home pagellms.txt, 42 pages

Writing and code

ToolWhat it doesExample result
scan_htmlScan HTML that is not live yet: a local build, a template or a draft. Same score and fixes as scan_page92/100 before deploy
check_focus_keywordEight checks for one search term: title, description, H1, URL, opening text, subheadings, alt texts and keyword use6 of 8
check_snippetPixel-width estimate of title and description against Google's cut-off, desktop and mobile612 px, cut off

Ready workflows (MCP prompts)

One click in clients that show prompts:

  • Full SEO and AI audit: scan, AI check and fix pack, then a prioritised plan.
  • Why can't AI find my site?: which assistants can read and quote you, and what to change.
  • Launch checklist: a tick or cross for everything a page needs before going live.
  • AI visibility makeover: robots.txt, llms.txt and answer passages in one go.
  • Pre-deploy SEO gate: scan the built HTML and block the release below a minimum score.

Score card in the chat

In clients that support MCP Apps (Claude) or the Apps SDK (ChatGPT), scan results also show as a visual card:

Why it is different

OnPage.devData vendor MCPs (Ahrefs, Semrush and similar)Self-hosted audit servers
PriceFreePaid plan or API creditsFree
SetupPaste one URLAccount and keyInstall and run yourself, often extra API keys
Built forActing on results: fix, check before deploy, confirmResearch data: keywords, backlinks, rankingsAudits and reports
Scan unpublished HTMLYes, scan_htmlNoRarely
AI search toolsCrawler access, AI-answer checks, robots.txt policy, llms.txtAI visibility tracking on someRarely
Ready codeFix pack, JSON-LD, robots.txt, llms.txtNoVaries

What OnPage.dev does not do: search volumes, rankings or backlinks. For those, the data vendors are still the place to go, and they work well alongside OnPage.dev.

Example prompts

Why does ChatGPT never mention example.com? Check it with OnPage.dev.
Scan our pricing page and give me the five fixes with the code.
Let ChatGPT search read our site but block AI training. Write the robots.txt.
Does our blog post answer "how long does shipping to Germany take" well enough for AI to quote?
Write three title options for this page and check which ones fit in Google.
Fix the SEO issues in this project, check the build with OnPage.dev and keep going until it scores 95.

Claude Code plugin

The server plus commands and skills that run the fix loop for you.

/plugin marketplace add seoonpage/onpage-tools
/plugin install onpage@onpage-dev
  • /seo-check [url or path]: scan a live page, or find this project's built HTML and scan that, then fix what is wrong.
  • /ai-visibility: check whether ChatGPT, Claude, Perplexity and Gemini can read and quote the site, and write robots.txt and llms.txt.
  • seo-fix-loop skill: fixes in your source (templates, Next.js metadata, Astro frontmatter), checks with scan_html before deploy and confirms with rescan_and_compare after.

About 300 tokens of always-on context.

GitHub Action: SEO gate

Scans the HTML your build produces on every pull request, comments the scores and top fixes, and fails when a page drops below your minimum.

name: SEO gate
on: pull_request
permissions:
  contents: read
  pull-requests: write
jobs:
  seo:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v5
      - run: npm ci && npm run build
      - uses: seoonpage/onpage-tools@v1
        with:
          paths: "dist/**/*.html"          # built HTML to check
          base-url: "https://example.com"   # optional, for canonical and relative links
          min-score: "80"                   # fail below this
          max-files: "10"                   # about 20 scans per minute

The pull request gets a comment like this, updated on every push:

❌ OnPage.dev SEO gate: lowest score 36 (minimum 80)

PageScoreAI readinessFix first
dist/about/index.html360There is no meta description; There is no H1; The title is 5 characters
dist/index.html9022Thin content: 32 words; No structured data; Open Graph is incomplete

Security and privacy

  • Read-only. Every tool only reads public pages or the HTML you send. Nothing is changed anywhere.
  • Public pages only. Private, internal and local network addresses are refused (SSRF protection), and so are non-web schemes.
  • No storage of content. HTML sent to scan_html is analysed in memory and dropped. For change tracking, only the score and issue names are kept, under a hashed key, for up to 30 days.
  • Prompt injection aware. Text from scanned pages is returned as data and marked as such.
  • Fair use limits. About 20 scans per minute per connection, plus a shared cap. No accounts, no keys, no tracking cookies.

Full details: onpage.dev/privacy and onpage.dev/terms.

Limits

  • Reads the HTML a server returns. JavaScript is not run, so content that only appears in the browser is not seen.
  • Link checks, image sizes and AI crawler access need a live URL, so scan_html skips them.
  • Pixel widths in check_snippet are an estimate; Google can also rewrite snippets.

Links

License

MIT

Tools it offers (20)

What this server listed when ahel dialed its public endpoint in Oct 2026, with no key and no account of yours. The names are the server’s own.

  • scan_page
  • check_ai_visibility
  • check_focus_keyword
  • get_fix_pack
  • scan_html
  • rescan_and_compare
  • check_snippet
  • generate_schema
  • find_answer_passages
  • generate_llms_txt
  • ai_crawler_policy
  • deep_audit
  • check_urls
  • test_robots
  • validate_schema
  • compare_html
  • start_site_audit
  • get_site_audit
  • suggest_internal_links
  • compare_pages

Signals

GitHub stars
1
Last commit
Oct 2026
Advanced
Delivery
onpage MCP server → your ahel connector (mcp.ahel.ai) → your AI.
Item type
mcp-server
Key
dev-onpage-onpage
Source
github.com/seoonpage/onpage-tools
Hosted endpoint
https://onpage.dev/mcp