SEO & GEO
Audit a page's SEO and its readiness for AI answer engines: meta, schema, robots, sitemaps, AI bots.
Connector by OrtaMarco · GitHub account verified by the MCP Registry
Install
Works with Claude Code, Codex, VS Code, Cursor, Windsurf, Claude Desktop. Read the repository before you give any tool access to your data.
npx agentmarket install connector/ortamarco-seo-geo-mcp-server
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this server can do and what it asks for, from its tool list, install config and code. Checked Oct 26, 2026.
- Tools
- 17 read · 0 write · 0 deleteRead-only
- Secrets
- None asked for
- Install scripts
- None found
- Runs as
- Node.js package
Tools by what they do 17
Read from the source code; the running server may list different tools.
Read 17 · Look things up without changing anything.
ai_crawler_accesscanonical_host_checkcontent_analysisgeo_auditheading_structurehreflang_checkimage_seo_checklink_auditllms_txt_checkmeta_tags_checkredirect_tracerender_check
Show 5 more tools
robots_txt_checkseo_auditsitemap_checksocial_preview_checkstructured_data_check
Network hosts it talks to 13
allenai.org· found in codecommoncrawl.org· found in codedeveloper.amazon.com· found in codedevelopers.facebook.com· found in codedevelopers.google.com· found in codedocs.firecrawl.dev· found in codedocs.mistral.ai· found in codedocs.perplexity.ai· found in codeduckduckgo.com· found in codegithub.com· found in codeplatform.openai.com· found in codesupport.anthropic.com· found in codesupport.apple.com· found in code
Files it touches
- Any path the agent passes to its tools
Tools (17)
Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].
ai_crawler_accessAI Crawler Access Checkread-onlyResolve every known AI/LLM crawler against a site's robots.txt and report which may fetch a given path. Covers OpenAI (GPTBot, OAI-SearchBot, ChatGPT-User, OAI-AdsBot), Anthropic (ClaudeBot, Claude-User, Claude-SearchBot), Google (Google-Extended, Googlebot, Google-CloudVertexBot), Perplexity, Apple, Meta, Amazon, Mistral, Common Crawl, ByteDance and others. Three things this gets right that a naive robots.txt reader does not: 1. **Training vs citation.** Blocking GPTBot stops training; blocking OAI-SearchBot stops you being *cited* in ChatGPT search. Most people want the first, not the se…
canonical_host_checkCanonical Host Checkread-onlyFetch all four host/scheme variants of a domain — http/https × apex/www — and confirm they converge on a single canonical URL. Divergence is the classic cause of a homepage competing with itself in the index. Also reports whether plain HTTP is upgraded to HTTPS, whether canonicalisation uses permanent (301/308) rather than temporary (302/307) redirects, and which variants do not serve content at all. Args: - site (string): a domain such as 'example.com' (www and scheme are ignored). - response_format ('markdown' | 'json'): output format (default 'markdown'). Returns: { domain, variants[…
content_analysisContent Quality Analysisread-onlyMeasure the page's main content: word count, sentence and paragraph counts, Flesch reading ease with a plain-language reading level, estimated reading time, text-to-HTML ratio, thin-content detection, and the top non-stopword terms with their density (English and Spanish stopwords are both filtered). Content is read from the <main>/<article> landmark when present, so navigation and footer chrome do not inflate the counts. Args: - url (string): the page to check. - response_format ('markdown' | 'json'): output format (default 'markdown'). Returns: { word_count, sentence_count, paragraph_…
geo_auditGEO / AI Answer-Engine Readiness Auditread-onlyScore how readily an AI answer engine (ChatGPT, Claude, Perplexity, Gemini, Copilot) can fetch, parse and cite this page. Weighted across: AI crawler access (25), server-rendered content (20), structured data (15), extractable structure (15), authorship & entity signals (10), freshness (8) and content depth (7). Two things this catches that a classic SEO tool does not: - Pages that rank fine in Google but are invisible to AI assistants, because most AI crawlers do not execute JavaScript and the content only appears after hydration. - robots.txt rules that block AI *search* crawlers (OAI-S…
heading_structureHeading Structureread-onlyExtract the full h1–h6 outline and evaluate it: how many h1s, whether levels are skipped (h2 followed by h4), empty heading tags, and how many headings are phrased as questions — the last being a strong signal for featured snippets and AI citations. Args: - url (string): the page to check. - response_format ('markdown' | 'json'): output format (default 'markdown'). Returns: { headings[{level, text, skips_level}], h1_count, h1_text[], level_skips, empty_headings, question_headings[], outline, score, grade, findings[] }. Example: "Show me the heading outline of https://example.com/guide" …
hreflang_checkHreflang Checkread-onlyValidate a page's `<link rel="alternate" hreflang>` annotations: language/region code validity (BCP-47), the required self-referencing entry, the x-default fallback, and duplicate codes. With check_reciprocity=true it fetches each alternate and confirms it links back to this page — non-reciprocal hreflang is silently ignored by Google, and it is impossible to detect from one page in isolation. Args: - url (string): the page to check. - check_reciprocity (boolean): verify alternates link back (default false). - response_format ('markdown' | 'json'): output format (default 'markdown'). …
image_seo_checkImage SEO Checkread-onlyAudit every <img> on the page: missing alt attributes (an accessibility failure and a lost image-search signal), decorative alt="" usage, missing width/height (which causes layout shift, a Core Web Vitals factor), lazy-loading adoption, and how many images use modern formats (WebP/AVIF) versus legacy JPEG/PNG. <picture> sources are counted as modern delivery. Args: - url (string): the page to check. - response_format ('markdown' | 'json'): output format (default 'markdown'). Returns: { total_images, missing_alt, decorative_alt, missing_dimensions, lazy_loaded, modern_format, legacy_forma…
link_auditLink Auditread-onlyAudit a page's outbound links: the internal/external split, rel attributes (nofollow, sponsored, ugc), links with no anchor text at all, generic anchor text ("click here", "leer más") that carries no topical signal, and the distribution of external domains. Optionally sample-verifies that links actually resolve, retrying with GET when a server rejects HEAD. Args: - url (string): the page to audit. - check_broken (boolean): verify links resolve (default false). - sample_size (number): how many links to verify (default 25). - response_format ('markdown' | 'json'): output format (default…
llms_txt_checkllms.txt Checkread-onlyCheck whether a site publishes /llms.txt and validate it against the llmstxt.org proposal: a required H1 title, an optional blockquote summary, and H2-delimited lists of `- [name](url): notes` links. Also detects /llms-full.txt. **Important context this tool always reports:** llms.txt is a community proposal from September 2024, not an adopted standard. No major AI vendor has documented that its crawlers read llms.txt from third-party sites, and Google has publicly stated it does not support it. Publishing one is cheap and may help human readers and some documentation tooling, but it does not…
meta_tags_checkMeta Tags Checkread-onlyInspect a page's head tags: title, meta description, canonical, robots directives (meta AND the X-Robots-Tag header), html lang, charset, viewport and favicon. Flags length problems, missing or duplicated tags, and anything that makes the page non-indexable. Args: - url (string): the page to check. - response_format ('markdown' | 'json'): output format (default 'markdown'). Returns: { title, title_length, description, description_length, canonical, canonical_is_self, meta_robots, x_robots_tag, indexable, followable, lang, charset, viewport, score, grade, findings[] }. Example: "Are the …
redirect_traceRedirect Traceread-onlyFollow a URL's redirect chain hop by hop, reporting each status code and target. Flags long chains (which waste crawl budget), redirect loops, temporary 302/307 redirects where a permanent 301/308 belongs, and chains that do not end on HTTPS. Args: - url (string): the starting URL. - response_format ('markdown' | 'json'): output format (default 'markdown'). Returns: { final_url, final_status, hops[{url, status, location}], hop_count, https_upgrade, ends_https, has_loop, has_temporary_redirect, elapsed_ms, findings[] }. Example: "Where does http://example.com/old-page end up?" -> redirec…
render_checkJavaScript Rendering Checkread-onlyDetermine whether a page's content exists in the server HTML, or only appears after JavaScript runs. This matters more for AI visibility than for classic SEO: Googlebot renders JavaScript, but GPTBot, ClaudeBot, PerplexityBot and CCBot largely do not. A client-rendered page can rank perfectly well in Google and still be completely invisible to every AI assistant — this tool is how you catch that. Detects unhydrated SPA shells (empty #root / #app / #__next containers), reports how many words survive without JS, and flags documents dominated by inline script bytes. Args: - url (string): the…
robots_txt_checkrobots.txt Checkread-onlyFetch and parse a site's robots.txt per RFC 9309. Reports every user-agent group with its Allow/Disallow rules, the declared sitemaps, and any lines that could not be parsed. Flags the two failures that silently deindex a site: a wildcard `Disallow: /`, and a robots.txt that returns 5xx (which Google treats as "disallow everything"). Args: - site (string): domain or any URL on it, e.g. 'example.com'. - response_format ('markdown' | 'json'): output format (default 'markdown'). Returns: { found, status, group_count, sitemaps[], blocks_everything, groups[{agents[], rules[], crawl_delay}], p…
seo_auditFull On-Page SEO Auditread-onlyFetch a page once and audit it across seven weighted sections — meta tags & social preview, heading structure, content quality, structured data, image SEO, links and crawlability — returning a 0–100 score, an A–F grade and a prioritised fix list. This is the tool to start with for any "how is this page doing for SEO?" question; drill into the single-purpose tools afterwards for detail. Args: - url (string): the page to audit. - include_geo (boolean): also score AI answer-engine readiness (default false). - check_broken_links (boolean): sample-verify that links resolve (default false). …
sitemap_checkXML Sitemap Checkread-onlyDiscover, fetch and validate an XML sitemap. Finds it via the robots.txt `Sitemap:` directive, then falls back to /sitemap.xml, /sitemap_index.xml and /sitemap-index.xml. Handles sitemap indexes (following children) and gzipped sitemaps. Validates: URL count against the 50,000 limit, uncompressed size against 50 MiB, <lastmod> presence and W3C-datetime validity, URLs pointing off-origin, http:// URLs, and duplicates. Args: - site (string): domain or any URL on it. - sitemap_url (string, optional): explicit sitemap URL. - follow_children (number): child sitemaps of an index to follow (d…
Show 2 more tools
social_preview_checkSocial Preview (Open Graph & Twitter Card) Checkread-onlyValidate the tags that build link-preview cards on X, LinkedIn, Facebook, Slack, WhatsApp and Discord: og:title, og:description, og:image, og:url, og:type, og:site_name and the twitter:* family. Optionally verifies the preview image actually loads, and flags the classic bug of a relative og:image URL (social scrapers require absolute URLs). Args: - url (string): the page to check. - check_image (boolean): verify the og:image resolves (default true). - response_format ('markdown' | 'json'): output format (default 'markdown'). Returns: { open_graph{}, twitter{}, og_image_url, og_image_re…
structured_data_checkStructured Data (Schema.org) Checkread-onlyExtract and validate JSON-LD, microdata and RDFa. Reports every @type found, flags JSON-LD blocks that fail to parse (those are invisible to search engines), and checks recognised types against Google's rich-result requirements — required properties that are missing, plus recommended ones worth adding. Covers Article/BlogPosting/NewsArticle, Product, FAQPage, HowTo, Recipe, Event, Organization, LocalBusiness, Person, WebSite, BreadcrumbList, VideoObject, JobPosting, Course, Review and AggregateRating. Args: - url (string): the page to check. - response_format ('markdown' | 'json'): outpu…
Signals
- Stars
- 1
- Forks
- 0
- Open issues
- 0
- Last commit
- Oct 16, 2026 (13 days ago)
- Last release
- Oct 16, 2026 (13 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- Registry name
io.github.OrtaMarco/seo-geo-mcp-server- Version
- 1.2.2
- Auth
- No auth
- Packages
- npm seo-geo-mcp-server
- License
- MIT
- Repository
- github.com/OrtaMarco/seo-geo-mcp-server
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
More from OrtaMarco
- 0.607score
Mexican Tax & Banking
OrtaMarco
Validate RFC, CURP, CLABE and NSS, read CFDI 4.0 invoices and check their SAT status.
ConnectorAFreshness: ALocalRead-only★ 1Claude Code +5 - 0.607score
Domain Security
OrtaMarco
Audit a domain's email and web security: SPF, DKIM, DMARC, MTA-STS, DNSSEC, TLS, WHOIS.
ConnectorAFreshness: ALocalRead-only★ 1Claude Code +5
Cite this page
SEO & GEO MCP server. Agent Mart. https://agentmart.dev/connectors/ortamarco-seo-geo-mcp-server (last updated 2026-10-24)