90trust / 100

OnPage.dev

by onpage.dev in Other

MCP serverPassing, checked 4 h ago

Free SEO MCP that closes the loop: find, fix, ship as a PR or to WordPress, prove. 70 tools, no key.

https://onpage.dev/mcp

Last 30 days

All checks passedSome failedAll failedNot checked
Uptime
100%
Response time
246 ms typical, 246 ms slowest 5%
Last check
4 h ago
Next check
in 2 h

How to call it

Add it to any MCP client that supports remote servers.

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

70 tools

  • scan_page

    Scan 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). Client-side apps (React, Angular, Vue) are loaded in a real browser

  • check_ai_visibility

    Check 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 (15 checks, including fact density, cited outside sources, whether question headings get a di

  • check_focus_keyword

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

  • get_fix_pack

    Use after a scan to get the fixes as code. Set platform to how the user ships: html (default), wordpress, git for a pull request, or cloudflare for an edge Worker. Generate ready-to-paste fixes for the issues on a page, built from the page's own content: a title tag, meta descrip

  • check_web_vitals

    Get Core Web Vitals from real Chrome users (the Chrome UX Report, the field data Google uses for ranking): LCP, INP, CLS, FCP and TTFB at the 75th percentile, on phones and desktops, each rated good, needs improvement or poor. Falls back to the whole site when the page has too li

  • analyze_logs

    Analyse server access log lines to see what Googlebot, Bingbot and AI crawlers (GPTBot, OAI-SearchBot, ChatGPT-User, ClaudeBot, Claude-User, PerplexityBot, Applebot, Meta, Amazon, ByteDance, CCBot) actually request: hits per bot, the pages they crawl most, errors and redirects th

  • submit_indexnow

    Submit changed URLs to IndexNow, so Bing, Yandex, Naver, Seznam and Yep recrawl them within minutes instead of days. Call it after a fix is live. The first time, call it without key: it returns a key and the file to put on the site (ship it with the user's Git or WordPress tools)

  • check_accessibility

    Check a page against WCAG 2.1 level AA, the standard behind the European Accessibility Act (EN 301 549): page language, text alternatives, form labels, link and button names, headings, page title, zoom, landmarks and frames, each mapped to its WCAG success criterion. Contrast, re

  • check_answer_format

    For a question people search (a featured snippet or a People Also Ask question), find the section that answers it on the pages that rank and on your page, and compare the format: a paragraph (and its length), a list (and its items) or a table (and its rows). Returns the format th

  • check_consent

    Quick check of the cookie banner setup from the HTML. To see what GA4 really sends before and after accepting, use check_ga4_tracking. Check a page's cookie consent setup from its HTML: which consent platform runs (Cookiebot, OneTrust, Usercentrics, CookieYes, Complianz, Didomi a

  • check_product_page

    Check an ecommerce product page for Google: Product structured data with name, image, price, currency and availability, identifiers (SKU, GTIN, MPN, brand), shipping and return policy for merchant listings, ratings, variants (ProductGroup), out-of-stock handling, breadcrumbs, and

  • map_topics

    Group a site's search queries into topic clusters and map them to pages: which page owns each topic, where several pages compete for the same topic, which topics have no page that targets them, and which internal links would strengthen the owner page. Fetch Search Console rows by

  • check_question_coverage

    Check how well a page covers a topic the way AI search reads it. AI Mode and AI Overviews split a search into many sub-questions (a query fan-out) and pick a source for each. Before calling, write the sub-questions an AI search engine would ask for the topic yourself: 8 to 20 sho

  • check_hreflang

    Check the hreflang setup of a multilingual page: valid language and region codes, x-default, the self-reference and duplicates, then each language version: does it return 200, is it indexable, does its canonical point to itself, does it link back (return tags) and does its html l

  • check_trust_signals

    Check the trust signals Google and AI models look for across a site, not only on one page: an About page with real content, contact details (email, phone, address), privacy and terms pages, company identifiers (Chamber of Commerce, VAT), Organization markup with logo and profile

  • check_local_seo

    Check a local business site for Google Maps and local search: LocalBusiness markup (most specific type, address, phone, opening hours, geo coordinates), whether name, address and phone (NAP) in the markup match what the pages show, a link to the Google Business Profile, a map, th

  • map_link_equity

    Map how link authority flows through a site from a finished site audit: internal PageRank per page, click depth from the home page, links in and out. Finds pages the home page cannot reach, pages too many clicks deep, dead ends that pass nothing on, strong pages that link to few

  • check_ga4_tracking

    Use when GA4 numbers look wrong or consent may not reach GA4. For a quick check of the banner setup from the HTML, use check_consent. Debug Google Analytics 4 on a live page in a real browser, the way Tag Assistant would: which GA4 measurement IDs (G-), Google Tag Manager contain

  • log_fix

    Record SEO fixes after they ship, so OnPage.dev keeps them honest: it checks about every 6 hours that each fix is still live (title, description, canonical, robots, H1, Open Graph, hreflang, JSON-LD type, redirect target), sends the restore code to a webhook when a deploy undoes

  • get_fix_log

    Show a fix log: per fix whether it is still live, undone or changed since it shipped, with the restore code for every undone fix, the measured impact when measure_impact ran with this fix_log_id, and a rollback plan (the old value back) for fixes that made a page do worse. format

  • explain_index_status

    Use when pages are missing from Google: turns Search Console URL Inspection results (or rows from the Pages report: URL plus reason) into causes, fixes and the next OnPage.dev tool to run. Fetch them with the user's Search Console tool: for each URL its coverageState, verdict, in

  • build_edge_rules

    Use when the same SEO problem repeats across a section of a site (all product pages, all blog posts) and the CMS or templates are hard to change: from a finished site audit, writes one Cloudflare Worker with a rule per section that fixes missing or badly sized titles and meta des

  • get_prerender_worker

    Use when a site is built in the browser (React, Vue, Angular) and AI crawlers such as GPTBot, ClaudeBot and PerplexityBot, which do not run JavaScript, see an empty page. Checks the page first, then writes a Cloudflare Worker that serves those crawlers the rendered HTML (made wit

  • diagnose_traffic_drop

    Use when organic traffic dropped: fetch two periods of equal length from the user's Search Console (before and after the drop), per page or per page and query, and pass them here. Separates the causes per page: lost rankings, lower search demand or seasonality, a lower click-thro

  • find_ctr_gaps

    Use to find quick wins without ranking changes: from the user's Search Console rows (page, or page and query, with impressions, clicks or CTR and position), finds results on page 1 whose click-through rate is well below normal for their position, and estimates the clicks a better

  • find_striking_distance

    Use to find the fastest ranking wins: from the user's Search Console rows by query and page, finds queries ranking at positions 8 to 20 with real impressions, groups them per page, estimates the clicks a move into the top 5 could win, and flags queries where two pages compete. Ne

  • check_vitals_trend

    Use to see whether speed changed for real users and since when, for example after a performance fix: Core Web Vitals (LCP, INP, CLS, FCP, TTFB) at the 75th percentile from Google's Chrome UX Report history, weekly for about 9 months, on phone and desktop. With change_date it comp

  • measure_ai_citations

    Use to prove AI visibility gains: pass how often AI assistants cited each page before and after the fixes (from Ahrefs Brand Radar or another AI-visibility tool connected in the chat), for the pages you changed and a few you did not as a control group. Compares the change per pag

  • check_sitemap

    Use to check a site's XML sitemap the way Google reads it: finds it through robots.txt or the usual locations, follows a sitemap index, and checks the format, the 50,000 URL and 50 MB limits, URLs on another host or protocol, and lastmod dates (missing, in the future, or all the

  • extract_from_pages

    Use to check a template change or a data point across many pages at once, like custom extraction in a crawler: give up to 20 URLs and one of a CSS selector (with an optional attribute, for example meta[property='og:image'] with content), a regular expression, or a JSON-LD path su

  • find_duplicate_content

    Use to find pages that say almost the same thing, which compete with each other and make Google pick one: groups the pages of a finished site audit by text similarity (near-duplicates from about 75% the same), with their titles, word counts and canonicals, and per group the page

  • check_url_parameters

    Use when a site has filter, sort, tracking or search URLs that waste crawl budget or create duplicates: classifies every query parameter found in a site audit's internal links (and in URLs you pass from server logs or Search Console) as tracking, session, internal search, sort, p

  • create_dashboard_feed

    Use when the user wants an SEO dashboard or client report that stays up to date: OnPage.dev then checks the site's key pages every day and keeps the history (score, AI readiness, errors and warnings with their codes, AI crawler access, and Core Web Vitals per week), ready for get

  • get_dashboard_data

    Use to fill an SEO dashboard or report from a feed made with create_dashboard_feed: returns one dataset as a clean table with a date column (YYYY-MM-DD) and full page URLs, so it joins with GA4 and Search Console data or their BigQuery exports. Datasets: overview (site score, AI

  • build_seo_dashboard

    Use when the user wants a live SEO dashboard in Claude (Claude Dashboards or an artifact): returns a complete blueprint that combines a realtime block from the user's own GA4 connection (active users per minute, pages, events, countries, devices), traffic from GA4 or Search Conso

  • scan_html

    Scan 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 assist

  • rescan_and_compare

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

  • check_snippet

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

  • generate_schema

    Writes validated JSON-LD for Article, Product, FAQPage, Organization or BreadcrumbList. For LocalBusiness use check_local_seo; to check JSON-LD you wrote yourself use validate_schema. Generate a JSON-LD block for a page from its own content and validate it against Google's rich r

  • find_answer_passages

    Find 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 quest

Security scan

  • No findings. We scan names, descriptions and tool definitions for hidden instructions and other prompt-injection patterns.

Recent checks

WhenResultHTTPTime
4 h agoPassed200246 ms
12 h agoPassed200393 ms