Google Search Console MCP Server
Provides URL inspection capabilities including AMP status, mobile usability, and rich results.
Enables querying search performance data filtered by the Google News search type.
Allows querying search performance data, comparing periods, finding SEO opportunities, diagnosing traffic issues, inspecting URLs, managing sitemaps, and more through the Google Search Console API.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Google Search Console MCP ServerShow me my top 10 queries by clicks for the last month"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Google Search Console MCP Server (Unofficial)
An unofficial, open-source Model Context Protocol (MCP) server for Google Search Console. Connect your AI assistant to real SEO data — search analytics, URL inspection, sitemaps, indexing, and smart opportunity detection.
5 steps, under 10 minutes to set up. No coding experience required.
Works with: Claude Desktop, Cursor, VS Code, Windsurf, and any MCP-compatible client.
Available Tools
Tool | Description | Read-Only |
| Query search performance data with full filtering, all dimensions, and all search types | Yes |
| Compare two date ranges with automatic delta calculations | Yes |
| Identify quick wins, declining pages, and emerging queries | Yes |
| Find pages that lost traffic and diagnose why (ranking loss, CTR collapse, or demand decline) | Yes |
| Detect keywords where multiple pages compete against each other | Yes |
| Find pages with 3+ consecutive months of traffic decline | Yes |
| Compare your CTR against industry averages by position | Yes |
| Analyze performance of all pages under a URL path prefix | Yes |
| Self-check a data claim before presenting it (anti-hallucination) | Yes |
| Inspect a single URL's index status, mobile usability, rich results, and AMP | Yes |
| Inspect multiple URLs at once (max 100, rate-limited to 2K/day) | Yes |
| List all sitemaps with status, error counts, and content details | Yes |
| Submit a new sitemap to Search Console | No |
| Remove a sitemap from Search Console tracking | No |
| List all accessible Search Console properties with permission levels | Yes |
| Send a URL update or deletion notification via the Indexing API | No |
| Check Indexing API notification status for a URL | Yes |
Related MCP server: Google Search Console MCP Server
What Can You Do With This?
Search Performance Analysis
Pull your top queries, pages, countries, and devices with full filtering
Use regex filters to segment branded vs. non-branded traffic
Access all search types: Web, Discover, Google News, Image, Video
Get hourly traffic data (via the April 2025 GSC API update)
Retrieve up to 25,000 rows per request
Track Changes Over Time
Compare any two date ranges side-by-side
See click, impression, CTR, and position deltas at a glance
Detect the impact of algorithm updates, deployments, or SEO changes
Find SEO Opportunities Automatically
Quick wins — Queries ranking 5-20 with high impressions but low CTR (optimize titles/descriptions)
Declining content — Pages losing traffic compared to the prior period
Emerging queries — New or rapidly growing queries you should capitalize on
Diagnose Traffic Issues
Traffic drop diagnosis — Find pages that lost traffic and learn why: ranking loss, CTR collapse, or demand decline
Keyword cannibalization — Detect queries where multiple pages compete against each other
Content decay — Surface pages with 3+ consecutive months of decline before they disappear from SERPs
CTR benchmarks — Compare your click-through rates against industry averages by position
Topic cluster analysis — See aggregate performance for all pages under a URL path (like
/blog/seo/)
Anti-Hallucination Safeguards
Data provenance — Every response includes a
_metablock confirming the data source, tool, and parameters usedGuardrail prompts — Tool descriptions instruct the AI to report exact numbers and avoid speculation
Verify claim — A dedicated tool lets the AI self-check any claim by re-querying the API before presenting it
Monitor Technical SEO
Inspect any URL's index status, mobile usability, rich results, and AMP
Batch inspect up to 100 URLs at once with built-in rate limiting
Check canonical status and detect mismatches
List, submit, and delete sitemaps
Send URL update/deletion notifications via the Indexing API
Quick Start
npx gluska-seo-gsc-mcpSetup
Prerequisites
A Google Cloud Project with the Search Console API enabled
OAuth 2.0 credentials (Desktop app) or a Service Account
Node.js >= 18
Step 1: Enable the Search Console API
Go to the Google Cloud Console
Select or create a project
Go to APIs & Services > Library
Search for "Google Search Console API" and click Enable
If you plan to use the Indexing API tools, also enable the Web Search Indexing API
Step 2: Create Credentials
Option A: Service Account (Recommended)
Best for automation, CI/CD, and MCP servers — no browser interaction needed.
In Google Cloud Console, go to APIs & Services > Credentials
Click Create Credentials > Service Account
Give it a name (e.g., "gsc-mcp") and click Create
Skip the optional permissions steps and click Done
Click on the newly created service account
Go to the Keys tab > Add Key > Create new key > JSON
Save the downloaded JSON file somewhere safe
Then add the service account to Search Console:
Go to Google Search Console
Select your property
Go to Settings > Users and permissions > Add user
Paste the
client_emailfrom the JSON file (looks likename@project.iam.gserviceaccount.com)Set permission to Full and click Add
Set the environment variable:
export GSC_SERVICE_ACCOUNT_PATH=/path/to/service-account.jsonOption B: OAuth 2.0 (Interactive)
Best for personal use when you want to authenticate as yourself.
In Google Cloud Console, go to APIs & Services > Credentials
Click Create Credentials > OAuth client ID
Select Desktop app as the application type
Download the credentials JSON file
Set the environment variable:
export GSC_OAUTH_CREDENTIALS_PATH=/path/to/credentials.jsonOn first run, a browser window opens for authentication. Tokens are cached automatically for subsequent use.
Step 3: Configure Your MCP Client
Add to your claude_desktop_config.json:
{
"mcpServers": {
"google-search-console": {
"command": "npx",
"args": ["-y", "gluska-seo-gsc-mcp"],
"env": {
"GSC_SERVICE_ACCOUNT_PATH": "/path/to/service-account.json"
}
}
}
}Config file location:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.json
Add to your .cursor/mcp.json:
{
"mcpServers": {
"google-search-console": {
"command": "npx",
"args": ["-y", "gluska-seo-gsc-mcp"],
"env": {
"GSC_SERVICE_ACCOUNT_PATH": "/path/to/service-account.json"
}
}
}
}Add to your .vscode/mcp.json:
{
"servers": {
"google-search-console": {
"command": "npx",
"args": ["-y", "gluska-seo-gsc-mcp"],
"env": {
"GSC_SERVICE_ACCOUNT_PATH": "/path/to/service-account.json"
}
}
}
}Add to your ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"google-search-console": {
"command": "npx",
"args": ["-y", "gluska-seo-gsc-mcp"],
"env": {
"GSC_SERVICE_ACCOUNT_PATH": "/path/to/service-account.json"
}
}
}
}Example Prompts
Here are some things you can ask your AI assistant once the MCP is connected:
Search Performance
What You Can Ask | Tool Used |
"Show me my top 20 queries by clicks for the last 7 days" |
|
"What are my top performing pages?" |
|
"Break down my traffic by device type" |
|
"Which countries drive the most impressions?" |
|
"Show me all queries containing 'tutorial' with regex" |
|
"What's my Discover traffic look like?" |
|
"Show me hourly traffic data for the past 3 days" |
|
"Filter my queries to only non-branded terms" |
|
Comparisons
What You Can Ask | Tool Used |
"Compare this week's performance to last week" |
|
"How did March compare to February?" |
|
"Show me which queries gained or lost the most clicks week over week" |
|
Opportunities
What You Can Ask | Tool Used |
"Find quick win opportunities — high impressions but low CTR" |
|
"What content is declining in traffic?" |
|
"Are there any new emerging queries I should know about?" |
|
"Give me a full SEO opportunity analysis" |
|
Traffic Diagnosis & Optimization
What You Can Ask | Tool Used |
"Which pages lost traffic recently and why?" |
|
"Are any of my pages cannibalizing each other?" |
|
"Which pages are slowly dying?" |
|
"How does my CTR compare to benchmarks?" |
|
"Show me CTR benchmarks for my top queries" |
|
"How is my /blog/ section performing?" |
|
"Show me the performance of all pages under /docs/" |
|
Technical SEO
What You Can Ask | Tool Used |
"Is https://example.com/my-page indexed?" |
|
"Check these 10 URLs and tell me which have indexing issues" |
|
"List all my sitemaps and their status" |
|
"Submit my new sitemap at https://example.com/sitemap-blog.xml" |
|
"Which Search Console properties do I have access to?" |
|
"Notify Google that I updated https://example.com/page" |
|
Multi-Tool Combinations
What You Can Ask | Tools Used |
"List my properties, then show top queries for each one" |
|
"Find quick wins and then inspect the top opportunity pages" |
|
"Compare this week to last week, then find what's declining" |
|
"Check my sitemaps, then inspect URLs from any with errors" |
|
Example Outputs
Here's what the tool output actually looks like. Examples use hiretalent.ph with sample data for illustration:
search_analytics — "Show me my top queries"
Search Analytics for sc-domain:hiretalent.ph
Period: 2026-03-15 to 2026-03-22 | Search Type: web | Data: all
Total: 14.8K clicks, 412.5K impressions, 3.59% avg CTR, 5.2 avg position
Showing 10 rows
Query | Clicks | Impressions | CTR | Position
----------------------------------------- | ------ | ----------- | ------ | --------
hire talent philippines | 1.8K | 5.2K | 34.62% | 1.3
hire remote filipino workers | 1.4K | 8.1K | 17.28% | 2.1
outsource to philippines | 1.2K | 15.3K | 7.84% | 3.5
filipino virtual assistant | 980 | 22.4K | 4.37% | 4.2
philippine staffing agency | 870 | 6.8K | 12.79% | 2.8
best hiring platform philippines | 640 | 4.1K | 15.61% | 1.9
remote workers philippines cost | 520 | 18.7K | 2.78% | 5.6
hire developers philippines | 410 | 9.3K | 4.41% | 3.7
hiretalent | 380 | 620 | 61.29% | 1.0
outsourcing vs hiring in-house | 290 | 31.2K | 0.93% | 7.8search_analytics — "Break down traffic by device"
Search Analytics for sc-domain:hiretalent.ph
Period: 2026-03-15 to 2026-03-22 | Search Type: web | Data: all
Total: 14.8K clicks, 412.5K impressions, 3.59% avg CTR, 5.2 avg position
Showing 3 rows
Device | Clicks | Impressions | CTR | Position
------- | ------ | ----------- | ----- | --------
MOBILE | 8.2K | 265.8K | 3.09% | 5.8
DESKTOP | 6.1K | 134.2K | 4.55% | 4.3
TABLET | 510 | 12.5K | 4.08% | 5.1find_opportunities — "Find quick win opportunities"
Opportunity Analysis for sc-domain:hiretalent.ph
Recent: 2026-03-15 to 2026-03-22 | Prior: 2026-02-15 to 2026-02-22
## Quick Wins
High-impression queries ranking 5-20 with low CTR. Optimizing titles/descriptions could boost clicks significantly.
Query | Page | Clicks | Impressions | CTR | Position
------------------------------------ | ------------------------------------------------------- | ------ | ----------- | ----- | --------
outsourcing vs hiring in-house | https://hiretalent.ph/blog/outsourcing-vs-inhouse/ | 290 | 31.2K | 0.93% | 7.8
how much to pay filipino VA | https://hiretalent.ph/blog/filipino-va-salary-guide/ | 145 | 24.6K | 0.59% | 9.4
remote team management tips | https://hiretalent.ph/blog/managing-remote-teams/ | 82 | 18.9K | 0.43% | 11.2
philippines tech talent market | https://hiretalent.ph/blog/ph-tech-talent-2026/ | 54 | 12.3K | 0.44% | 8.6
best countries to outsource to | https://hiretalent.ph/blog/top-outsourcing-countries/ | 38 | 9.7K | 0.39% | 10.1compare_periods — "Compare this week to last week"
Period Comparison for sc-domain:hiretalent.ph
Period 1: 2026-03-08 to 2026-03-14
Period 2: 2026-03-15 to 2026-03-21
Overall: Clicks 12.1K → 14.8K (+22.3%)
Impressions 358.9K → 412.5K (+14.9%)
Top changes (sorted by absolute click delta):
Query | P1 Clicks | P2 Clicks | Delta | Change | P1 Pos | P2 Pos
-------------------------------- | --------- | --------- | ----- | ------- | ------ | ------
hire remote filipino workers | 890 | 1.4K | +510 | +57.3% | 3.4 | 2.1
outsource to philippines | 980 | 1.2K | +220 | +22.4% | 4.1 | 3.5
filipino virtual assistant | 1.1K | 980 | -120 | -10.9% | 3.8 | 4.2
hire talent philippines | 1.6K | 1.8K | +200 | +12.5% | 1.5 | 1.3
remote workers philippines cost | 620 | 520 | -100 | -16.1% | 4.9 | 5.6inspect_url — "Is this page indexed?"
URL Inspection: https://hiretalent.ph/blog/outsourcing-vs-inhouse/
## Index Status
Verdict: PASS
Coverage: Submitted and indexed
Indexing: INDEXING_ALLOWED
Robots.txt: ALLOWED
Page fetch: SUCCESSFUL
Last crawl: 2026-03-20T14:32:00Z
Crawled as: DESKTOP
Google canonical: https://hiretalent.ph/blog/outsourcing-vs-inhouse/
User canonical: https://hiretalent.ph/blog/outsourcing-vs-inhouse/
Sitemaps: https://hiretalent.ph/sitemap.xml
## Mobile Usability
Verdict: PASS
View in Search Console: https://search.google.com/search-console/inspect?...batch_inspect_urls — "Check these URLs for indexing issues"
Batch URL Inspection for sc-domain:hiretalent.ph
Inspected: 5/5 | Errors: 0
Quota remaining: 1995/day
## Summary
PASS: 3
NEUTRAL: 1
FAIL: 1
## URLs With Issues
NEUTRAL | https://hiretalent.ph/blog/old-salary-data-2024/
coverage=Crawled - currently not indexed, indexing=INDEXING_ALLOWED, crawled=2026-03-18
FAIL | https://hiretalent.ph/staging/new-landing-page/
coverage=Blocked by robots.txt, indexing=BLOCKED_BY_ROBOTS_TXT, crawled=neverlist_sitemaps — "Show me my sitemaps"
Sitemaps for sc-domain:hiretalent.ph
Total: 2 sitemap(s)
Sitemap URL | Type | Status | Last Submitted | Errors | Warnings
------------------------------------------ | ------- | --------- | -------------- | ------ | --------
https://hiretalent.ph/sitemap.xml | Index | Processed | 2026-03-01 | 0 | 0
https://hiretalent.ph/sitemap-blog.xml | Sitemap | Processed | 2026-03-18 | 0 | 1
## Content Details
https://hiretalent.ph/sitemap.xml:
web: 1450 submitted, 1380 indexed
https://hiretalent.ph/sitemap-blog.xml:
web: 285 submitted, 264 indexedlist_properties — "Which properties do I have access to?"
Search Console Properties
Total: 2 property/properties
Property | Type | Permission
----------------------------- | ---------- | ----------
sc-domain:hiretalent.ph | Domain | siteOwner
https://blog.hiretalent.ph/ | URL Prefix | siteFullUser
Use any of these site URLs with other tools (e.g., search_analytics, inspect_url).Environment Variables
Variable | Description | Required |
| Path to service account JSON | One of these |
| Path to OAuth credentials JSON | is required |
| Path to store OAuth tokens (default: | No |
| Default data freshness: | No |
| Default site URL to use when not specified | No |
| Set to | No |
API Rate Limits
This server has built-in rate limiting to respect Google's API quotas:
API | Rate Limit | Daily Limit |
Search Analytics | 1,200 requests/min | — |
URL Inspection | 600 requests/min | 2,000/day |
Indexing API (publish) | 200 requests/min | 200/day |
Indexing API (metadata) | 600 requests/min | 600/day |
All other endpoints | 200 requests/min | — |
You don't need to worry about hitting these — the server manages them automatically. If a quota is reached, you'll get a clear error message explaining what happened and when to retry.
Troubleshooting
"User does not have sufficient permission for site"
Make sure you added the service account email (or your OAuth user) to the property in Search Console
Go to Settings > Users and permissions in Search Console and verify the email is listed
For domain properties, use the format
sc-domain:example.comFor URL-prefix properties, include the protocol and trailing slash:
https://example.com/
"No data found" for a query
GSC data has a 2-3 day delay for finalized data. Try setting
dataStateto"all"for fresher (but potentially partial) dataVerify the date range — data is available for the last 16 months
Check that the site actually has search traffic for the specified search type
"Service account file not found"
Double-check the path in
GSC_SERVICE_ACCOUNT_PATH— it must be an absolute path or relative to where the server runsMake sure the JSON file was downloaded correctly from Google Cloud Console
OAuth browser window doesn't open
This is a known limitation with stdio-based MCP servers. The server tries to open your default browser, but some MCP clients block this
Workaround: Use a Service Account instead (recommended for MCP use)
Or run the server manually once (
npx gluska-seo-gsc-mcp) in a terminal to complete the OAuth flow, then use the cached token in your MCP client
"spawn npx ENOENT" on macOS
Claude Desktop and other MCP clients may not inherit your shell's PATH
Fix: Use the full path to npx in your config. Find it with
which npxin your terminalExample: Replace
"command": "npx"with"command": "/usr/local/bin/npx"(use your actual path)
Indexing API returns 403
The Indexing API requires separate enablement — make sure you enabled "Web Search Indexing API" in Google Cloud Console
Note: The Indexing API is officially supported only for pages with
JobPostingorBroadcastEventstructured data
Development
git clone https://github.com/justingluska/gluska-seo-gsc-mcp.git
cd gluska-seo-gsc-mcp
npm install
npm run build
npm testRunning Tests
npm test # Run all tests
npm run test:watch # Watch mode
npm run test:coverage # With coverage reportProject Structure
src/
cli.ts # Entry point (stdio transport)
server.ts # MCP server with all tool registrations
auth/
client.ts # OAuth 2.0 + Service Account authentication
api/
search-console.ts # Google Search Console API wrapper
indexing.ts # Google Indexing API wrapper
tools/
search-analytics.ts # search_analytics tool
compare-periods.ts # compare_periods tool
find-opportunities.ts # find_opportunities tool
traffic-drops.ts # diagnose_traffic_drops tool (NEW)
cannibalization.ts # cannibalization detection tool (NEW)
content-decay.ts # content_decay tool (NEW)
ctr-benchmarks.ts # ctr_benchmarks tool (NEW)
topic-clusters.ts # topic_clusters tool (NEW)
verify-claim.ts # verify_claim anti-hallucination tool (NEW)
inspect-url.ts # inspect_url + batch_inspect_urls tools
sitemaps.ts # list/submit/delete sitemap tools
properties.ts # list_properties tool
indexing.ts # notify_url_update + get_indexing_status tools
utils/
rate-limiter.ts # Token bucket rate limiter + daily quota tracker
dates.ts # Date utilities
formatting.ts # Response formatting (tables, numbers, CTR)
meta.ts # Data provenance metadata (NEW)
logger.ts # stderr-only logger
tests/
tools/ # Tool-level tests with mocked APIs
utils/ # Utility function testsContributing
Contributions are welcome! Please open an issue first to discuss what you'd like to change.
Fork the repository
Create your feature branch (
git checkout -b feature/my-feature)Make your changes
Run tests (
npm test)Commit your changes
Push to the branch and open a Pull Request
Acknowledgments
The anti-hallucination features in this project — data provenance (_meta blocks), guardrail prompts, and the verify_claim tool — were inspired by Suganthan Mohanadasan's work on his GSC MCP server and his blog post about building trust into AI-powered SEO tools. The ideas for dedicated cannibalization detection, content decay tracking, CTR benchmarks, traffic drop diagnosis, and topic cluster analysis were also informed by his write-up. Thanks Suganthan for sharing your work with the community.
Disclaimer
This is an unofficial, community-built tool and is not affiliated with, endorsed by, or sponsored by Google. Google Search Console is a trademark of Google LLC. This project uses the Google Search Console API under Google's Terms of Service.
License
Available Tools
17 toolsbatch_inspect_urlsBatch Inspect URLsARead-only
Inspect multiple URLs at once. Returns a summary of index status across all URLs with issues highlighted. Rate-limited to respect the 2,000/day quota. Max 100 URLs per call. IMPORTANT: Base your analysis only on the data returned by this tool. Report exact numbers from the response. Do not speculate about causes the data does not support. If the data is insufficient to answer, say so rather than guessing.
| Name | Required | Description | Default |
|---|---|---|---|
| urls | Yes | URLs to inspect (max 100) | |
| siteUrl | No | The site URL that contains these pages. Falls back to GSC_DEFAULT_SITE_URL if not provided. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint=true annotation, the description discloses a concrete rate limit (2,000/day), a per-call cap (100 URLs), and the nature of the return data (summary with issues highlighted). It also adds a crucial behavioral instruction: base analysis only on returned data, report exact numbers, and do not speculate. This meaningfully enriches what annotations alone provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the core purpose, followed by limits and a high-value analysis directive. The IMPORTANT block, while emphatic, earns its place because it shapes agent behavior on a data-querying tool. Every sentence contributes.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter, batch read tool with no output schema, the description is complete: it states what the tool does, what it returns, its rate and size limits, and how the agent should handle the returned data. It also benefits from schema coverage for parameter details, so nothing essential is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with both urls and siteUrl already documented in the input schema. The description does not add substantial new parameter-level meaning beyond what schema provides; it only restates the max 100 URLs constraint that is already visible in maxItems. Baseline 3 is therefore appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource ('Inspect multiple URLs at once') and distinguishes it from the single-URL sibling tool by emphasizing batch operation. It also states the output ('summary of index status across all URLs with issues highlighted'), making the tool's purpose unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly signals when to use this tool: when inspecting multiple URLs at once. It also gives operational guardrails (max 100 URLs per call, rate limit). However, it does not explicitly name the alternative inspect_url or state 'for a single URL, use inspect_url instead,' so it stops short of a full when-not/exclusion statement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cannibalizationKeyword CannibalizationARead-only
Detect keyword cannibalization — queries where multiple pages from the same site compete against each other, splitting ranking potential. Shows which pages rank for the same keywords so you can consolidate or differentiate. IMPORTANT: Base your analysis only on the data returned by this tool. Report exact numbers from the response. Do not speculate about causes the data does not support. If the data is insufficient to answer, say so rather than guessing.
| Name | Required | Description | Default |
|---|---|---|---|
| endDate | No | End date in YYYY-MM-DD format (default: 2 days ago) | |
| siteUrl | No | The site URL. Falls back to GSC_DEFAULT_SITE_URL if not provided. | |
| rowLimit | No | Max rows to fetch (default: 10000) | |
| startDate | No | Start date in YYYY-MM-DD format (default: 9 days ago) | |
| searchType | No | ||
| minImpressions | No | Minimum impressions for a query to be analyzed (default: 50) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true, openWorldHint=false, and destructiveHint=false. The description adds meaningful behavioral guidance beyond these: base analysis only on returned data, report exact numbers, avoid speculation, and explicitly say when data is insufficient. This aligns with openWorldHint=false and gives the agent concrete handling instructions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and well-structured: the first sentence defines the concept, the second states the output value, and the third provides essential analytical guardrails. Every sentence earns its place; there is no filler or repetition of schema details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description partially conveys what the tool returns by stating it shows which pages rank for the same keywords and implies numeric results through 'report exact numbers.' It is sufficient for an agent to understand the tool's general output, though a more explicit return shape or field-level detail would improve completeness given the absence of an output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 83%, so the parameters are already well documented in the schema. The description adds no parameter-specific meaning beyond what the schema provides, such as date handling, row limits, or minImpressions. The baseline of 3 applies because the schema carries the parameter documentation burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool detects keyword cannibalization and defines it as multiple pages from the same site competing for the same queries, splitting ranking potential. It identifies the output (which pages rank for the same keywords) but does not explicitly differentiate itself from sibling tools like search_analytics or topic_clusters, so it is clear but lacks explicit sibling positioning.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied: use when you need to detect keyword cannibalization or decide whether to consolidate pages. However, the description does not state when to prefer this tool over related tools such as find_opportunities or topic_clusters, nor does it provide exclusions or alternative routing. The IMPORTANT note is about data discipline, not about when to invoke the tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compare_periodsCompare PeriodsARead-only
Compare search performance between two date ranges. Returns delta calculations for clicks, impressions, CTR, and position. Useful for tracking impact of SEO changes, algorithm updates, or seasonal trends. IMPORTANT: Base your analysis only on the data returned by this tool. Report exact numbers from the response. Do not speculate about causes the data does not support. If the data is insufficient to answer, say so rather than guessing.
| Name | Required | Description | Default |
|---|---|---|---|
| siteUrl | No | The site URL. Falls back to GSC_DEFAULT_SITE_URL if not provided. | |
| rowLimit | No | Max rows per period (default: 100) | |
| dimensions | No | Dimensions to compare by (default: ["query"]) | |
| searchType | No | ||
| period1EndDate | Yes | First period end date (YYYY-MM-DD) | |
| period2EndDate | Yes | Second period end date (YYYY-MM-DD) | |
| period1StartDate | Yes | First period start date (YYYY-MM-DD) — the "before" period | |
| period2StartDate | Yes | Second period start date (YYYY-MM-DD) — the "after" period |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint=true and destructiveHint=false, so no contradiction exists. The description adds value beyond annotations by stating the return type (delta calculations) and enforcing a data-only analysis rule, which is useful for agents using the response.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded: purpose, output, use cases, then a critical guidance note. Every sentence earns its place, and there is no redundant filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a comparison tool with no output schema, the description sufficiently describes the returned metrics and sets expectations for data-driven analysis. Minor gaps remain around delta sign conventions and exact response shape, but the tool is still completely invocable from the information provided.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 88%, so the structured schema already documents most parameters. The description mentions 'two date ranges' and the computed metrics but adds little parameter-level meaning beyond what the schema provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource ('Compare search performance between two date ranges') and names the exact output metrics (deltas for clicks, impressions, CTR, position). This inherently distinguishes it from single-period analytics tools like search_analytics, even though no sibling is named explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear use cases: tracking SEO changes, algorithm updates, and seasonal trends. It provides good context for when to select this tool, though it does not explicitly state when not to use it or name alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
content_decayContent DecayARead-only
Detect content decay — pages with 3 or more consecutive months of traffic decline. One bad month is noise; sustained decline is a pattern that needs attention. Surfaces pages that should be refreshed before they disappear from search results. IMPORTANT: Base your analysis only on the data returned by this tool. Report exact numbers from the response. Do not speculate about causes the data does not support. If the data is insufficient to answer, say so rather than guessing.
| Name | Required | Description | Default |
|---|---|---|---|
| months | No | Number of consecutive declining months to flag (default: 3) | |
| siteUrl | No | The site URL. Falls back to GSC_DEFAULT_SITE_URL if not provided. | |
| rowLimit | No | Max rows per month query (default: 5000) | |
| minClicks | No | Minimum clicks in the oldest month to be considered (default: 20) | |
| searchType | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark it read-only/non-destructive, and the description adds meaningful handling guidance: 'Base your analysis only on the data returned by this tool', 'Report exact numbers', and 'Do not speculate'. It also recognizes potential data insufficiency and instructs the agent to say so, which goes beyond the structured hints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core definition and threshold, then adds concise usage/output behavior. Every sentence earns its place; the 'IMPORTANT' clause is compact and high-value rather than redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only analysis tool with no output schema, the description explains what it identifies, the threshold logic, and how to handle insufficient data. It does not spell out the exact response shape/metrics, but an agent has enough context to invoke the tool and interpret the returned pages.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema covers 80% of parameters with clear descriptions. The tool description adds a conceptual context for `months` and 'traffic decline', but does not materially explain siteUrl, rowLimit, minClicks, or searchType beyond what the schema already provides. Schema carries the parameter burden, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description states a precise objective ('Detect content decay') with an exact operational definition ('pages with 3 or more consecutive months of traffic decline') and clarifies the threshold ('One bad month is noise'). This distinguishes it from broader siblings like diagnose_traffic_drops by focusing on sustained multi-month decline.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly frames the intended use: surface pages needing refresh before disappearing from search results, and implies this is for sustained decline rather than isolated one-month dips. It does not explicitly name alternatives or provide when-not-to-use exclusions, but the context is sufficient for an agent to select it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ctr_benchmarksCTR vs BenchmarksARead-only
Compare your actual click-through rates against industry-average benchmarks by position. Identifies pages or queries with CTR below expected levels — candidates for title tag and meta description optimization. Benchmarks are aggregated from multiple studies and should be used as directional guidance. IMPORTANT: Base your analysis only on the data returned by this tool. Report exact numbers from the response. Do not speculate about causes the data does not support. If the data is insufficient to answer, say so rather than guessing.
| Name | Required | Description | Default |
|---|---|---|---|
| endDate | No | End date in YYYY-MM-DD format (default: 2 days ago) | |
| siteUrl | No | The site URL. Falls back to GSC_DEFAULT_SITE_URL if not provided. | |
| rowLimit | No | Max rows to analyze (default: 1000) | |
| dimension | No | Group by query or page (default: "page") | |
| startDate | No | Start date in YYYY-MM-DD format (default: 9 days ago) | |
| searchType | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds valuable behavioral context: benchmarks are aggregated from multiple studies (directional only), and the tool's output should be treated as evidence-based and not over-interpreted. It doesn't describe return format, but the strong guardrails about data usage compensate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured: the core purpose is in the first sentence, followed by the use case and the critical behavioral guardrails. It's slightly longer than ideal but every sentence earns its place, especially the IMPORTANT directive that constrains an AI agent's output.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only comparison tool with no output schema, the description covers what the tool does, why to use it, and how to interpret results. It lacks explicit return-format documentation, but the 'do not speculate, report exact numbers' directive tells the agent what to expect qualitatively. Given the rich parameter schema and readOnly annotation, this is reasonably complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 83%, so most parameters are already documented in the schema. The description doesn't add parameter-specific details beyond what the schema provides, but it does clarify the overall purpose of the parameters (position-based benchmark comparison). Baseline 3 is appropriate given the high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Compare'), a specific resource ('actual click-through rates against industry-average benchmarks by position'), and the intended use case ('Identifies pages or queries with CTR below expected levels'). This clearly distinguishes it from the sibling tools like search_analytics (which reports raw metrics) and find_opportunities (which is broader).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly frames the comparison against industry benchmarks and notes they are 'directional guidance'. It also gives strong guidance on how to use the data: base analysis only on the returned data, report exact numbers, don't speculate, and say if data is insufficient. This is clear usage context with an implied contrast to other analytics tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_sitemapDelete SitemapADestructive
Remove a sitemap from Search Console tracking. This does not prevent Google from crawling URLs discovered from this sitemap.
| Name | Required | Description | Default |
|---|---|---|---|
| siteUrl | No | The site URL. Falls back to GSC_DEFAULT_SITE_URL if not provided. | |
| sitemapUrl | Yes | The full URL of the sitemap to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already signal destructiveHint=true and readOnlyHint=false. The description goes beyond this by adding a non-obvious behavioral nuance: removing the sitemap from tracking does not block crawling of its URLs. This is valuable context that the structured annotations cannot convey. It doesn't mention reversibility, but the destructive annotation already covers the risk profile.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no filler, and the key action is front-loaded. The clarifying second sentence earns its place because it prevents a dangerous misconception about crawling behavior.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity, full schema coverage, and destructive annotation, the description covers the essential operational facts. It could additionally state that the action is irreversible or describe the response, but these are minor gaps for a low-complexity deletion tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both siteUrl and sitemapUrl adequately. The description adds no parameter-level detail beyond what the schema provides, which matches the baseline expectation for full schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Remove') and resource ('a sitemap from Search Console tracking'), and immediately clarifies an important boundary: it does not prevent Google from crawling discovered URLs. This clearly distinguishes the deletion from crawling-related behaviors and sibling tools like submit_sitemap.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes the core usage context clear: use this when you want to stop tracking a sitemap in Search Console. It also provides an explicit exclusion by noting the tool does not stop Google from crawling URLs, which prevents a common misuse. However, it doesn't explicitly name alternatives or state when another sibling would be more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
diagnose_traffic_dropsDiagnose Traffic DropsARead-only
Find pages that lost traffic and diagnose why. Categorizes each drop as: ranking loss (position got worse), CTR collapse (position held but CTR dropped — possible SERP feature changes), or demand decline (search impressions dropped — seasonality or trend shift). Compares recent 7-day window to 28 days prior. IMPORTANT: Base your analysis only on the data returned by this tool. Report exact numbers from the response. Do not speculate about causes the data does not support. If the data is insufficient to answer, say so rather than guessing.
| Name | Required | Description | Default |
|---|---|---|---|
| siteUrl | No | The site URL. Falls back to GSC_DEFAULT_SITE_URL if not provided. | |
| rowLimit | No | Max rows to analyze per period (default: 5000) | |
| searchType | No | ||
| minClicksDrop | No | Minimum click decrease to flag a page (default: 10) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint annotation, the description discloses important behaviors: the window comparison, the categorization logic, and the strict instruction to base analysis only on returned data without speculating. It also instructs the agent to admit when data is insufficient, which is valuable non-obvious behavioral guidance.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is tightly written and front-loads the core purpose before explaining categories and analytical rules. Every sentence adds useful information, including the important anti-speculation guardrail, with no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description provides the analytical framing, categories, time windows, and reporting constraints, which is strong for a read-only diagnostic tool. However, there is no output schema and the description does not explicitly describe the response shape or fields, so an agent must infer what exact numbers will be returned.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 75%, with siteUrl, rowLimit, and minClicksDrop already documented in the schema. The description adds no parameter-specific semantics but does not need to because the schema handles most of it. searchType has enum values but no description, and the tool description does not compensate for that gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Find pages that lost traffic and diagnose why.' It then enumerates concrete drop categories (ranking loss, CTR collapse, demand decline), which clearly distinguishes this diagnostic tool from generic analytics or indexing siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies when to use this tool: when diagnosing traffic drops with a 7-day vs 28-day comparison. It does not explicitly name alternative sibling tools or state when not to use it, but the purpose is specific enough that an agent can infer the correct context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_opportunitiesFind SEO OpportunitiesARead-only
Automatically identify SEO opportunities: quick wins (position 5-20 with high impressions but low CTR), declining content (pages losing traffic), and emerging queries (new or rapidly growing). Compares recent 7-day window to 28 days prior. IMPORTANT: Base your analysis only on the data returned by this tool. Report exact numbers from the response. Do not speculate about causes the data does not support. If the data is insufficient to answer, say so rather than guessing.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | Type of opportunities to find (default: "all") | |
| siteUrl | No | The site URL. Falls back to GSC_DEFAULT_SITE_URL if not provided. | |
| rowLimit | No | Max rows to analyze (default: 5000) | |
| searchType | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate a read-only, non-destructive operation. The description adds meaningful behavioral context: it compares a recent 7-day window to 28 days prior, and it explicitly instructs the agent to rely only on returned data, report exact numbers, and avoid speculation. This goes beyond the structural annotations without contradicting them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the tool's purpose and opportunity categories, then adds the comparison window and usage constraints. It is slightly verbose with the IMPORTANT clause, but every sentence carries operational value and there is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no output schema, the description gives a solid understanding of what the tool does, the data window it uses, and how the agent should handle results. It does not describe the response shape or clarify the searchType parameter, but the agent instructions to avoid speculation partially compensate for the missing output details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema documents three of four parameters with descriptions, so baseline semantic coverage is already solid. The description enriches the 'type' semantics by explaining what each opportunity category means (e.g., positions 5-20 with high impressions but low CTR), but it does not clarify searchType, which has no schema description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: automatically identify SEO opportunities across three named categories (quick wins, declining content, emerging queries). It is specific about the resource and verb, but it does not explicitly differentiate itself from related siblings like diagnose_traffic_drops or content_decay.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool by naming the opportunity types and the 7-day vs 28-day comparison window. However, it does not explicitly state when to prefer this tool over sibling tools such as compare_periods or diagnose_traffic_drops, nor does it give exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_indexing_statusGet Indexing Notification StatusARead-only
Check the status of Indexing API notifications for a URL. Shows the most recent update and removal notifications.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The URL to check notification status for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already define the operation as read-only (readOnlyHint=true) and non-destructive (destructiveHint=false). The description adds a little context by stating what the tool returns (most recent update and removal notifications), but does not disclose other behaviors like empty states, response format, or potential errors. With annotations covering safety, this is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no fluff. The primary action is front-loaded, and the follow-up sentence clarifies the output scope. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter read-only tool with no output schema, the description is complete enough for an agent to select and invoke it correctly. It states what is checked, what the result contains, and the required input is clear from the schema. Nothing essential is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides 100% coverage for the sole parameter, with a description ('The URL to check notification status for'). The tool description simply repeats 'for a URL' without adding value beyond the schema, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Check') and a clear resource ('status of Indexing API notifications for a URL'), and specifies that it shows the most recent update and removal notifications. This clearly differentiates it from siblings like notify_url_update because it's about checking status, not sending notifications.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the usage scenario: after notifications have been sent, an agent can check their status. However, it does not explicitly state when to prefer this tool over alternatives, nor does it mention any exclusions or prerequisite actions. This leaves the guidance at an implied level.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
inspect_urlInspect URLARead-only
Inspect a single URL in Google Search Console. Returns index status, mobile usability, rich results, AMP status, canonical information, and last crawl time. Daily quota: 2,000 inspections. IMPORTANT: Base your analysis only on the data returned by this tool. Report exact numbers from the response. Do not speculate about causes the data does not support. If the data is insufficient to answer, say so rather than guessing.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The URL to inspect | |
| siteUrl | No | The site URL that contains this page. Falls back to GSC_DEFAULT_SITE_URL if not provided. | |
| languageCode | No | Language code for results (e.g., "en-US") |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already carry read-only/non-destructive safety, and the description adds the daily 2,000-inspection quota plus a strong evidence-handling policy (report only returned data, no speculation, admit insufficient data). This goes beyond what annotations provide, though it does not disclose error/response edge cases.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense and well-ordered: purpose, returned data, quota, then an important caveat. It is slightly verbose due to the repeated guidance in the IMPORTANT sentence, but every part is relevant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description compensates by enumerating the returned data fields and adds the quota and non-speculation rules. An agent has enough to call it correctly, though error/empty-response behavior is not covered.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the schema already documents all three parameters including the siteUrl fallback. The description adds no parameter-level meaning beyond the schema, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Inspect') on a specific resource ('a single URL in Google Search Console') and lists concrete returned data (index status, mobile usability, rich results, AMP status, canonical, last crawl time). This clearly distinguishes it from siblings like batch_inspect_urls and search_analytics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description establishes clear scope—single URL inspection and the exact diagnostics returned—so an agent can infer when this tool is appropriate. It does not explicitly name alternatives or state when-not-to-use, though the 'single URL' wording plus the sibling list makes the batch alternative obvious.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_propertiesList PropertiesARead-only
List all Google Search Console properties accessible to the authenticated account. Shows property type (domain vs URL prefix) and permission level.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark this as a read-only, non-destructive operation. The description adds useful behavioral context by clarifying that the listing is scoped to the authenticated account and that the response includes property type and permission level, which is not available from annotations or the empty schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with no filler. The main action and scope are front-loaded, and the added sentence about output fields earns its place by describing what the agent will receive.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, read-only listing tool, the description is sufficient: it names the resource, the scope, and the output contents. There is no output schema, so mentioning property type and permission level helps the agent understand the response shape.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes no parameters, so the baseline is 4. The description gives no parameter details, but none are needed for a zero-parameter tool, and schema coverage is trivially complete.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('List'), a specific resource ('Google Search Console properties'), and a clear scope ('accessible to the authenticated account'). It also states what the result contains (property type and permission level), making it easy to distinguish from sibling tools like list_sitemaps.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended use is clear: call this when you need to see all properties the authenticated account can access. It does not explicitly contrast with alternatives, but no sibling tool is a direct alternative for this listing operation, so the lack of exclusions is acceptable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_sitemapsList SitemapsARead-only
List all sitemaps submitted for a site in Search Console. Shows status, submission date, error/warning counts, and content type details (URLs submitted vs indexed). IMPORTANT: Base your analysis only on the data returned by this tool. Report exact numbers from the response. Do not speculate about causes the data does not support. If the data is insufficient to answer, say so rather than guessing.
| Name | Required | Description | Default |
|---|---|---|---|
| siteUrl | No | The site URL. Falls back to GSC_DEFAULT_SITE_URL if not provided. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare this a read-only operation, so no contradiction exists. The description adds useful behavioral context by enumerating the returned data categories (status, submission date, error/warning counts, URLs submitted vs indexed) and by instructing the agent to avoid speculation and report exact numbers, which meaningfully shapes how the tool output should be used.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the core action. The additional warning sentences are directly valuable for correct use of the tool's output and do not feel redundant or padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one optional parameter, read-only annotations, and no output schema, the description conveys the main return contents and cautions against over-interpreting data. It does not provide a full field-by-field schema of the response, but it covers what an agent needs to call and interpret the tool effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: the single parameter siteUrl is already documented with its fallback behavior. The description does not add any further parameter-level meaning, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly names the action ('List all sitemaps submitted for a site in Search Console') and specifies the resource and scope. It is obvious from the sibling tool names that this is a read/list operation rather than submit or delete, though it does not explicitly differentiate itself from siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool: whenever a listing of submitted sitemaps and their status counts is needed. However, it gives no explicit guidance about when not to use it or when a sibling like submit_sitemap or delete_sitemap would be more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
notify_url_updateNotify URL UpdateA
Submit a URL update or deletion notification to Google via the Indexing API. Note: Officially supported only for pages with JobPosting or BroadcastEvent structured data. Daily quota: 200 notifications.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The URL to notify Google about | |
| type | Yes | Whether the URL was updated or deleted |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes beyond the annotations by disclosing the quota and the structured-data requirement, which are important operational constraints. It also clarifies that 'deletion' here means sending a deletion notification via the API, not destructively modifying local data, which aligns with destructiveHint=false.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core action, and the operational constraints are compactly placed in a note. Every word contributes useful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter tool with full schema coverage, the description is nearly complete: it states the action, supported use cases, and quota. It does not describe the response format or error conditions, but no output schema exists and the input side is fully covered.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already documents both parameters thoroughly with 100% coverage, including the URL format and the enum meanings. The description adds no new parameter-level detail, so the baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Submit') and names the exact resource and API ('URL update or deletion notification via the Indexing API'). It clearly distinguishes this tool from sitemap-submission siblings by focusing on URL-level notifications rather than bulk sitemaps.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear eligibility context: it is 'officially supported only for pages with JobPosting or BroadcastEvent structured data' and mentions a daily quota of 200. It does not explicitly name alternative tools or say when not to use it beyond that constraint, but the restriction is strong.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_analyticsSearch AnalyticsBRead-only
Query Google Search Console performance data. Supports all dimensions (query, page, country, device, searchAppearance, date), all search types (web, discover, googleNews, news, image, video), regex filters, hourly data, and up to 25K rows per request. IMPORTANT: Base your analysis only on the data returned by this tool. Report exact numbers from the response. Do not speculate about causes the data does not support. If the data is insufficient to answer, say so rather than guessing.
| Name | Required | Description | Default |
|---|---|---|---|
| endDate | No | End date in YYYY-MM-DD format (default: 2 days ago) | |
| filters | No | Filters to apply to the query | |
| siteUrl | No | The site URL (e.g., "https://example.com/" or "sc-domain:example.com"). Falls back to GSC_DEFAULT_SITE_URL env var if not provided. | |
| rowLimit | No | Maximum rows to return (default: 1000, max: 25000) | |
| startRow | No | Starting row offset for pagination (default: 0) | |
| dataState | No | Data freshness: "final" (2-3 day delay), "all" (includes fresh data), "hourly_all" (hourly breakdown) | |
| startDate | No | Start date in YYYY-MM-DD format (default: 9 days ago) | |
| dimensions | No | Dimensions to group by (default: ["query"]). Use "hour" for hourly breakdowns (requires dataState "hourly_all", last ~10 days only). | |
| searchType | No | Type of search results (default: "web") | |
| aggregationType | No | How data is aggregated (default: "auto") |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover safety (readOnlyHint=true, destructiveHint=false). The description goes beyond annotations by adding a strong, explicit instruction to base analysis only on returned data, report exact numbers, avoid speculation, and admit insufficient data. This is valuable behavioral context not present in the structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded with the core action. The capability list is dense but relevant, and the IMPORTANT caveat earns its place. It could be slightly more structured, but there is no fluff or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description summarizes capabilities well and the schema covers parameters, but there is no output schema and the description does not explain the response format (e.g., metrics like clicks, impressions, CTR, position). For a data-query tool, this is a meaningful gap, though the 'don't speculate' guidance mitigates some risk.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the structured schema already documents all 10 parameters. The description's mentions of regex filters, hourly data, and 25K rows reinforce capabilities but add no new parameter-level meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description opens with a clear, specific verb and resource: 'Query Google Search Console performance data.' It further clarifies scope with dimensions, search types, filters, and row limits. It does not explicitly contrast with sibling analytics tools like compare_periods or diagnose_traffic_drops, so it stops short of full sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies this tool is for retrieving raw GSC performance data, but it provides no explicit guidance on when to choose it over the many sibling analytics tools. No alternatives, exclusions, or prerequisite conditions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
submit_sitemapSubmit SitemapA
Submit a new sitemap to Google Search Console. The sitemap URL must be accessible and return valid XML.
| Name | Required | Description | Default |
|---|---|---|---|
| siteUrl | No | The site URL. Falls back to GSC_DEFAULT_SITE_URL if not provided. | |
| sitemapUrl | Yes | The full URL of the sitemap to submit |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark this as a non-read-only mutation, so the description does not need to repeat that. It adds one useful behavioral precondition—the URL must be accessible and return valid XML—but it does not disclose error conditions, property verification requirements, or duplicate-handling behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the main action and followed by the key precondition. No filler or repetition of schema/annotation data.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter write action with no output schema, this is nearly complete: the action and the critical input condition are stated. Minor gaps are that it does not mention that the property must be verified in Search Console or describe the success/error response, but these are not blocking for a basic call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema coverage the baseline is 3; the description earns an extra point by constraining sitemapUrl beyond the schema's uri format: it must be accessible and return valid XML. It does not address siteUrl, but that parameter is already documented with its fallback behavior in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'Submit a new sitemap to Google Search Console.' This immediately distinguishes it from read/list siblings such as list_sitemaps and from delete_sitemap, so the agent can disambiguate without examining schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or when-not-to-use guidance is given, and no alternative tool is named. The valid-and-accessible XML precondition offers some context, but the tool's usage is only implied by the verb and resource. An agent is not told to use list_sitemaps for existing entries or delete_sitemap for removal.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
topic_clustersTopic ClustersARead-only
Analyze performance of all pages under a URL path prefix (e.g., "/blog/", "/docs/seo/", "/products/"). Shows aggregate and per-page metrics plus the top queries driving traffic to the cluster. Useful for understanding how entire content sections perform. IMPORTANT: Base your analysis only on the data returned by this tool. Report exact numbers from the response. Do not speculate about causes the data does not support. If the data is insufficient to answer, say so rather than guessing.
| Name | Required | Description | Default |
|---|---|---|---|
| endDate | No | End date in YYYY-MM-DD format (default: 2 days ago) | |
| siteUrl | No | The site URL. Falls back to GSC_DEFAULT_SITE_URL if not provided. | |
| rowLimit | No | Max rows to return (default: 5000) | |
| startDate | No | Start date in YYYY-MM-DD format (default: 9 days ago) | |
| urlPrefix | Yes | URL path prefix to analyze (e.g., "/blog/", "/docs/seo/", "/products/"). All pages under this path will be grouped. | |
| searchType | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, covering the safety profile. The description adds meaningful behavioral context beyond that: the tool returns aggregate/per-page metrics and top queries, and it includes an important instruction about relying only on returned data, reporting exact numbers, and avoiding speculation. This is valuable operational guidance not present in annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core action in the first sentence, followed by output details, use case, and a necessary behavioral warning. It is slightly longer than minimal, but each sentence earns its place; the IMPORTANT instruction is essential for correct use and is not filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given there is no output schema, the description adequately explains what data the tool will return (aggregate and per-page metrics, top queries). It also provides essential analysis constraints. Minor gaps remain: it does not mention the meaning or effect of searchType, nor the default date ranges, though the schema covers those details. The tool is simple enough that the description is sufficiently complete for an agent to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 83%, so the baseline is 3. The description reinforces the meaning of urlPrefix by explaining it in the context of cluster analysis, but it does not add substantial parameter semantics beyond what the schema already provides. Other parameters like endDate, startDate, and searchType are only covered in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Analyze performance') with a specific resource ('all pages under a URL path prefix') and concrete examples ('/blog/'). It clearly indicates the tool outputs aggregate, per-page, and top-query metrics, which differentiates it from more general analytics tools. However, it does not explicitly name sibling tools or contrast itself with them, so it misses the full 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a clear use context: 'Useful for understanding how entire content sections perform.' This tells an agent when the tool is appropriate without ambiguity. It does not explicitly mention when not to use it, nor does it point to alternatives such as search_analytics or compare_periods, so it stops short of full guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
verify_claimVerify ClaimARead-only
Self-check a claim about search performance data before presenting it. Re-queries the Google Search Console API to verify that a specific metric matches the expected value. Use this tool to confirm numbers before stating them in your analysis, especially for claims from earlier in the conversation. IMPORTANT: Base your analysis only on the data returned by this tool. Report exact numbers from the response. Do not speculate about causes the data does not support. If the data is insufficient to answer, say so rather than guessing.
| Name | Required | Description | Default |
|---|---|---|---|
| claim | Yes | The claim to verify (e.g., "homepage gets 500 clicks per week") | |
| metric | Yes | The metric to check | |
| endDate | No | End date in YYYY-MM-DD format | |
| siteUrl | No | The site URL. Falls back to GSC_DEFAULT_SITE_URL if not provided. | |
| startDate | No | Start date in YYYY-MM-DD format | |
| tolerance | No | Acceptable difference as a percentage (default: 5). A value of 5 means the actual value can differ by up to 5% from the expected value. | |
| pageFilter | No | Filter to a specific page URL | |
| queryFilter | No | Filter to a specific query | |
| expectedValue | Yes | The expected value of the metric |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish this is read-only and non-destructive. The description adds valuable behavioral guardrails: base analysis only on returned data, report exact numbers, avoid speculation, and state when data is insufficient. This goes beyond the structured annotations without contradicting them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose and then adds concise behavioral guidance. The IMPORTANT section has some redundancy among its prohibitions, but each sentence still contributes to correct usage.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no output schema, the description compensates by telling the agent to rely only on returned data and to report exact numbers. It does not specify the response shape, but the verification context and parameters are covered well enough for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 9 parameters. The description adds little parameter-specific meaning beyond reinforcing that a metric is checked against an expected value, which the schema also conveys. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: re-querying the Google Search Console API to verify a claim about search performance data. It clearly differentiates this tool from analysis/reporting siblings like search_analytics and compare_periods by framing it as a verification step before presenting numbers.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context for when to use the tool: before presenting claims, especially ones from earlier in the conversation. It does not explicitly name alternatives or state when not to use it, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
17 tool updates
v0.2.0- First observed
batch_inspect_urls - First observed
cannibalization - First observed
compare_periods - First observed
content_decay - First observed
ctr_benchmarks - First observed
delete_sitemap - First observed
diagnose_traffic_drops - First observed
find_opportunities - First observed
get_indexing_status - First observed
inspect_url - First observed
list_properties - First observed
list_sitemaps - First observed
notify_url_update - First observed
search_analytics - First observed
submit_sitemap - First observed
topic_clusters - First observed
verify_claim
TDQS
The core tools are distinct, but there is significant overlap among the analytics and diagnostics tools—search_analytics, compare_periods, find_opportunities, diagnose_traffic_drops, content_decay, and ctr_benchmarks all concern search performance and can point an agent toward different but similar-sounding analyses. Also, get_indexing_status and inspect_url both deal with indexing status, and submit_sitemap and notify_url_update both submit URLs to Google. The descriptions are detailed enough to help, but selection is not always obvious.
Most tools follow a clear verb_noun pattern in snake_case, such as submit_sitemap, list_properties, inspect_url, and verify_claim. A few analysis tools are noun-only names—cannibalization, content_decay, ctr_benchmarks, topic_clusters—which deviates slightly from the pattern but does not create confusion.
With 17 tools, the server is slightly above the typical well-scoped 3-15 range, but the extra tools are justified by the breadth of Google Search Console: sitemaps, URL inspection, indexing API, raw search analytics, and specialized diagnostics. Each tool addresses a distinct workflow, so the count feels purposeful rather than bloated.
The tool surface covers the major GSC workflows well: property discovery, sitemap management, URL inspection, indexing notifications, raw performance queries, and complex SEO analyses. Minor gaps exist around property-level administration such as adding/removing properties or managing users, but these are not core to most agents using a GSC MCP server.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Real SEO data for AI assistants: page audits, Keyword Planner volumes, Search Console history.
Turn Search Console data into SEO actions, content, publishing, indexing, and AI insights.
- VibeSEOOAuthdev.vibeseo
SEO research, audits, backlinks, GSC, and content workflow tools for AI agents.
SEO & marketing toolkit for AI agents: GA4, Search Console, AdSense, GTM, PageSpeed, Trends.
Related MCP Servers
- AlicenseBqualityCmaintenanceConnects Google Search Console to AI assistants, enabling SEO data analysis through natural language conversations.32MIT
- AlicenseNot gradedqualityBmaintenanceConnects Google Search Console to AI assistants, enabling SEO data analysis via natural language conversations.MIT
- AlicenseAqualityCmaintenanceConnects Google Search Console to AI assistants, enabling natural language queries for SEO data, indexing audits, sitemap management, and full site audits.20MIT
- AlicenseAqualityCmaintenanceConnects Google Search Console to AI assistants, enabling natural language analysis of SEO data. Provides read-only tools for properties, search analytics, URL inspection, and sitemaps.15MIT
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/justingluska/gluska-seo-gsc-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server