Skip to main content
Glama
GiorgiKemo

mcp-seo-audit

by GiorgiKemo

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
CRUX_API_KEYNoGoogle API key for Core Web Vitals (CrUX) data. Required for the get_core_web_vitals tool.
GSC_DATA_STATENoSets whether to use 'all' (fresh data matching GSC dashboard) or 'final' (confirmed data with 2-3 day lag).all
GSC_SKIP_OAUTHNoSet to 'true' to skip OAuth and use service account only.false
GSC_CREDENTIALS_PATHNoPath to service account key JSON file. Required for service account authentication mode.service_account_credentials.json
GSC_OAUTH_CLIENT_SECRETS_FILENoPath 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

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
list_propertiesB

Retrieves and returns the user's Search Console properties.

add_siteB
Add a site to your Search Console properties.

Args:
    site_url: The URL of the site to add (e.g. https://example.com or sc-domain:example.com)
delete_siteC
Remove a site from your Search Console properties.

Args:
    site_url: The URL of the site to remove
get_search_analyticsA
Get search analytics data for a specific property.

Args:
    site_url: Exact GSC property URL (e.g. "sc-domain:example.com")
    days: Number of days to look back (default: 28)
    dimensions: Dimensions to group by, comma-separated (query, page, device, country, date, searchAppearance)
    row_limit: Number of rows to return (default: 20, max: 500)
    search_type: Type of search results (WEB, IMAGE, VIDEO, NEWS, DISCOVER)
get_advanced_search_analyticsA
Get advanced search analytics with sorting, filtering (including regex), and pagination.

Args:
    site_url: Exact GSC property URL (e.g. "sc-domain:example.com")
    start_date: Inclusive start date YYYY-MM-DD (defaults to 28-day window ending at end_date)
    end_date: Inclusive end date YYYY-MM-DD (defaults to today in Pacific time)
    dimensions: Dimensions comma-separated (query,page,device,country,date,searchAppearance)
    search_type: WEB, IMAGE, VIDEO, NEWS, DISCOVER
    row_limit: Max rows (up to 25000)
    start_row: Starting row for pagination
    sort_by: Metric to sort returned API page locally (clicks, impressions, ctr, position)
    sort_direction: ascending or descending
    filter_dimension: Single filter dimension (query, page, country, device)
    filter_operator: contains, equals, notContains, notEquals, includingRegex, excludingRegex
    filter_expression: Filter value
    filters: JSON array of filter objects for AND logic. Each needs dimension, operator, expression.
    data_state: "all" (default) or "final" (confirmed only, 2-3 day lag)
get_performance_overviewB
Get a performance overview with totals and daily trend.

Args:
    site_url: Exact GSC property URL
    days: Number of days to look back (default: 28)
compare_search_periodsB
Compare search analytics between two time periods.

Args:
    site_url: Exact GSC property URL
    period1_start: Start date for period 1 (YYYY-MM-DD)
    period1_end: End date for period 1
    period2_start: Start date for period 2
    period2_end: End date for period 2
    dimensions: Dimensions to group by (default: query)
    limit: Top N results to compare (default: 20)
get_search_by_page_queryB
Get search queries driving traffic to a specific page.

Args:
    site_url: Exact GSC property URL
    page_url: The specific page URL to analyze
    days: Days to look back (default: 28)
    row_limit: Rows to return (default: 20, max: 500)
inspect_urlB
Inspect a URL for indexing status, rich results, and mobile usability.

Args:
    site_url: Exact GSC property URL (e.g. "sc-domain:example.com")
    page_url: The specific URL to inspect
batch_inspect_urlsA
Inspect multiple URLs for indexing status. Handles rate limiting automatically.
API limit: 2000/day, 600/minute. This tool handles up to 50 URLs per call.

Args:
    site_url: Exact GSC property URL (e.g. "sc-domain:example.com")
    urls: List of URLs to inspect, one per line
get_sitemapsC
List all sitemaps for a property with detailed info.

Args:
    site_url: Exact GSC property URL
submit_sitemapB
Submit or resubmit a sitemap to Google.

Args:
    site_url: Exact GSC property URL
    sitemap_url: Full URL of the sitemap to submit
delete_sitemapB
Delete (unsubmit) a sitemap from Google Search Console.

Args:
    site_url: Exact GSC property URL
    sitemap_url: Full URL of the sitemap to delete
request_indexingA
Request Google to crawl and index a URL via the Indexing API.
IMPORTANT: Only works for pages with JobPosting or BroadcastEvent structured data.
Default quota: 200 requests/day.

Args:
    url: The full URL to request indexing for
request_removalA
Request Google to remove a URL from the index via the Indexing API.
IMPORTANT: Only works for pages with JobPosting or BroadcastEvent structured data.

Args:
    url: The full URL to request removal for
batch_request_indexingA
Request indexing for multiple URLs. Processes sequentially with rate limiting.
Default quota: 200/day. Only for pages with JobPosting or BroadcastEvent structured data.

Args:
    urls: List of URLs to index, one per line (max 100 per batch)
check_indexing_notificationB
Check the latest indexing notification status for a URL.

Args:
    url: The URL to check
get_core_web_vitalsA
Get Core Web Vitals (LCP, INP, CLS) from the Chrome UX Report (CrUX) API.
Free API, no OAuth needed — just a CRUX_API_KEY env variable.

Args:
    url_or_origin: Full URL or origin (e.g. "https://example.com" for origin-level)
    form_factor: PHONE, DESKTOP, or TABLET (default: PHONE)
get_pagespeed_insightsB
Run Google's PageSpeed Insights API for a URL.
Returns Lighthouse lab data plus available Chrome UX Report field data.

Args:
    url: Full page URL
    strategy: mobile or desktop
    categories: Comma-separated Lighthouse categories
run_lighthouse_auditA
Run a local Lighthouse CLI audit for an explicitly trusted URL.
Requires SEO_AUDIT_ENABLE_LOCAL_LIGHTHOUSE=true, Node.js and Chrome/Chromium.
Lighthouse browser networking is not guarded by the public crawl transport.

Args:
    url: Full page URL
    form_factor: mobile or desktop
    categories: Comma-separated Lighthouse categories
inspect_robots_txtB
Fetch and summarize the site's robots.txt file.

Args:
    url_or_origin: Full URL, origin, or sc-domain property
analyze_sitemapB
Fetch and analyze an XML sitemap or sitemap index.

Args:
    sitemap_url: Full sitemap URL
    sample_urls: Number of sitemap URLs to validate with GET requests
analyze_page_seoB
Fetch a page and analyze on-page SEO signals, structured data, and indexability hints.

Args:
    url: Full page URL
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
Run a live SEO audit without requiring Search Console access.
Combines page analysis, robots.txt inspection, sitemap discovery, PSI data, and a small same-origin crawl.

Args:
    url: Full site/page URL
    crawl_pages: Number of pages to crawl for duplicate/missing-tag issues
    include_lighthouse: Whether to also run a local Lighthouse CLI audit
find_striking_distance_keywordsA
Find "striking distance" keywords — queries ranking at positions 5-20 with decent impressions.
These are review candidates; positions alone do not establish the effort needed to improve rankings.

Args:
    site_url: Exact GSC property URL
    days: Days to look back (default: 28)
    min_impressions: Minimum impressions to include (default: 10)
    row_limit: Max results (default: 50)
detect_cannibalizationA
Identify queries appearing for multiple pages as potential cannibalization candidates.
Multiple pages can serve different intents; overlap alone does not prove harmful competition.

Args:
    site_url: Exact GSC property URL
    days: Days to look back (default: 28)
    min_impressions: Minimum impressions per query-page pair (default: 5)
split_branded_queriesA
Split search performance into branded vs non-branded queries.
Separates query-visible traffic; one period alone does not establish growth.

Args:
    site_url: Exact GSC property URL
    brand_name: Your brand name to filter (e.g. "cdljobscenter")
    days: Days to look back (default: 28)
site_auditA
Check sitemap submission health, performance, and a sample of top search pages for indexing issues.
This sample cannot establish indexing coverage across the entire property.

Args:
    site_url: Exact GSC property URL (e.g. "sc-domain:example.com")
    sitemap_url: Optional submitted sitemap to include in the GSC health report (not crawled here).
    max_inspect: Max URLs to inspect (0-100, default: 30, costs 1 API call each)
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

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

B3.2/5.0

Scored across 43 tools

Disambiguation3/5

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.

Naming Consistency4/5

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.

Tool Count2/5

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.

Completeness4/5

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.

Maintenance

ActivityMaintained
ResponsivenessNo issues