mcp-seo-audit
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| CRUX_API_KEY | No | Google API key for Core Web Vitals (CrUX) data. Required for the get_core_web_vitals tool. | |
| GSC_DATA_STATE | No | Sets whether to use 'all' (fresh data matching GSC dashboard) or 'final' (confirmed data with 2-3 day lag). | all |
| GSC_SKIP_OAUTH | No | Set to 'true' to skip OAuth and use service account only. | false |
| GSC_CREDENTIALS_PATH | No | Path to service account key JSON file. Required for service account authentication mode. | service_account_credentials.json |
| GSC_OAUTH_CLIENT_SECRETS_FILE | No | Path to OAuth client secrets JSON file. Required for OAuth authentication mode. | client_secrets.json |
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": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_propertiesB | Retrieves and returns the user's Search Console properties. |
| add_siteB | |
| delete_siteC | |
| get_search_analyticsA | |
| get_advanced_search_analyticsA | |
| get_performance_overviewB | |
| compare_search_periodsB | |
| get_search_by_page_queryB | |
| inspect_urlB | |
| batch_inspect_urlsA | |
| get_sitemapsC | |
| submit_sitemapB | |
| delete_sitemapB | |
| request_indexingA | |
| request_removalA | |
| batch_request_indexingA | |
| check_indexing_notificationB | |
| get_core_web_vitalsA | |
| get_pagespeed_insightsB | |
| run_lighthouse_auditA | |
| inspect_robots_txtB | |
| analyze_sitemapB | |
| analyze_page_seoB | |
| get_seo_audit_reportA | Return a structured technical SEO action plan with stable rule IDs, affected URLs, evidence, fix guidance, crawl coverage and limits. No Google credentials required. Save the returned JSON in your MCP client to compare later with compare_seo_audits. Optional rendered/compare modes execute JavaScript in a guarded browser; include_sitemaps discovers nested sitemaps and checks unlinked candidates. max_seconds bounds the crawl. Preserves query strings. Respects robots.txt by default; turn this off only for a site you control. max_pages is capped by server configuration. |
| compare_seo_auditsA | Compare two JSON outputs of get_seo_audit_report with matching crawl settings. Classifies new, resolved, persistent, newly observed and unverified issues without fetching URLs or writing files. Missing/failed pages never prove an issue resolved. |
| crawl_site_seoA | Crawl same-origin raw HTML and summarize issues. Respects robots.txt by default. max_pages bounds fetch attempts, including errors/non-HTML. Use get_seo_audit_report for structured evidence and remediation. Disable robots only for a site you control. |
| audit_live_siteA | |
| find_striking_distance_keywordsA | |
| detect_cannibalizationA | |
| split_branded_queriesA | |
| site_auditA | |
| reauthenticateA | Authenticate a new account, then atomically replace the saved OAuth token. Existing credentials and service caches are preserved if login or saving fails. |
| get_search_analytics_snapshotA | Fetch a bounded, paginated Search Console snapshot with explicit coverage. Returns at most 100,000 rows / 10 API pages within 180 seconds. Google may still omit anonymized/long-tail rows; completion is only for the returned API window. Partial results survive provider errors. Includes data-state/freshness metadata. |
| prioritize_audit_issuesB | Add observed Search Console traffic to an audit action plan. Sort by severity, then affected-page clicks/impressions. Does not estimate revenue or ranking gains. Unmatched URLs are unknown, not zero. No page traffic is double-counted within a rule. |
| get_server_statusB | Inspect local setup without credential values, network calls, or starting jobs. Credential presence does not prove current Google permissions or quota. |
| create_audit_projectA | Create a local project with robots-aware audit settings and scheduling disabled. IDs use lowercase letters/digits/hyphens/underscores. Retain 1-100 snapshots (default 30); max_pages 1-500 is further capped by server configuration. Files live under SEO_AUDIT_DATA_DIR or the platform user-data directory. Rendered modes require the optional browser dependency and installed Chromium. |
| list_audit_projectsA | List local projects, settings, schedule state and latest run status. |
| set_audit_scheduleA | Explicitly enable/disable a project's recurring audit (60 seconds to 31 days). First run is due one interval after enabling. A separate mcp-seo-monitor worker must be running; the MCP stdio server does not launch background work. Failures back off; disabling prevents future scheduled claims, leaving an active run to finish. |
| run_project_auditA | Fetch a project now, save its immutable report, and record verified finding changes. Prunes oldest snapshots to project retention. One run per project; ten-minute timeout. Returns audit_id; use get_project_audit for the full snapshot. Alerts stay in the local event inbox; no email, messaging or webhook is sent. |
| list_project_auditsC | List up to 100 retained snapshots, newest first, with coverage and issue summaries. |
| get_project_auditA | Load an immutable retained audit snapshot by its project-scoped audit_id. |
| compare_project_auditsB | Compare two retained project snapshots using applicable rechecks and coverage. Missing pages do not count as resolved; differing crawl settings cannot be compared. |
| list_audit_eventsB | Read a local change/failure/recovery inbox without marking events as read. Pass next_after_id on the next call; retain the latest 500 events per project. Only verified new/resolved findings trigger change events; sampling changes and unchanged reports stay quiet. No external notification is transmitted. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 43 tools
Many tools target distinct GSC, indexing, and project operations, but several overlap—especially the multiple search-analytics variants (basic, advanced, snapshot) and the various audit/crawl tools (audit_live_site, site_audit, get_seo_audit_report, crawl_site_seo). Descriptions help clarify boundaries, but an agent can still misselect without careful reading.
Mostly consistent snake_case with verb_noun patterns (e.g., get_search_analytics, submit_sitemap, create_audit_project). Minor deviations like site_audit and reauthenticate are readable and do not seriously hinder predictability.
43 tools is excessive for the domain; many functions could be consolidated (e.g., analytics variants, audit variants, and project CRUD pieces). The breadth suggests feature sprawl rather than a tightly scoped set.
The surface covers a wide SEO audit lifecycle: properties, search analytics, indexing, sitemaps, URL inspection, live crawling, project management, scheduling, event listing, and comparison. Missing delete/update operations for audit projects are minor gaps an agent can work around.