SEO MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| GSC_SITE_URL | No | Search Console property. Mind the trailing slash, or use sc-domain:. | |
| SEO_MCP_DEMO | No | Fabricated site and search data. No network access at all. | false |
| SEO_MCP_HTTP | No | Serve over HTTP instead of stdio. | false |
| SEO_MCP_SITE | No | Default site, so tools do not need the URL every time. | |
| GSC_CLIENT_ID | No | Client ID for OAuth alternative. | |
| SEO_MCP_PLUGINS | No | Allowist: crawl,audit,searchconsole,pagespeed,meta,prompts. | |
| SEO_MCP_DELAY_MS | No | Pause between requests to the same host. | 200 |
| GSC_CLIENT_SECRET | No | Client secret for OAuth alternative. | |
| GSC_REFRESH_TOKEN | No | Refresh token for OAuth alternative. | |
| PAGESPEED_API_KEY | No | Free key. Without it PageSpeed is rate-limited. | |
| SEO_MCP_HTTP_HOST | No | HTTP transport host. | 127.0.0.1 |
| SEO_MCP_HTTP_PATH | No | HTTP transport path. | /mcp |
| SEO_MCP_HTTP_PORT | No | HTTP transport port. | 8621 |
| SEO_MCP_LOG_LEVEL | No | debug, info, warn, error. | |
| SEO_MCP_MAX_DEPTH | No | How many links deep to follow. | 3 |
| SEO_MCP_MAX_PAGES | No | Hard cap on pages per crawl. | 200 |
| SEO_MCP_HTTP_TOKEN | No | HTTP transport bearer token. | |
| SEO_MCP_TIMEOUT_MS | No | Per-request timeout. | 15000 |
| SEO_MCP_USER_AGENT | No | How the crawler identifies itself. | |
| SEO_MCP_CONCURRENCY | No | Parallel requests. | 4 |
| SEO_MCP_RESPECT_ROBOTS | No | Obey robots.txt. Only turn this off for a site you control. | true |
| GSC_SERVICE_ACCOUNT_FILE | No | Path to a service-account JSON key. | |
| GSC_SERVICE_ACCOUNT_JSON | No | The key inline, for clients that only pass env vars. | |
| SEO_MCP_DISABLED_PLUGINS | No | Blocklist. Always wins over the allowlist. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": true
} |
| resources | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| aboutA | Version, credits and the current configuration — which capabilities are loaded, whether Search Console is connected, and whether demo mode is on. Useful when a tool is missing and you want to know why. |
| crawl_siteA | Crawl a site and report the problems only visible across pages: broken URLs and what links to them, duplicate titles and descriptions, missing basics counted as a proportion, and pages buried too deep to be crawled often. Seeds from the sitemap when there is one. Read-only, obeys robots.txt and paces itself. |
| list_sitemapA | List the URLs a site declares in its sitemap, following the sitemap index when there is one. Useful on its own to see what the site thinks it publishes, which is often not what it actually links to. |
| audit_pageA | Fetch one URL and report every on-page SEO signal — title, description, headings, canonical, indexability, structured data, images, links, language and page weight — with findings ranked by impact rather than listed flat. Read-only. |
| compare_competitorA | Audit your page and a competitor's side by side, and report only where they differ. Use it to answer 'what are they doing that we are not' for a query you both target. Read-only, and it fetches both pages. |
| link_graphA | Crawl the site and analyse its internal links: which pages hold the most internal authority, which important pages are starved of it, and which minor pages are hoarding it. Answers 'is my linking pointing at the pages that matter', which no single-page audit can. |
| find_orphan_pagesA | Find indexable pages that nothing on the site links to. They are usually reachable only from the sitemap, which means they get crawled rarely and rank poorly regardless of how good they are. One of the highest-value findings a crawl produces, and invisible page by page. |
| find_duplicate_contentA | Find pages that say substantially the same thing in different words — a template filled in forty times, product variants with one word changed. Identical titles are easy to spot; this catches the expensive kind, where two pages compete for one query and neither wins. |
| validate_structured_dataA | Check a page's JSON-LD against what Google actually requires for the rich result each type is for. Having schema and being eligible for a rich result are different things: a Product with no offer, a Recipe with no ingredients or a rating above its own scale are all valid JSON that earns nothing. |
| check_hreflangA | Crawl the site and validate its hreflang across pages: reciprocity, self-reference, valid language and region codes, duplicate or multiple x-default. Faults here are invisible page by page — every page looks correct and the cluster is still ignored, because a declaration Google cannot verify from both ends is dropped entirely. |
| find_broken_linksA | Crawl the site, collect its external links and check each one still resolves. Outbound rot is invisible until someone clicks — sites move, shut down and reorganise, and nothing tells you. Checks each target once, paced, and reports the pages that link to it. |
| serp_previewA | Render a page's title and description the way a Google result will show them, measured in pixels rather than characters. Google truncates by rendered width, so a title of capitals is cut far sooner than one of narrow letters — the character count everyone quotes misleads on exactly the titles worth checking. |
| pagespeedA | Run PageSpeed Insights on a URL and report Core Web Vitals. Separates lab data (a Lighthouse simulation) from field data (what real Chrome users experienced), because only the second is what Google ranks on. Slow: Lighthouse runs server-side and takes up to a minute. |
| generate_metaA | Collect everything needed to write a strong title tag and meta description for a page: what it currently has, its headings, its opening prose, and — when Search Console is configured — the queries people already use to find it. Returns the evidence and the length limits; you write the copy from the page's actual content. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| audit-site | Full technical and on-page sweep, ending in a prioritised list of what to fix first and what it is worth. |
| why-did-traffic-drop | Work out what changed, using real Search Console data rather than speculation about algorithm updates. |
| improve-page | Everything about one URL — its on-page factors, its real queries, its speed — ending in specific edits. |
| beat-competitor | Compare a page of yours against one that outranks it, and work out what is actually different. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| capabilities | Which capabilities are loaded, whether Search Console is connected, and the crawl limits in force. Read this before assuming a tool exists. |
| checklist | What this server checks and the threshold it uses for each, so the numbers in an audit can be questioned rather than taken on faith. |
TDQS
Scored across 14 tools
Each tool targets a clearly distinct concern—site-wide crawl issues, individual page audits, external link checking, internal link analysis, orphans, duplicates, structured data, and hreflang. Even related tools like crawl_site and find_duplicate_content are differentiated by whether they catch exact duplicates or semantic similarity.
Most tools follow a clear verb_noun snake_case pattern such as crawl_site, find_broken_links, and validate_structured_data. A few exceptions like about, pagespeed, serp_preview, and link_graph break the pattern, but the naming remains readable and predictable overall.
14 tools is well within the ideal range for a specialized SEO server. Each tool addresses a discrete diagnostic need, and the count feels comprehensive without being bloated or redundant.
The toolset covers the major technical SEO workflows: crawling, page audits, performance, metadata, internal links, orphans, duplicates, structured data, hreflang, sitemaps, and competitor comparison. There are no obvious dead ends or missing life-cycle operations for an analysis-focused SEO server.