Skip to content
MCP server

OnPage.dev

By onpageAll Onpage servers

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

Listed on

First seen 5 Oct 2026. One server, whatever directories list it: each directory listing keeps its own page and history.

2
Directories
1 via MCP Toplist
38
Tools
From an anonymous probe
-
ToolBench grade
Not graded by Arcade
1
GitHub stars
From MCP Toplist

Tools

ToolDescriptionBehaviour
ai_crawler_policyWrite robots.txt rules for AI crawlers based on a policy, and merge them into the site's current robots.txt. Policies: allow_all, search_only (allow AI search and user-requested fetches, block model training), block_training (same as search_only), block_all. Returns the full new robots.txt and what changes.Read-only
analyze_layoutAnalyse the results of the get_layout_probe script, measured in your own browser: the same checks as render_page (H1 and call to action position, pop-ups, tap targets, small text, sideways scrolling and its cause, low-contrast text, inconsistent buttons, uneven spacing, layout shift, largest element), plus a comparison with the HTML the server sends. For a page that is not public (localhost, staging behind a login), the comparison with the server HTML is skipped.Read-only
check_ai_visibilityCheck whether ChatGPT, Claude, Perplexity, Gemini and other AI crawlers may read a page (robots.txt per bot), whether llms.txt exists, how ready and citable the content is for AI answers (14 checks, including fact density, cited outside sources and whether question headings get a direct answer), and how an AI model sees the page as plain text. Use this for questions like 'why does ChatGPT not mention my site'.Read-only
check_entity_graphCheck how a page's structured data describes who and what it is about, the way AI knowledge graphs read it: which entities there are (Organization, Person, Article, Product), whether they link to each other by @id, whether author and publisher are real entities instead of plain text, whether sameAs points to real profiles (LinkedIn, Wikipedia, Wikidata, social) and whether those profile links load, and whether the Organization matches the one on the home page. Returns the graph, issues with stable codes and a suggested JSON-LD block with TODOs for details only the user knows.Read-only
check_focus_keywordCheck how well a page targets one search term: title, meta description, H1, URL, first 100 words, subheadings, image alt texts and keyword density (flags stuffing over 3%). Returns 8 checks with a tip each.Read-only
check_readabilityCheck how easy a page is to read, against the right target. A product page should read differently from documentation, so the target depends on the page type (guide, listicle, product, category, service, docs, news, recipe and more). For the best benchmark, also pass the keyword and the top results from the user's Ahrefs or Semrush as competitors: OnPage.dev scans them (one per call, call again until done) and compares your reading ease with the pages that rank. Returns the Flesch reading ease (Flesch-Douma for Dutch), average sentence length, the share of long sentences, and the hardest sentences and paragraphs to rewrite first.Read-only
check_snippetEstimate how a title and meta description show in Google: pixel width against the cut-off on desktop and mobile, and the truncated text a searcher would see. No network call. Use it to iterate on title and description variants until they fit.Read-only
check_urlsCheck up to 20 URLs at once: final status code, the full redirect chain and where each one ends up. Built for site migrations, broken link sweeps and launch checks, for example 'do all old URLs 301 to the right new page?'. Pass expected targets to verify each redirect.Read-only
compare_ai_citationsCompare the pages AI assistants cite with the ones they skip, using citation counts from the user's connected tools. Before calling, check your available tools: if Ahrefs with Brand Radar is connected, use its cited pages report (filter cited_domain_subdomains on the site, pass the pages to compare in tracked_urls so uncited ones come back with 0, use Ahrefs prompts) or the ai_responses_* columns of top pages; these cost API units, so ask for at most 8 pages. Any other AI-visibility source works too. Include some pages with few or no citations, so there is something to compare. OnPage.dev scans each page (one per call, kept 15 minutes; call again with the same arguments until complete) and shows which checks the cited pages pass and the others fail, and what each uncited page should change. Without citation data, use check_ai_visibility instead.Read-only
compare_htmlCompare two versions of a page's HTML, for example before and after a code change, and report what got better or worse for SEO: score, issues fixed and introduced (with stable codes), and changes to title, description, H1, canonical, robots, structured data and word count. Use it in code review to catch SEO regressions before they ship.Read-only
compare_pagesCompare a page with up to 3 competitor pages that rank for the same search: score, AI readiness, words, headings, rich results, speed and more side by side, plus per competitor the issues to fix to catch up, structured data they have, words they use that the page does not (content gaps), facts and figures only they or only you give (information gain), and where the page is ahead. It scans one page per call and keeps results for 15 minutes, so with several new pages it asks you to call it again with the same arguments until the comparison is complete.Read-only
create_content_briefBuild a writing brief for a search term from the pages that rank for it. Get the competitor URLs from your own search tool, Ahrefs, Semrush or the user (1 to 3). OnPage.dev scans them (one page per call, kept 15 minutes; call again with the same arguments until complete) and returns: the subtopics most of them cover, the questions they answer, figures they give that you need your own data for, terms they share, a target length, the structured data they use, title patterns, and, with an audit_id from start_site_audit, which of your pages should link to the new page. Pass url when improving an existing page to get only what it is missing.Read-only
deep_auditEverything OnPage.dev measures on a page, by section: speed hints from the HTML, links and anchor texts, accessibility basics, image SEO, rich results, security headers, content (words, headings, readability, keywords) and technical facts (status, canonical, robots, redirects, hreflang). Pick sections to keep the answer short, or leave them out for all. Every issue has a stable code you can track across scans.Read-only
export_findingsTurn a page scan or a finished site audit into an action plan the team can work from. Returns: rows for a spreadsheet plus a private CSV link that loads straight into Google Sheets with =IMPORTDATA (no connector needed), a ready Slack message, one task per issue for Linear, Jira, Asana, Trello or GitHub Issues, and a Markdown checklist for Notion or Confluence. If the user has a Google Sheets, Slack, Notion or task board tool connected, use it to send the output there. Optionally posts the Slack message to an https incoming webhook. Pass url for one page or audit_id for a whole site.Changes data
find_answer_passagesFind the passages on a page that best answer a given question, the way AI answer engines pick text to quote. Returns the top passages with their heading, word count and whether they are a quotable length (40 to 90 words). Use the result to judge whether the page answers the question well, and to rewrite the best passage into a direct answer.Read-only
generate_llms_txtBuild a ready-to-upload llms.txt for a site from its sitemap and home page: site name, summary and the main pages grouped by section. Upload the result to the root of the site, for example https://example.com/llms.txt.Read-only
generate_schemaGenerate a JSON-LD block for a page from its own content and validate it against Google's rich result rules. Types: Article, Product, FAQPage (built from question headings and their answers), Organization (with sameAs links found on the page), BreadcrumbList (from the URL), or auto to pick the best fit. Values that cannot be read from the page are marked TODO.Read-only
get_fix_packGenerate ready-to-paste fixes for the issues on a page, built from the page's own content: a title tag, meta description, canonical, social (Open Graph) tags, viewport and a JSON-LD starting point. Only issues the page actually has are included. With platform wordpress it returns a WordPress plan instead: the exact Yoast SEO or Rank Math field for each value, alt texts for the media library, and the steps to ship it through the user's own WordPress connection (for example a WordPress MCP server) after the user approves each change.Read-only
get_layout_probeGet a small JavaScript measurement script to run in your own browser tool (Claude in Chrome, Playwright, Puppeteer or similar). Run it on the page at each viewport listed, after the page has loaded, then pass the results to analyze_layout. Use this when you have a browser: it has no daily limit, and it works on pages behind a login or on localhost.Read-only
get_site_auditContinue a site audit started with start_site_audit: each call scans the next pages and reports progress. Keep calling until status is complete, then you get the site-wide results. Audits are kept for one hour.Read-only
get_watchRead a watch created with watch_page: the latest snapshot, when it was last checked and every change found so far, newest first.Read-only
match_intentCheck whether a page matches what searchers want for a keyword, based on what actually ranks. Fetch the top organic results for the keyword with the user's connected Ahrefs, Semrush or other SERP tool (5 to 8 URLs), and pass them as competitors with your page as url. OnPage.dev scans every page, one per call (call again with the same arguments until done), works out the page type Google rewards (guide, product page, category page, comparison or list, tool, local page, homepage) and the format (length, headings, FAQ, year in the title), and tells you whether your page fits and what to change. Without competitors it classifies the keyword wording and your page only. Or pass queries: Search Console rows (query, page, clicks, impressions, position) to find pages that compete for the same query and pages that attract mixed intents.Read-only
measure_impactShow whether SEO fixes paid off, using numbers from the user's connected tools. Fetch two periods of equal length from Google Search Console, GA4, Ahrefs or Semrush, one before and one after the fix date (28 days each works well), for the pages you changed and, ideally, a few pages you did not change as a control group. Pass them here with changed true or false. OnPage.dev compares clicks, impressions, CTR and position, subtracts the trend of the unchanged pages so seasonality and Google updates are not counted as your result, and lists what changed on each page from the watch history when you pass a watch_id. The numbers are used for this answer only and not stored.Read-only
plan_redirectsMatch old URLs to new ones for a site migration or restructure and write the redirect rules. Give the old URLs (a list, or the old site's address while it is still online) and the new URLs (a list, or the new site's address so OnPage.dev reads its sitemap). Each old URL gets the best new match with a confidence score, unmatched ones are flagged with a suggestion, and the rules come out ready for Cloudflare or Netlify (_redirects), nginx, Apache (.htaccess), Next.js or CSV. After going live, verify with check_urls using the new URLs as expected.Read-only
prioritize_fixesRank SEO fixes by how much traffic they can win, using data from the user's other connected tools. Before calling, look at your available tools: if Google Search Console, GA4, Ahrefs, Semrush or a similar source is connected, fetch the top pages (clicks, impressions, CTR, average position, organic traffic, referring domains) and their top queries (with position and search volume) for the site, at most 10 pages and 20 queries per page, and pass them here. Fields are optional; pass what the source has. Without traffic data it still works and ranks by severity. Pages are scanned by OnPage.dev (3 per call, kept 15 minutes); with more pages it asks you to call again with the same arguments. Pass audit_id from a finished site audit to skip rescanning. Traffic data is used for this answer only and not stored.Read-only
render_pageLoad a page in a real browser on a phone (390x844), tablet (820x1180) and desktop (1440x900) and check the first screen: is the H1 visible, is there a call to action, do pop-ups cover it, are tap targets big enough, is the text readable, does it scroll sideways (and which element causes it), how much does the layout shift, and which element is the largest. Also checks design and readability: text with too little contrast (WCAG AA), inconsistent button styles and uneven spacing between sections. Also loads it with JavaScript off and shows what crawlers without JavaScript (GPTBot, ClaudeBot) miss, and whether the first screen delivers what the Google snippet promises. Returns screenshots. OnPage.dev has a small daily budget of browser time; if it is used up, or if you have your own browser tool, use get_layout_probe and analyze_layout instead.Read-only
rescan_and_compareScan a live page again and compare it with the previous scan of that page: score change, issues fixed, new issues and AI readiness change. Use this after deploying fixes to confirm they worked, or to catch regressions such as a robots.txt change that suddenly blocks AI crawlers. Repeat until the score is where you want it.Read-only
scan_htmlScan raw HTML that is not published yet, for example a local build, a template or a draft from your editor. Returns the same score, fixes and AI readiness as scan_page. Pass the full HTML document; url is optional and only used to resolve relative links. Use this in coding assistants to check SEO before deploying.Read-only
scan_pageScan one public web page for SEO and AI visibility. Returns a 0-100 score, the issues to fix first with why and how, AI readiness, and the key facts (title, description, headings, words, speed, structured data). Use this first for any question about how a page performs in Google or AI search.Read-only
screen_reader_viewShow a page the way a screen reader announces it, from the browser's accessibility tree: landmarks, the heading outline, and the reading order of links, buttons, images and form fields with the names they get. Flags what makes the page hard to use and hard to understand for assistive tech and for AI agents that browse through the accessibility tree: links and buttons without a name, vague link text like 'read more', form fields without a label, missing main landmark, skipped heading levels, and visible text hidden from readers. Uses the same browser render as render_page (shared, so calling both costs one render). If you have your own browser tool, pass its accessibility snapshot as tree instead.Read-only
share_resultScan a page again and publish a shareable proof page on onpage.dev with the score before and after, the issues fixed and the ones still open. Useful after fixing a client's site: send them the link. Uses the previous OnPage.dev scan of the page as the before; without one, it shows the current result. The page is public for anyone with the link, not indexed by search engines, and expires after 90 days.Changes data
start_site_auditStart an SEO audit of a whole site (up to 25 pages from the sitemap, or from the home page links when there is no sitemap). Returns an audit_id and the first progress. Then call get_site_audit with that id until status is complete; each call scans the next few pages. The finished audit gives the issues across the site by code with the affected pages, broken pages, duplicate titles and descriptions, and orphan pages, and it powers suggest_internal_links.Read-only
suggest_internal_linksSuggest which existing pages should link to a target page, with anchor text, based on a completed site audit. The target can be a page from the audit or a new page you are writing (give its topic). Pages that already link to the target are left out, and orphan pages are flagged. Use it when publishing new content or fixing pages that get no internal links.Read-only
test_robotsTest a URL against the site's live robots.txt for one or more crawlers, using Google's matching rules (most specific user-agent group, longest matching rule, Allow wins ties, * and $ wildcards). Returns allowed or blocked per crawler and the exact rule that decides it. Optionally test a proposed robots.txt instead of the live one.Read-only
unwatchStop a watch created with watch_page and delete its history.Destructive
validate_llms_txtValidate a site's llms.txt against the llmstxt.org format: served as text (not an HTML page), one H1 with the site name, a > summary, ## sections with [name](url): notes links, sensible size, and whether the linked pages load. Also checks whether llms-full.txt exists. Pass text to validate a draft before uploading it. If the site has none, use generate_llms_txt.Read-only
validate_schemaValidate JSON-LD you wrote before you publish it: JSON syntax, @context and @type, absolute URLs, ISO dates, and Google's required and recommended fields per rich result type. Accepts a JSON-LD object, an array, a @graph, or a full <script type="application/ld+json"> block.Read-only
watch_pageStart watching a page. OnPage.dev rescans it about once a day and records what changed for search and AI: the page going down or redirecting, a new noindex, AI crawlers newly blocked, a changed canonical or title, the score dropping, new errors and fixed ones. Returns a private watch_id, a private RSS feed URL the user can add to any feed reader or Slack, and optionally posts each change to an https webhook. No account needed. Use get_watch to read the history and unwatch to stop. Watches end after 90 days without a check.Changes data

Directory listings

DirectoryListingTierFirst seen
Official MCP RegistryOnPage.dev-5 Oct 2026
GlamaListed there according to MCP Toplist’s dataset; not collected by InvokeRank.