grain-seo-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| GSC_OAUTH_SECRETS_FILE | Yes | Path to Google Cloud OAuth secrets JSON file |
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 |
|---|---|
| get_startedA | Start here. Returns a complete map of this server's capabilities, active platforms, and recommended workflows. Call this once at the beginning of any session. |
| sites_listA | List all verified sites or properties across all authorized accounts |
| bing_seo_cannibalizationB | Detect pages competing for the same query in Bing. |
| bing_seo_lost_queriesC | Identify queries that lost significant traffic on Bing compared to the previous period. |
| bing_brand_analysisB | Analyze Brand vs Non-Brand performance on Bing. |
| bing_analytics_trendsC | Detect rising or declining trends in Bing query performance |
| sites_addC | Add a new site to Search Console or Bing Webmaster Tools |
| sites_deleteA | Remove a site from Search Console or Bing Webmaster Tools |
| sites_getC | Get information about a specific site |
| sites_health_checkC | Run a health check on one or all verified sites. Checks performance trends and status. |
| sitemaps_listB | List sitemaps for a site |
| sitemaps_getC | Get details about a specific sitemap |
| sitemaps_submitB | Submit a sitemap to Search Console or Bing Webmaster Tools |
| sitemaps_deleteB | Delete a sitemap from Search Console or Bing Webmaster Tools |
| analytics_queryC | Query search analytics data with optional pagination |
| analytics_performance_summaryB | Get the aggregate performance metrics (clicks, impressions, CTR, position) for the last N days. |
| analytics_compare_periodsA | Compare performance metrics between two date periods. Useful for week-over-week or month-over-month analysis. |
| compare_enginesA | Compare performance data between Google and Bing for a specific dimension (query, page, etc). |
| analytics_top_queriesA | Get top search queries by clicks or impressions for the last N days. |
| analytics_top_pagesB | Get top performing pages by clicks or impressions for the last N days. |
| analytics_by_countryC | Get performance breakdown by country for the last N days. |
| analytics_search_appearanceC | Get performance breakdown by search appearance type for the last N days. |
| analytics_trendsC | Detect traffic trends (rising/declining) for queries or pages. |
| analytics_anomaliesB | Identify unusual daily spikes or drops in traffic. |
| analytics_drop_attributionB | Analyze a significant traffic drop to identify if it was caused by specific devices (mobile/desktop) or coincides with known Google algorithm updates. |
| analytics_time_seriesB | Get advanced time series data including rolling averages, seasonality strength, and trend forecasting. Supports multi-dimensional analysis, metrics selection, and custom granularities. |
| inspection_inspectB | Inspect a URL to check its indexing status, crawl info, and health |
| inspection_batchB | Inspect multiple URLs for a site in batch |
| pagespeed_analyzeC | Run PageSpeed Insights analysis on a URL to get performance, accessibility, best practices, and SEO scores |
| pagespeed_core_web_vitalsA | Get Core Web Vitals for both mobile and desktop including LCP, FID, CLS, FCP, TTI, and TBT |
| seo_recommendationsB | Generate SEO recommendations based on site performance data |
| seo_low_hanging_fruitC | Find keywords with high impressions but low rankings that have potential for growth |
| seo_cannibalizationC | Detect keyword cannibalization - multiple pages competing for the same query |
| seo_low_ctr_opportunitiesA | Find queries with low CTR relative to their ranking position. Great for title tag optimization. |
| seo_striking_distanceA | Find keywords ranking in positions 8-15. These are high-priority targets to push to Page 1. |
| seo_lost_queriesA | Identify queries that lost all traffic (or dropped >80%) compared to the previous period. |
| seo_brand_vs_nonbrandC | Analyze performance split between Brand and Non-Brand queries using a regex. |
| seo_quick_winsC | Find pages with queries ranking on page 2 (positions 11-20) that could be pushed to page 1 |
| grain_content_decayA | Detect pages with consistent traffic decline across 3 consecutive 30-day windows. Only flags pages with strict monotonic decline (oldest > middle > newest). |
| grain_traffic_dropsA | Diagnose WHY traffic dropped: ranking loss, CTR collapse, search demand decline, or page disappeared. Compares current vs prior period. |
| grain_ctr_benchmarkA | Compare actual CTR per page against industry benchmarks by position. Classifies as Above/At/Below/Significantly below benchmark. |
| grain_verify_claimB | Anti-hallucination: re-query GSC to verify a specific numeric claim. Tolerance: position ±0.5, other metrics ±5%. |
| grain_topic_clusterA | Aggregate performance for all pages matching a URL path pattern (e.g. /blog/, /guides/). Returns top pages and queries. |
| grain_content_recommendationsB | Generate prioritized SEO recommendations by cross-referencing quick wins, content gaps, and cannibalization. Returns update/create/consolidate actions. |
| accounts_listB | List all authorized Google and Bing accounts |
| accounts_add_siteC | Authorize a specific site or domain for an account (Account Boundary) |
| accounts_removeB | Remove an authorized account |
| seo_primitive_ranking_bucketC | primitive: Get the ranking bucket for a specific position (e.g. Top 3, Page 1). |
| seo_primitive_traffic_deltaA | primitive: Calculate the delta between two traffic metrics (absolute and percentage). |
| seo_primitive_is_brandB | primitive: Check if a query is a brand query based on a regex pattern. |
| seo_primitive_is_cannibalizedC | primitive: Check if two pages are competing for the same query based on their metrics. |
| schema_validateA | Validate Schema.org structured data (JSON-LD) from a URL, HTML snippet, or JSON object. |
| util_star_repoA | Star the GitHub repository to support the project. Uses GitHub CLI if available, or opens a browser. |
| bing_sites_listA | List all sites verified in Bing Webmaster Tools |
| bing_sites_addB | Add a new site to Bing Webmaster Tools |
| bing_sites_deleteB | Remove a site from Bing Webmaster Tools |
| bing_sitemaps_listB | List sitemaps for a Bing site |
| bing_sitemaps_submitC | Submit a sitemap to Bing Webmaster Tools |
| bing_sitemaps_deleteB | Remove a sitemap from Bing Webmaster Tools |
| bing_analytics_queryC | Get query performance stats from Bing Webmaster Tools (Top Queries) |
| bing_analytics_pageC | Get page performance stats from Bing Webmaster Tools (Top Pages) |
| bing_analytics_page_queryB | Get query performance stats for a specific page from Bing Webmaster Tools |
| bing_get_top_queriesC | Alias for bing_analytics_query. Get top queries for a site. |
| bing_get_top_pagesC | Alias for bing_analytics_page. Get top pages for a site. |
| bing_analytics_query_pageB | Get combined query and page performance stats for a site |
| bing_rank_traffic_statsC | Get historical rank and traffic statistics for a site |
| bing_keywords_statsC | Get historical stats for a keyword in Bing |
| bing_related_keywordsB | Get related keywords and search volume from Bing |
| bing_crawl_issuesC | Get crawl issues for a site from Bing Webmaster Tools |
| bing_crawl_statsA | Get crawl statistics (indexed, crawled, errors) for a site |
| bing_url_submission_quotaA | Get remaining URL submission quota for Bing |
| bing_url_submitB | Submit a single URL to Bing for indexing |
| bing_url_submit_batchB | Submit multiple URLs to Bing for indexing in a single batch |
| bing_index_nowB | Submit URLs via IndexNow API (Bing, Yandex, etc.) |
| indexing_submit_urlA | Submit a URL for indexing (notify Google or Bing that a page was updated). Google Indexing API is officially for JobPosting/BroadcastEvent pages. |
| indexing_remove_urlC | Notify Google that a URL has been removed (e.g., expired job posting). Google only. |
| indexing_statusB | Check the notification status for a URL previously submitted to the Google Indexing API |
| indexing_batch_submitB | Submit multiple URLs for indexing in batch. Google: max 200 (daily quota), Bing: max 500. |
| bing_sites_healthA | Run a comprehensive health check on one or all verified Bing sites |
| bing_opportunity_finderC | Find high-potential 'low-hanging fruit' keywords in Bing |
| bing_seo_recommendationsB | Generate prioritized SEO recommendations for a Bing site |
| bing_striking_distanceB | Find keywords ranking positions 8-15 on Bing (near page 1) |
| bing_low_ctr_opportunitiesC | Identify high-ranking Bing queries with lower than expected CTR |
| bing_url_infoA | Get detailed indexing and crawl information for a URL in Bing |
| bing_link_countsB | Get inbound link counts for a site from Bing |
| bing_analytics_detect_anomaliesC | Detect performance anomalies in Bing traffic |
| bing_analytics_compare_periodsC | Compare performance between two date ranges in Bing |
| bing_analytics_drop_attributionC | Identify the likely cause of a Bing traffic drop |
| bing_analytics_time_seriesC | Advanced time series analysis for Bing performance data |
| analytics_page_performanceB | Get detailed page performance metrics from GA4 (sessions, views, engagement) |
| analytics_traffic_sourcesB | Analyze traffic sources (Channel, Source, Medium) in GA4 |
| analytics_organic_landing_pagesB | Get performance of organic landing pages in GA4 (matches GSC data) |
| analytics_content_performanceB | Analyze content performance by Content Group in GA4 (Requires Content Groups to be configured in GA4 Admin) |
| analytics_ecommerceB | Get ecommerce performance (products, revenue) from GA4 |
| analytics_realtimeB | Get realtime active users broken down by page, country, and device |
| analytics_user_behaviorA | Get user behavior breakdown (Device, Country, Engagement) in a single batch |
| analytics_audience_segmentsB | Get audience segmentation (New vs Returning, Age, OS) in a single batch |
| analytics_conversion_funnelC | Analyze top converting pages and events |
| analytics_pagespeed_correlationB | Correlate GA4 engagement metrics with PageSpeed Insights scores for top organic pages |
| page_analysisB | Compare GSC ranking data with GA4 behavior data for top pages to find opportunities |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| analyze-site-performance | |
| compare-performance | |
| find-declining-pages | |
| keyword-opportunities | |
| new-content-impact | |
| mobile-vs-desktop | |
| site-health-check | |
| investigate_traffic_drop | |
| find_quick_wins | |
| full_site_audit | |
| analyze_page | |
| platform_comparison | |
| content_opportunity_report | |
| executive_summary | |
| ga4_traffic_audit |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| sites | |
| sitemaps | |
| analytics-summary | |
| docs-dimensions | |
| docs-filters | |
| docs-search-types | |
| docs-patterns | |
| docs-algorithm-updates | |
| docs-bing-api | |
| docs-index-now | |
| docs-bing-dimensions | |
| docs-bing-filters | |
| docs-bing-search-types | |
| docs-bing-patterns | |
| docs-bing-algorithm-updates | |
| docs-indexing |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/zhangluka/grain-seo-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server