GSC SEO MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| GSC_SCOPES | No | Comma-separated Google OAuth scopes. | |
| GSC_KEY_FILE | No | Path to service account JSON key. | |
| GSC_SITE_URL | No | Default Search Console property. Example: sc-domain:example.com | |
| GSC_AUTH_MODE | No | service_account or oauth. Auto-detected when possible. | |
| GSC_SITE_URLS | No | Comma-separated properties for multi-site dashboards. | |
| GSC_DATA_STATE | No | all, final, or hourly_all. Defaults to all. | |
| GSC_REPORT_DIR | No | Folder for generated Markdown reports. Defaults to ./reports. | |
| GSC_TOKEN_FILE | No | OAuth token cache path. | |
| GSC_BRAND_TERMS | No | Comma-separated brand terms for brand_nonbrand_split. | |
| GSC_OAUTH_CLIENT_ID | No | OAuth client ID when not using a secrets file. | |
| GSC_OAUTH_SECRETS_FILE | No | Path to OAuth client secret JSON. | |
| GSC_OAUTH_CLIENT_SECRET | No | OAuth client secret when not using a secrets file. | |
| GOOGLE_APPLICATION_CREDENTIALS | No | Alternative path to service account JSON key. |
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 | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| server_healthA | Show server configuration, enabled defaults, and tool count without exposing secrets. |
| list_propertiesA | List Search Console properties available to the authenticated user or service account. |
| get_siteB | Get permission details for a specific Search Console property. |
| add_siteA | Add a site to the authenticated account. Requires write scope and verification still happens in Search Console. |
| delete_siteA | Remove a site from the authenticated account. Destructive: use only when explicitly requested. |
| search_analyticsC | Run a flexible Search Analytics query. Use this for exact data pulls with custom dimensions and filters. |
| advanced_filter_queryC | Pull up to 50,000 Search Analytics rows with advanced filters for deeper audits. |
| top_queriesB | Find top queries with optional page filtering, useful for keyword and content research. |
| top_pagesB | Find top pages with optional query filtering, useful for landing page and folder audits. |
| performance_overviewB | Return a site-level snapshot with previous-period comparison, daily trend, devices, and search appearances. |
| compare_periodsC | Compare current vs previous period by page, query, country, device, or search appearance. |
| dimension_breakdownC | Break performance down by a single dimension such as country, device, date, or search appearance. |
| page_query_matrixA | Map pages to the queries that drive them. Great for content briefs and cannibalization review. |
| quick_winsB | Find keywords ranking around positions 4-15 where better content, internal links, or snippets can win traffic. |
| ctr_opportunitiesB | Find queries and pages where CTR is below an expected CTR curve for the current average position. |
| content_decayC | Detect pages declining across multiple equal periods, not just one noisy comparison. |
| traffic_drop_diagnosisB | Explain page or query traffic losses as ranking loss, CTR loss, demand decline, or mixed signal. |
| cannibalization_checkC | Find queries where multiple pages compete and split impressions or clicks. |
| brand_nonbrand_splitC | Split performance into brand and non-brand search demand using configured or supplied brand terms. |
| search_intent_breakdownC | Classify queries into informational, commercial, transactional, navigational, and local intent buckets. |
| device_country_opportunitiesB | Find device and country segments with high impressions but weak CTR or ranking. |
| long_tail_questionsC | Surface question and long-tail queries that can become FAQ sections, support docs, or content expansions. |
| page_refresh_prioritiesB | Prioritize pages to update using lost clicks, declining impressions, CTR gaps, and position changes. |
| internal_link_opportunitiesA | Suggest internal linking opportunities from stronger pages to weaker pages sharing valuable queries. |
| query_page_fitB | Analyze one URL's query mix, intent fit, and content angles based on the queries it already ranks for. |
| title_meta_briefA | Create a data-backed title/meta refresh brief from high-impression, low-CTR queries for one page. |
| anomaly_alertsB | Detect recent page/query anomalies using the latest period versus the immediately previous period. |
| inspect_urlC | Inspect a URL's indexed status, canonical, crawl, robots, and coverage signals. |
| batch_inspect_urlsB | Inspect multiple URLs sequentially. Keep batches small to respect URL Inspection API quotas. |
| index_coverage_summaryC | Summarize indexed/not-indexed/canonical coverage for a supplied list of URLs. |
| list_sitemapsA | List submitted sitemaps with status, errors, warnings, and indexed URL counts. |
| get_sitemapC | Get details for one sitemap URL. |
| submit_sitemapA | Submit or refresh a sitemap in Search Console. Requires write scope. |
| delete_sitemapA | Delete a submitted sitemap from Search Console. Destructive: use only when explicitly requested. |
| indexing_publish_urlB | Notify Google that an eligible URL was updated or removed through the Indexing API. |
| indexing_batch_publishC | Publish multiple Indexing API URL notifications sequentially. Use only for eligible pages and respect quota. |
| indexing_get_metadataB | Check the latest Indexing API update/remove notification metadata for a URL. |
| multi_site_dashboardC | Compare configured Search Console properties in one health dashboard. |
| generate_markdown_reportC | Generate a Markdown SEO performance report and save it to GSC_REPORT_DIR. |
| verify_claimC | Re-query GSC to verify a numeric SEO claim before presenting it to a client or stakeholder. |
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 40 tools
Most tools have clearly distinct purposes, with descriptions that differentiate similar operations (e.g., search_analytics vs. specialized queries). A few pairs like indexing_publish_url and indexing_batch_publish could cause minor confusion, but overall boundaries are clear.
Tools consistently use snake_case, but naming patterns vary between verb_noun (add_site, inspect_url) and noun_verb (cannibalization_check, content_decay). The mix is understandable and readable, with only a few deviations from a strict pattern.
With 40 tools, the server is heavily overloaded. While each tool has a specific function, the sheer number exceeds a manageable scope and risks overwhelming agents or users. Many tools could be consolidated or are redundant.
The tool set covers a broad range of Google Search Console functionality: site management, sitemaps, URL inspection, indexing, analytics, and specialized SEO analyses. Minor gaps exist (e.g., no tool for user permissions or manual actions), but core workflows are well supported.