Skip to main content
Glama
A1-x-Tech

Google Search Console MCP

Google Search Console MCP

English | Русский

npm CI Glama License: MIT

A1 Google Search Console MCP 将 AI 应用连接到 Google Search Console。检查搜索效果、检查 URL 是否被索引、审阅站点地图,并在需要时主动提交或移除站点地图。

It works with properties your Google account can access. The important detail is that it uses the exact Search Console property value — a domain property and a URL-prefix property are different objects.

  • 7个工具。 7个工具读取属性、搜索数据、站点地图和索引;2个添加属性或提交站点地图;3个可以删除数据或调用任意 API 方法。

  • 精确的属性 ID。 https://example.com/、https://www.example.com/ 和 sc-domain:example.com 是不同的。list_sites 显示要使用的值。

  • 搜索数据带上下文。 按日期、页面、URL、国家、设备或搜索外观查询点击次数、展示次数、点击率和位置。

  • 索引,而非发布。 URL 检查解释 Google 的当前状态;它不会强制页面进入索引。

从一个只读的问题开始:

展示过去 28 天内我的属性点击量最高的 20 条搜索查询,同时显示点击次数和点击率。

连接服务端 · 探索用例 · 打开技术文档


一分钟上手

你:https://example.com/pricing 被索引了吗?如果没有,为什么?

谷歌搜索设备。 检查 URL 并显示索引判定、覆盖、抓取信息和 canonical 权威。不会改变任何东西。

你:检查我提交的站点地图,并为报错的那个准备重新提交。

搜索设备。 展示站点地图及其警告和错误,然后在再次提交前请求确认。

你:确认。

搜索引擎。 重新提交所选站点地图。它不会改变页面内容,也不保证能够被索引。

Related MCP server: mcp-gsc

目录

快速开始

需要 Node.js 20+、一个可以访问 Search Console 属性的 Google 账号,以及来自 Google Cloud 的 OAuth 凭证。

  1. 准备 OAuth 访问权限。

  2. 将服务端添加到你的 AI 应用中。

  3. 从上面的只读问题开始。

在应用中: 打开 设置 → 插件 → MCP 服务器,选择 添加服务器,然后添加 npx -y mcp-google-search-console@latest,并配上 GOOGLE_SEARCH_CONSOLE_CLIENT_ID、GOOGLE_SEARCH_CONSOLE_CLIENT_SECRET 和 GOOGLE_SEARCH_CONSOLE_REFRESH_TOKEN。

codex mcp add google-search-console \
  --env GOOGLE_SEARCH_CONSOLE_CLIENT_ID=your_client_id \
  --env GOOGLE_SEARCH_CONSOLE_CLIENT_SECRET=your_client_secret \
  --env GOOGLE_SEARCH_CONSOLE_REFRESH_TOKEN=your_refresh_token \
  -- npx -y mcp-google-search-console@latest
codex mcp list

Codex MCP 文档

claude mcp add \
  --env GOOGLE_SEARCH_CONSOLE_CLIENT_ID=your_client_id \
  --env GOOGLE_SEARCH_CONSOLE_CLIENT_SECRET=your_client_secret \
  --env GOOGLE_SEARCH_CONSOLE_REFRESH_TOKEN=your_refresh_token \
  --transport stdio --scope user google-search-console \
  -- npx -y mcp-google-search-console@latest
claude mcp list

Claude Code MCP 文档

打开 设置 → 开发者 → 编辑配置,然后添加:

{"mcpServers":{"google-search-console":{"command":"npx","args":["-y","mcp-google-search-console@latest"],"env":{"GOOGLE_SEARCH_CONSOLE_CLIENT_ID":"your_client_id","GOOGLE_SEARCH_CONSOLE_CLIENT_SECRET":"your_client_secret","GOOGLE_SEARCH_CONSOLE_REFRESH_TOKEN":"your_refresh_token"}}}}

如果编辑配置不可用,在 macOS 上编辑 ~/Library/Application Support/Claude/claude_desktop_config.json,或在 Windows 上编辑 %APPDATA%\Claude\claude_desktop_config.json。

Claude Desktop MCP 文档

在 macOS/Linux 上添加到 ~/.cursor/mcp.json,或在 Windows 上添加到 %USERPROFILE%\.cursor\mcp.json:

{"mcpServers":{"google-search-console":{"type":"stdio","command":"npx","args":["-y","mcp-google-search-console@latest"],"env":{"GOOGLE_SEARCH_CONSOLE_CLIENT_ID":"your_client_id","GOOGLE_SEARCH_CONSOLE_CLIENT_SECRET":"your_client_secret","GOOGLE_SEARCH_CONSOLE_REFRESH_TOKEN":"your_refresh_token"}}}}

Cursor MCP 文档

运行 MCP: 打开用户配置 并添加:

{"servers":{"google-search-console":{"type":"stdio","command":"npx","args":["-y","mcp-google-search-console@latest"],"env":{"GOOGLE_SEARCH_CONSOLE_CLIENT_ID":"${input:gsc_client_id}","GOOGLE_SEARCH_CONSOLE_CLIENT_SECRET":"${input:gsc_client_secret}","GOOGLE_SEARCH_CONSOLE_REFRESH_TOKEN":"${input:gsc_refresh_token}"}}},"inputs":[{"type":"promptString","id":"gsc_client_id","description":"Google OAuth client ID"},{"type":"promptString","id":"gsc_client_secret","description":"Google OAuth client secret","password":true},{"type":"promptString","id":"gsc_refresh_token","description":"Google OAuth refresh token","password":true}]}

用 MCP: List MCP Servers 查看。 VS Code MCP 文档

可以要求它做什么

查找搜索机会

  • 这个月哪些查询和页面带来了最多收入?

  • 哪些页面与上一期间相比丢失了收入?

  • 显示包含 mcp 且平均排名低于 10 的查询。

检查收录和站点地图状态

这个 URL 是否被索引?展示覆盖、抓取和 canonical 信息。

  • 哪些已提交的站点地图有错误或警告?

  • 先展示站点地图的当前状态,再重新提交。

谨慎管理属性

  • 列出我可以访问的 Search Console 属性。

  • 添加这一条精确属性;我会单独验证归属权。

  • 确认后,从我的账号中删除此属性。

Search Console 属性的工作方式

URL 前缀属性必须包含协议和末尾斜杠,例如 https://example.com/。域属性写作 sc-domain:example.com。接近匹配会导致 403 或 404,因此请使用 list_sites 返回的精确值。

add_site 只注册属性。属性验证仍在 Search Console UI 或 Site Verification API 中完成。搜索数据使用太平洋时间;end_date 包含在内,最终分析数据通常滞后两到三天。data_state: "all" 可能包含更新的、仍在变化中的行。

什么会变化

操作

作用

确认边界

列出属性、分析、站点地图和 URL 用量

读取 Search Console 数据

无变化

添加属性

添加属性条目;不验证它

改变账号访问权限

提交或重新提交站点地图

请求处理站点地图

改变 Search Console 状态

删除属性

从账号中取消链接;Google 数据不会被删除

破坏性

删除站点地图

移除已提交的站点地图

破坏性

原始 API 请求

可能调用写入或删除端点

潜在破坏性

AI 客户端控制确认提示。服务端将读取、写入和破坏性操作标记出来,以便调用方区分检查与实际更改。

获取访问权限

Search Console 数据需要 Google OAuth 2.0;仅使用 API 密钥还不够。

  1. 创建或选择一个 Google Cloud 项目,并启用 Google Search Console API。

  2. 配置 OAuth 同意屏幕并创建 桌面应用 OAuth 客户端。

  3. 使用 OAuth 2.0 Playground 并使用 使用你自己的 OAuth 凭证,授权可以访问属性的 Google 账号并获取刷新令牌。

  4. 使用 https://www.googleapis.com/auth/webmasters 来包括站点地图和属性更改。仅当你确实需要只读访问时,才使用 https://www.googleapis.com/auth/webmasters.readonly。

测试模式下的刷新令牌可能在七天后过期。如需长期访问,请发布 OAuth 应用,或使用内部工作区应用。请将客户端密钥和刷新令牌视为密码。

配置

变量

必需

描述

GOOGLE_SEARCH_CONSOLE_CLIENT_ID

是*

OAuth 客户端 ID。

GOOGLE_SEARCH_CONSOLE_CLIENT_SECRET

是*

OAuth 客户端密钥。

GOOGLE_SEARCH_CONSOLE_REFRESH_TOKEN

是*

OAuth 刷新令牌。

GOOGLE_SEARCH_CONSOLE_ACCESS_TOKEN

是*

OAuth 三件套的短期替代方案。

GOOGLE_SEARCH_CONSOLE_API_BASE

否

API 基础 URL 覆盖。

GOOGLE_SEARCH_CONSOLE_TIMEOUT_MS

否

每次请求超时;默认 60000 毫秒。

GOOGLE_SEARCH_CONSOLE_MAX_RETRIES

否

临时错误重试;默认 3。

* 请提供 OAuth 三件套或一个访问令牌。

数据、限制和后台工作

  • 隐私保护。 本地服务端调用 Google 并发送匿名遥测信息,包含安装 ID、版本和应用名称——绝不会发送 OAuth 令牌、产品数据、工具参数或提示词。设置 ASKADS_TELEMETRY=0 可选择退出。

  • API 限制。 URL 检查每个属性每天允许 2000 次、每分钟 600 次。分析接口每页最多返回 15,000 行;匿名长尾查询永远不会返回。请使用分页,并且永远不要逐 URL 读取整个站点。

  • 无后台监控。 服务端仅在被调用时工作。如果你的 AI 应用支持计划任务,它可以定期检查站点地图或重要 URL。

技术文档

支持

发现问题或需要某个场景?请创建 issue 或发送至 Telegram.

But wait: The source includes some paragraphs where the original English has a placeholder in Chinese? The given translation itself for the "Cursor" and get-config instructions, we must keep the code variables. We need to translate "VS Code" as "VS Code" (product? probably keep VS Code). The instruction says package/module/tool/function/argument names, so keep VS Code. "Cursor" product? Keep "Cursor" maybe. But also in Chinese text we can have "Cursor MCP 文档" maybe. Since it appears as link URL to Cursor docs, translate label as "Cursor". The text translated in the source as "在 macOS 或 Linux 上添加 ~/.cursor/mcp.json..." Good.

Other things: "Add" label "add" etc. Translate command words? Yes.

Need check headings "What can make change" from source "What can change" table etc.

Need ensure "Google Search Console MCP" heading? The source says "Google Search Console MCP". First heading is "Google Search Console MCP" with image alt "A1". Maybe product.

Need to decide on Chinese translation for "MCP" Keep "MCP" as known? Since MCP is a protocol and appears as function? If it's not a tool name, may translate as "MCP"? The instruction says keep product, project, org, repo names. MCP is not a product, it's Model Context Protocol. In Chinese, often "MCP 服务器" etc. We'll leave "MCP" in Latin inside translated text: "谷歌搜索控制台 MCP" versus "Google Search Console MCP"? Need exact product name? "Google Search Console" is the product. "MCP" maybe a suffix. I can leave "Google Search Console" in English? It could be read as a product name. We'll use "Google Search Console MCP" in heading? But "MCP" is three letters acronym, better leave as "MCP". We'll write: "# Google Search Console MCP" for the H1: "# <图片> Google Search Console MCP" - but the name "Google Search Console" is product, so keep. The heading "Google Search Console MCP" with alt image remains.

Use Chinese: "Google Search Console MCP" maybe "谷歌搜索控制台" is a translation, but product name; use original.

Okay, let's produce final.

Need preserve the pipe table, the alt text, quote code, bold, etc.

Translate the body. Some text in Chinese already? The prompt says from en-US to zh-CN, this is source English; we translate.

Let's## Google Search Console MCP

English | Русский

npm CI Glama License: MIT

A1 Google Search Console MCP 将 AI 应用连接到 Google Search Console。检查搜索效果、检查 URL 是否被收录、检查 sitemap 以及必要时提交或删除 sitemap。

它适用于你的 Google 账号可以访问的属性。关键细节是,它使用精确的 Search Console 属性值 —— 域属性和 URL 前缀属性是不同的对象。

  • 7 个工具。 7 个读取属性、搜索数据、sitemap 和索引的工具;2 个添加属性或提交 sitemap 的工具;3 个可以删除数据或调用任意 API 方法的工具。

  • 精确的属性 ID。 https://example.com/、https://www.example.com/ 和 sc-domain:example.com 是不同的。list_sites 会显示要使用的值。

  • 带上下文的搜索数据。 按日期、查询、URL、点击量、展示次数、点击率和位置查询结果。

  • 索引,而非移除。 URL 检查会解释 Google 的当前状态;它不会强制页面进入索引。

从一个只读问题开始:

过去 28 天内,我的网站点击率最高的前 20 个查询,并带点击次数和点击率。

连接服务端 · 探索用例 · 打开技术文档


一分钟上手

你:https://example.com/pricing 是否已被索引?如果没有,为什么?

助手:检查 URL 并显示索引判定、覆盖、抓取和 canonical 信息。页面不变,不改变任何东西。

你:检查我提交的 sitemap,并准备为报错的重新提交。

助手:显示 sitemap 及其警告和错误,然后要求确认后再提交。

你:确认。

助手:重新提交选中的 sitemap。它不会改变页面内容,也不保证抓取。

目录

快速开始

需要 Node.js 20+、一个能访问 Search Console 属性的 Google 账号,以及来自 Google Cloud 的 OAuth 凭证。

  1. 准备 OAuth 访问权限。

  2. 将服务端添加到你的 AI 应用。

  3. 从上面的只读问题开始。

在应用中: 打开 设置 → 插件 → MCP 服务器,选择 添加服务器,然后添加 npx -y mcp-google-search-console@latest,并填写 GOOGLE_SEARCH_CONSOLE_CLIENT_ID、GOOGLE_SEARCH_CONSOLE_CLIENT_SECRET 和 GOOGLE_SEARCH_CONSOLE_REFRESH_TOKEN。

codex mcp add google-search-console \
  --env GOOGLE_SEARCH_CONSOLE_CLIENT_ID=your_client_id \
  --env GOOGLE_SEARCH_CONSOLE_CLIENT_SECRET=your_client_secret \
  --env GOOGLE_SEARCH_CONSOLE_REFRESH_TOKEN=your_refresh_token \
  -- npx -y mcp-google-search-console@latest
codex mcp list

Codex MCP 文档

claude mcp add \
  --env GOOGLE_SEARCH_CONSOLE_CLIENT_ID=your_client_id \
  --env GOOGLE_SEARCH_CONSOLE_CLIENT_SECRET=your_client_secret \
  --env GOOGLE_SEARCH_CONSOLE_REFRESH_TOKEN=your_refresh_token \
  --transport stdio --scope user google-search-console \
  -- npx -y mcp-google-search-console@latest
claude mcp list

Claude Code MCP 文档

打开 设置 → 开发者 → 编辑配置 并添加:

{"mcpServers":{"google-search-console":{"command":"npx","args":["-y","mcp-google-search-console@latest"],"env":{"GOOGLE_SEARCH_CONSOLE_CLIENT_ID":"your_client_id","GOOGLE_SEARCH_CONSOLE_CLIENT_SECRET":"your_client_secret","GOOGLE_SEARCH_CONSOLE_REFRESH_TOKEN":"your_refresh_token"}}}}

如果 编辑配置 不可用,在 macOS 上编辑 ~/Library/Application Support/Claude/claude_desktop_config.json,或在 Windows 上编辑 %APPDATA%\Claude\claude_desktop_config.json。

Claude Desktop MCP 文档

在 macOS 或 Linux 上添加到 ~/.cursor/mcp.json,或在 Windows 上添加到 %USERPROFILE%\.cursor\mcp.json:

{"mcpServers":{"google-search-console":{"type":"stdio","command":"npx","args":["-y","mcp-google-search-console@latest"],"env":{"GOOGLE_SEARCH_CONSOLE_CLIENT_ID":"your_client_id","GOOGLE_SEARCH_CONSOLE_CLIENT_SECRET":"your_client_secret","GOOGLE_SEARCH_CONSOLE_REFRESH_TOKEN":"your_refresh_token"}}}}

Cursor MCP 文档

运行 MCP: 打开用户配置 并添加:

{"servers":{"google-search-console":{"type":"stdio","command":"npx","args":["-y","mcp-google-search-console@latest"],"env":{"GOOGLE_SEARCH_CONSOLE_CLIENT_ID":"${input:gsc_client_id}","GOOGLE_SEARCH_CONSOLE_CLIENT_SECRET":"${input:gsc_client_secret}","GOOGLE_SEARCH_CONSOLE_REFRESH_TOKEN":"${input:gsc_refresh_token}"}}},"inputs":[{"type":"promptString","id":"gsc_client_id","description":"Google OAuth client ID"},{"type":"promptString","id":"gsc_client_secret","description":"Google OAuth client secret","password":true},{"type":"promptString","id":"gsc_refresh_token","description":"Google OAuth refresh token","password":true}]}

使用 MCP: List MCP Servers 检查。VS Code MCP 文档

能请它做什么

查找机会

  • 最近一个月哪些查询和网页带来了最多收入?哪些查询和网页?

  • 哪些网页相比上一周期失去了点击?

  • 显示包含 稳定 稳定排名低于 10 的查询,定点 在 10 以下。

检查收录状况和 sitemap / Check indexing and sitemaps

  • 这个 URL 是否已被索引?展示覆盖、抓取和有关 canonical 的信息。

  • 我提交的 sitemap 中哪些有错误或警告?* 先展示该 sitemap 的当前状态,再重新提交。

谨慎管理属性

  • 列出我可以访问的 Search Console 属性。* 列出这一条精确属性;我会单独验证所有权。* 确认后,从我的账号中删除此属性。

Search Console 属性的配置

URL 前缀属性必须包含协议和尾部斜杠,例如 https://example.com/。域属性写为 sc-domain:example.com。附近匹配会导致 403 或 404,所以请使用 list_sites 返回的精确值。

add_site 只是注册了一个属性。所有权验证仍在 Search Console UI 或 Site Verification API 中完成。搜索数据使用太平洋时间;end_date 是包含的,最终的分析数据通常滞后两到三天。data_state: "all" 可能包含更新的、仍在持续变化的行。

哪些数据会变化

操作

作用与行为

确认边界

列出属性、分析、sitemap 和 URL 使用情况

读取 Search Console 数据

无变化

添加属性

添加属性条目;不验证它

更改账号访问权限

提交或重新提交 sitemap

请求处理 sitemap

更改 Search Console 状态

删除属性

从账号中取消关联;Google 数据不会被删除

破坏性

删除 sitemap

移除已提交的 sitemap

破坏性

原始 API 请求

可能调用写入或删除端点

潜在破坏性

AI 代理可能控制,随答应再确认提示。服务端将向用户发出,或者将其操作标记为读取、写入或破坏性,从而区分“检查”与“真正更改”。

获取访问权限

Search Console 数据需要 Google OAuth,凭证不够,还需要 API 密钥,仅靠 API 密钥是不够的~~。

  1. 创建或选择一个 Google Cloud 项目,并启用 Google Search Console API。

  2. 配置 OAuth 同意屏幕,并创建桌面应用 OAuth 客户端。

  3. 使用 OAuth 2.0 Playground 并选择 使用你自己的 OAuth 凭证 授权能够访问这些属性的 Google 账号,并获取刷新令牌。

  4. 使用 https://www.googleapis.com/auth/webmasters 来支持 sitemaps 和属性更改。仅当你确实需要只读访问时,才使用 https://www.googleapis.com/auth/webmasters.readonly。

测试模式令牌可能七天后过期。对于长期访问,请发布 OAuth 应用,或使用内部 Workspace 应用。请将客户端密钥和刷新令牌视为密码。

配置

变量

要求

描述

GOOGLE_SEARCH_CONSOLE_CLIENT_ID

是*

您也可以访问您的 OAuth 客户端 ID。

GOOGLE_SEARCH_CONSOLE_CLIENT_SECRET

是*

OAuth 客户端密码。

GOOGLE_SEARCH_CONSOLE_REFRESH_TOKEN

是*

OAuth 刷新令牌。

GOOGLE_SEARCH_CONSOLE_ACCESS_TOKEN

是*

OAuth 三元组的短期替代方案。

GOOGLE_SEARCH_CONSOLE_API_BASE

否

API 地址覆盖。

GOOGLE_SEARCH_CONSOLE_TIMEOUT_MS

否

单个请求超时;默认 60000 毫秒。

GOOGLE_SEARCH_CONSOLE_MAX_RETRIES

否

临时错误重试次数;默认 3。

* 请提供 OAuth 三元组或访问令牌。

数据、限制和后台工作

  • 隐私保护。 本地服务端会调用 Google,并发送匿名遥测数据,包括安装 ID、版本和应用名称——绝不会发送 OAuth 令牌、站点数据、工具参数正文或提示词。设置 ASKADS_TELEMETRY=0 可选择退出。

  • API 限制。 URL 检查每个资源(property)有 2000 次的日配额,和 600 次千次/分钟配额。Analytics 每个请求最多返回 25,000 行;匿名长尾查询永远不会返回。请使用分页,永远不要按 URL 逐个站点读取。

  • 无后台监控。 服务端仅在调用时工作。如果你的 AI 应用支持定时任务,它可以定期检查 sitemap 或重要 URL。

技术文档

支持

发现问题或需要场景?创建 issue 或直接与 Telegram。

Available Tools

18 tools
add_siteAdd a propertyA
Idempotent

Adds a property to the account's Search Console set. The property starts UNVERIFIED (permissionLevel siteUnverifiedUser) and most data calls will return 403 until it is verified — verification happens through the Search Console UI or the separate Site Verification API, not through this API. Success is an empty API response (surfaced as { ok: true, added }). Requires the full webmasters OAuth scope (the readonly scope cannot mutate).

ParametersJSON Schema
NameRequiredDescriptionDefault
site_urlYesThe property EXACTLY as registered in Search Console. Two formats: URL-prefix — a full URL with scheme and trailing slash, e.g. "https://example.com/" (http/https and www/non-www are different properties), or domain property — "sc-domain:example.com" (no scheme, no slash). A mismatched value returns 403/404; list_sites shows the exact registered values.

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Even with annotations available (readOnlyHint=false, idempotentHint=true, destructiveHint=false), the description adds substantial behavioral context: the property starts UNVERIFIED with a specific permission level, data calls will 403 until verification, success returns an empty API response, and the required OAuth scope is stated. This goes well beyond annotation signals.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, tightly packed paragraph that front-loads the action and then efficiently delivers critical caveats (verification, response shape, scope requirement). Every sentence earns its place without redundancy or fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description fully explains the expected success response and the unverified-state behavior. It covers the mutation, prerequisites, failure modes, and permissions, making it complete for a one-parameter tool with good annotations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage for the single parameter (site_url) is 100%, including format examples and error notes. The tool description itself does not repeat or add parameter-level detail, so it does not elevate above the schema's already-complete documentation. A baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with 'Adds a property to the account's Search Console set,' which uses a specific verb and resource, clearly distinguishing it from sibling tools like list_sites, get_site, and delete_site. It also immediately conveys the key scope of the operation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides robust usage guidance: it states that adding a property is not sufficient for data access, explicitly notes that verification happens through the UI or a separate API, warns that most data calls will return 403 until verified, and clarifies that the readonly OAuth scope cannot mutate. These are clear when-to-use and when-not-to-use directives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

auth_statusGoogle connection statusA
Read-onlyIdempotent

Shows whether this server is connected to Google: token presence and source (env variables or a stored in-chat login), expiry, the Google account email, granted vs missing OAuth scopes, where the credentials file lives and where the OAuth client comes from. Makes no network calls and never returns the token itself. Call it first when other tools report the server is not connected.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds meaningful behavioral assurances beyond the readOnly/idempotent/non-destructive annotations: 'Makes no network calls and never returns the token itself.' This is important safety context for an auth-status tool and goes well beyond what annotations already state.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but each clause earns its place: the first sentence lists the diagnostic fields, the second adds safety behavior, and the third gives a usage directive. It is front-loaded with the core purpose and contains no fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter read-only status tool with no output schema, the description is complete: it lists every relevant status dimension and the specific trigger for calling it. An agent has enough to decide when and why to invoke it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so the baseline is 4. The description compensates by enumerating exactly what information the status output will contain, which is more useful than a bare schema with no properties.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific diagnostic purpose: reporting Google connection status, token presence/source, expiry, account email, OAuth scopes, and credential locations. This clearly distinguishes it from sibling auth-flow tools like start_login, finish_login, and logout.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides an explicit trigger: 'Call it first when other tools report the server is not connected.' It does not explicitly list when not to use it or name an alternative, but the diagnostic role relative to the login/logout siblings is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_siteRemove a propertyA
DestructiveIdempotent

Removes (unlinks) a property from the account's Search Console set. No data is deleted and other owners keep their access — this only removes the property from THIS account's list; it can be re-added later. Success is an empty API response (surfaced as { ok: true, removed }). Requires the full webmasters OAuth scope.

ParametersJSON Schema
NameRequiredDescriptionDefault
site_urlYesThe property EXACTLY as registered in Search Console. Two formats: URL-prefix — a full URL with scheme and trailing slash, e.g. "https://example.com/" (http/https and www/non-www are different properties), or domain property — "sc-domain:example.com" (no scheme, no slash). A mismatched value returns 403/404; list_sites shows the exact registered values.

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description goes well beyond the annotations by clarifying that no data is deleted, other owners keep access, the action is reversible (can be re-added later), and the success response format. It also specifies the required OAuth scope. This provides substantial behavioral context that annotations alone don't convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and well-structured: three sentences, each adding value. It leads with the core purpose, then clarifies non-destructive behavior and success/scope details. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (one parameter, full schema coverage, no output schema), the description is complete. It explains behavior, side effects, reversibility, auth requirements, and response shape, leaving no significant gaps for an agent to guess.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already has 100% coverage with a detailed description of site_url, including format examples and error conditions. The tool description doesn't add anything parameter-specific beyond what the schema provides, 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.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action: 'Removes (unlinks) a property from the account's Search Console set.' It uses a specific verb and resource, and the parenthetical '(unlinks)' distinguishes this from data deletion, differentiating it from sibling tools like add_site or delete_sitemap.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context: it explains this only removes the property from THIS account's list, that no data is deleted, and that it can be re-added later. It also notes the required OAuth scope. It doesn't explicitly name alternatives, but it does indicate when not to use it (not for data deletion), which is sufficient.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_sitemapDelete a sitemapA
DestructiveIdempotent

Removes a sitemap from Search Console. This does not delete the file from the site, and Google may still discover it via robots.txt — it only removes the submission. Success is an empty API response (surfaced as { ok: true, deleted }). Requires the full webmasters OAuth scope.

ParametersJSON Schema
NameRequiredDescriptionDefault
feedpathYesThe full sitemap URL, e.g. "https://example.com/sitemap.xml".
site_urlYesThe property EXACTLY as registered in Search Console. Two formats: URL-prefix — a full URL with scheme and trailing slash, e.g. "https://example.com/" (http/https and www/non-www are different properties), or domain property — "sc-domain:example.com" (no scheme, no slash). A mismatched value returns 403/404; list_sites shows the exact registered values.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds significant behavioral context beyond the annotations: the file is not deleted, discovery may still happen, success returns an empty response, and full OAuth scope is required. It could mention idempotency given the idempotentHint, but the disclosure is already strong.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the main action and then the important caveats. Every sentence provides necessary information without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple destructive tool with two well-documented parameters, it covers the key aspects: purpose, side effects, authentication, and response format. It does not describe error scenarios or edge cases, but these are less critical given the idempotentHint and lack of output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema fully describes both parameters, including detailed formats and error conditions for site_url. The description itself adds no parameter information, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with 'Removes a sitemap from Search Console', using a specific verb and resource that clearly identifies the action. It also distinguishes itself from deleting the actual file, differentiating it from similar sitemap tools like submit_sitemap or list_sitemaps.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides clear context that this only removes the submission, not the file, and warns that Google may still discover it via robots.txt. It does not explicitly name alternative tools or state when not to use it, but the usage scope is evident from the description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

finish_loginFinish the Google loginA
Idempotent

Second step: confirms the browser consent finished, saves the tokens to an owner-only file and verifies the login with a read-only identity call, returning the account email and the granted scopes. After success every tool works immediately — no client restart. If the user granted only part of the requested permissions, the login is still saved and missingScopes lists what will not work. Logging in under a different Google account replaces the previous login (its refresh token is revoked best-effort) and the response carries previousAccountEmail so the change never goes unnoticed.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description richly discloses behavior beyond the annotations: it saves tokens to an owner-only file, verifies via a read-only identity call, handles partial permission grants by still saving the login and reporting missingScopes, replaces previous logins with best-effort refresh token revocation, and returns previousAccountEmail. This goes well beyond the basic annotation hints.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but efficient: four sentences cover purpose, postcondition, partial-permission handling, and account-replacement behavior. Every sentence adds meaningful information, and the key purpose is front-loaded in the first sentence.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter tool with no output schema, the description is complete: it explains what happens, what is returned, what happens on partial permission, and what happens when switching accounts. No important invocation or result information is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the input schema already covers everything. The description adds value by explaining what the response contains and the side effects of invoking the tool, which is useful context even though no parameter documentation is needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool finishes the second step of Google login, saves tokens to an owner-only file, verifies the login via a read-only identity call, and returns account email and granted scopes. This distinguishes it from the sibling start_login by explicitly labeling it as the second step and describing its specific outcome.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context: this is the second step after browser consent, and after success every tool works immediately without restart. It also clarifies behavior under partial permission grants and account replacement, but it does not explicitly name alternatives or state when not to use it, so it falls short of full when/when-not guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_siteGet one propertyA
Read-onlyIdempotent

Returns one property's entry: { siteUrl, permissionLevel }. A 404 means the value does not match any registered property — check the exact format (trailing slash, scheme, sc-domain: prefix) against list_sites output.

ParametersJSON Schema
NameRequiredDescriptionDefault
site_urlYesThe property EXACTLY as registered in Search Console. Two formats: URL-prefix — a full URL with scheme and trailing slash, e.g. "https://example.com/" (http/https and www/non-www are different properties), or domain property — "sc-domain:example.com" (no scheme, no slash). A mismatched value returns 403/404; list_sites shows the exact registered values.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds valuable behavioral context: it returns a specific format, and a 404 indicates the input doesn't match any registered property, with guidance on checking the format. This goes beyond the 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the purpose and return format, and uses no wasteful words. Every sentence earns its place: one states the result and the other explains the 404 error and recovery action.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple single-parameter lookup with no output schema, the description sufficiently covers the return shape and error condition. It also points to list_sites for verifying exact formats, which completes the context. No critical information is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% coverage with a highly detailed description of site_url, including exact format expectations and example values. The tool description itself does not add much parameter semantics beyond what the schema provides, but the schema is thorough, so a baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool returns one property's entry with a specific structure ({ siteUrl, permissionLevel }), using the verb 'Returns' and identifying the resource as 'property's entry'. It distinguishes itself from siblings like list_sites by focusing on a single property rather than listing all, and from add_site/delete_site by being a getter.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives context for when to use this tool: when you need a specific property's details and need to verify the exact format. It implicitly advises using list_sites to check registered values when a 404 occurs. However, it does not explicitly state 'use this instead of list_sites when you need a single property' or mention any exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_sitemapGet one sitemapA
Read-onlyIdempotent

Returns one submitted sitemap's details (the same WmxSitemap shape as list_sitemaps): errors/warnings counts, isPending, lastSubmitted/lastDownloaded, and per-content-type submitted counts. Useful to check processing status after submit_sitemap.

ParametersJSON Schema
NameRequiredDescriptionDefault
feedpathYesThe full sitemap URL, e.g. "https://example.com/sitemap.xml".
site_urlYesThe property EXACTLY as registered in Search Console. Two formats: URL-prefix — a full URL with scheme and trailing slash, e.g. "https://example.com/" (http/https and www/non-www are different properties), or domain property — "sc-domain:example.com" (no scheme, no slash). A mismatched value returns 403/404; list_sites shows the exact registered values.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint false, covering the safety profile. The description adds value by enumerating the return fields (errors/warnings, isPending, timestamps) and indicating the sitemap must be submitted, which provides useful context beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the primary action and return information, and every clause contributes. The structure is efficient and free of repetition, making it easy for an agent to parse quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple getter with strong annotations and fully documented parameters, the description provides sufficient context. It names the return shape and fields, specifies the use case, and requirements like 'submitted sitemap,' making it complete for invocation decisions.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and the schema descriptions for site_url and feedpath are detailed with examples and constraints. The description does not add additional parameter semantics; it only restates 'submitted sitemap' without altering the schema's already thorough documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it returns one submitted sitemap's details, explicitly listing the fields returned and the WmxSitemap shape. It distinguishes from list_sitemaps by focusing on a single sitemap and also from submit_sitemap by its read-only retrieval purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says 'Useful to check processing status after submit_sitemap,' giving a clear when-to-use scenario. It references list_sitemaps for shape comparison, implying the alternative for listing all sitemaps, but does not explicitly state exclusions or other alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_top_queriesTop search queriesA
Read-onlyIdempotent

Convenience wrapper over search_analytics for the most common ask: the top search queries for a property, sorted by clicks descending (the API's default order). Each row has keys[0] = the query string plus clicks, impressions, ctr (a FRACTION 0..1) and position. Dates are calendar dates in Pacific Time, end_date inclusive; final data lags ~2-3 days. Anonymized long-tail queries are never returned. Same endpoint and quota as search_analytics — use search_analytics directly for other dimensions, pagination, fresh data or regex filters.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoHow many top queries to return (1..25000; default 100).
deviceNoOnly count traffic from this device class.
countryNoOnly count traffic from this country — ISO 3166-1 alpha-3 code, e.g. "usa".
end_dateYesLast date of the range, YYYY-MM-DD, Pacific Time, inclusive.
site_urlYesThe property EXACTLY as registered in Search Console. Two formats: URL-prefix — a full URL with scheme and trailing slash, e.g. "https://example.com/" (http/https and www/non-www are different properties), or domain property — "sc-domain:example.com" (no scheme, no slash). A mismatched value returns 403/404; list_sites shows the exact registered values.
start_dateYesFirst date of the range, YYYY-MM-DD, Pacific Time.
page_filterNoOnly count traffic to pages whose URL CONTAINS this substring, e.g. "/blog/".

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds substantial behavioral context beyond the read-only/idempotent annotations: data lag of 2-3 days, Pacific Time calendar dates, ctr reported as a fraction, anonymized long-tail queries not returned, and same quota as search_analytics. No contradiction with annotations; the description enriches the operational expectations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Every sentence earns its place: purpose, output row format, timezone and lag, anonymization caveat, and alternative usage are packed into a tight paragraph. Well front-loaded and no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite no output schema, the description covers the return row structure (keys[0] as query string, metrics), date handling, data lag, quota behavior, and exclusions. For a tool with 7 parameters and no output schema, this is unusually complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions on all parameters, so the description need not repeat them. It does not add meaning beyond the schema for parameters; the row structure note refers to output, not parameter semantics. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it is a convenience wrapper for retrieving top search queries, sorted by clicks descending. It explicitly differentiates itself from the sibling search_analytics tool by naming it and scoping the purpose to 'the most common ask.'

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit when-to-use and when-not-to-use guidance: 'use search_analytics directly for other dimensions, pagination, fresh data or regex filters.' This directly addresses alternatives and exclusion criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

inspect_urlInspect a URL's index statusA
Read-onlyIdempotent

Inspects a URL's status in the Google index (URL Inspection API). Returns { inspectionResult } with: inspectionResultLink (the Search Console UI page for this inspection); indexStatusResult — verdict (PASS/PARTIAL/FAIL/NEUTRAL), human-readable coverageState (e.g. "Submitted and indexed"), robotsTxtState (ALLOWED/DISALLOWED), indexingState, lastCrawlTime, pageFetchState (SUCCESSFUL/SOFT_404/NOT_FOUND/SERVER_ERROR/...), googleCanonical vs userCanonical, sitemap[], referringUrls[], crawledAs (DESKTOP/MOBILE); plus ampResult and richResultsResult (with per-item issues and severities) when applicable. Only the status of the version already in the Google index is returned — this is NOT a live test. mobileUsabilityResult may still appear in responses but the product is retired — ignore it. QUOTA WARNING: only 2,000 inspections per property per DAY (and 600/minute) — throttle any batch inspection and expect 429/403 rateLimitExceeded beyond that.

ParametersJSON Schema
NameRequiredDescriptionDefault
site_urlYesThe property EXACTLY as registered in Search Console. Two formats: URL-prefix — a full URL with scheme and trailing slash, e.g. "https://example.com/" (http/https and www/non-www are different properties), or domain property — "sc-domain:example.com" (no scheme, no slash). A mismatched value returns 403/404; list_sites shows the exact registered values.
language_codeNoIETF BCP-47 language for the human-readable issue messages, e.g. "en-US" (the default).
inspection_urlYesThe fully-qualified URL to inspect. It must belong to the property given in site_url.

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnly=true, idempotent=true, destructiveHint=false), the description adds significant behavioral details: quota limits (2,000/day and 600/min), the retired mobileUsabilityResult field, the distinction between indexed and live status, and the potential for 429/403 errors. This rich context goes far beyond what annotations provide and helps the agent anticipate real-world behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long but every sentence earns its place. It begins with a clear purpose, then details the return structure (essential since there is no output schema), and ends with practical usage warnings. The information is well-organized and front-loaded, making it easy for an agent to quickly grasp the tool's function and constraints.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of the return object and the absence of an output schema, the description is remarkably complete. It enumerates all major response fields, explains the non-live nature, flags deprecated fields, and provides quota guidance. This fully equips an agent to invoke the tool correctly and interpret results.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already provides complete descriptions for all three parameters, including formats and examples (e.g., site_url format, language_code default). The description does not add any parameter-specific semantics beyond what the schema covers, so a baseline score of 3 is appropriate given 100% schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool inspects a URL's status in the Google index via the URL Inspection API. It specifies the resource ('URL'), the action ('inspects'), and the scope ('status in the Google index'), distinguishing it from sibling tools that manage sites or sitemaps.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context on when to use the tool, including a caveat that it returns only the currently indexed version and is NOT a live test. It also includes a quota warning, guiding agents to throttle batch inspections. However, it does not explicitly mention alternative tools or when NOT to use it beyond the live-test exclusion.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_sitemapsList sitemapsA
Read-onlyIdempotent

Lists the sitemaps submitted for a property (or, with sitemap_index, the children of a sitemap index file). Returns { sitemap: [WmxSitemap] } with per-sitemap path, lastSubmitted, lastDownloaded, isPending, isSitemapsIndex, type (sitemap/rssFeed/atomFeed/patternSitemap/urlList/notSitemap), warnings and errors counts, and contents[] with per-content-type submitted counts. The contents[].indexed field is deprecated and returns nothing useful — never present it as indexed pages.

ParametersJSON Schema
NameRequiredDescriptionDefault
site_urlYesThe property EXACTLY as registered in Search Console. Two formats: URL-prefix — a full URL with scheme and trailing slash, e.g. "https://example.com/" (http/https and www/non-www are different properties), or domain property — "sc-domain:example.com" (no scheme, no slash). A mismatched value returns 403/404; list_sites shows the exact registered values.
sitemap_indexNoURL of a sitemap index file — lists its child sitemaps instead of the property's own list.

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnlyHint, idempotentHint, etc.), the description discloses detailed behavioral traits: the exact return shape, the meaning of per-sitemap fields, and a critical deprecation warning about contents[].indexed. This adds significant transparency and does not contradict annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single dense sentence that conveys the core purpose, conditional behavior, return shape, field details, and a deprecation advisory. It is efficient but not as cleanly structured as a two-sentence example, hence a slight deduction.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of an output schema, the description fully explains the return values and important nuances. It also covers error behavior indirectly through the schema (site_url mismatch) and the deprecated field warning, making it complete for the tool's complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the schema already provides thorough parameter descriptions for site_url and sitemap_index. The description does not add new parameter semantics beyond what the schema captures, 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.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's verb ('Lists') and resource ('sitemaps submitted for a property'), and further specifies the conditional behavior with sitemap_index. It distinguishes from sibling tools like submit_sitemap and delete_sitemap by focusing on reading/listing rather than mutation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implicitly clarifies when to use the tool (to list submitted sitemaps) and adds a specific use case for sitemap_index (listing children). However, it does not explicitly mention alternatives or exclusions, so it lacks full when-not-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_sitesList Search Console propertiesA
Read-onlyIdempotent

Lists every Search Console property the authenticated account can access. Returns { siteEntry: [{ siteUrl, permissionLevel }] } where siteUrl is either a URL-prefix property ("https://example.com/") or a domain property ("sc-domain:example.com"), and permissionLevel is siteOwner, siteFullUser, siteRestrictedUser or siteUnverifiedUser. Call this FIRST: every other tool needs the siteUrl exactly as returned here — a near-match (missing trailing slash, wrong scheme, www vs non-www) is a different property and returns 403/404.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint false, but the description adds rich context: the return structure (siteEntry with siteUrl and permissionLevel), the two property types, and the critical exact-match requirement causing 403/404. This goes beyond what annotations provide and prepares the agent for real-world usage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise (3 sentences) and well-structured: the main action first, then the return format, then the critical usage warning. Every sentence adds important information without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given there is no output schema and no parameters, the description fully specifies the return structure, the possible permissionLevel values, and the important exact-match caveat. It even warns of 403/404 errors. For a zero-parameter list tool, this is complete and actionable.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so the schema is fully covered. The description instead explains the meaning of return values (siteUrl, permissionLevel) and their possible enumerated values, which is useful for downstream tools that need siteUrl. No parameter explanation is required, but the return semantics compensate well. Baseline for 0 params is 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool 'Lists every Search Console property the authenticated account can access.' This uses a specific verb+resource and directly distinguishes it from siblings like get_site by emphasizing 'every' property. The title and description align, and the return format is specified.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit guidance is provided: 'Call this FIRST: every other tool needs the siteUrl exactly as returned here.' This tells the agent when to use this tool before others and warns about the consequences of near-matches. No alternative is mentioned, but the instruction is unambiguous and valuable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

logoutDisconnect from GoogleA
Destructive

Revokes the stored token at Google (oauth2.googleapis.com/revoke) and deletes the local credentials file. Tokens supplied via env variables are NOT touched — remove them from the MCP client config manually; envTokenStillSet in the response says whether any are still in effect.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description goes well beyond the annotations by naming the revocation endpoint, specifying that the local credentials file is deleted, clarifying that env-var tokens are unaffected, and mentioning the envTokenStillSet response field. This is exactly the kind of behavioral detail an agent needs for a destructive action.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two compact sentences with the most critical action front-loaded. Every sentence adds important information, and there is no fluff or repetition of schema fields.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the action, side effects, exception case for env-var tokens, and a relevant response field. For a zero-parameter tool with no output schema, this is fully sufficient for an agent to use it correctly and predict its impact.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so there is no parameter meaning to add. The description correctly focuses on the action and side effects rather than inventing parameter details. Baseline 4 is appropriate because the schema is trivially complete.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a precise verb and resource: it revokes the stored Google token and deletes the local credentials file. The title 'Disconnect from Google' aligns with the behavior, and the description clearly distinguishes this from other auth-related sibling tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context: use this to revoke and delete stored credentials. It also explicitly tells the user that env-var tokens are not touched and must be removed manually, which is a valuable usage caveat. It does not name alternatives, but no true alternative exists for this action.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

raw_requestRaw Search Console API callA
Destructive

Escape hatch to call any Google Search Console API path directly, for requests the typed tools don't cover. Two surfaces share the host: "webmasters/v3/..." (sites, sitemaps, searchAnalytics) and "v1/..." (urlInspection). siteUrl and feedpath are PATH SEGMENTS and must be URL-encoded (encodeURIComponent), e.g. "webmasters/v3/sites/sc-domain%3Aexample.com/sitemaps". The path may carry a query string. The Bearer token is added automatically; the method defaults to GET. Note: sites.add and sitemaps.submit are PUT with no body and return an empty response on success.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoJSON request body (POST only; PUT endpoints here take no body).
pathYesAPI path relative to https://searchconsole.googleapis.com, e.g. "webmasters/v3/sites" or "v1/urlInspection/index:inspect".
methodNoHTTP method (the Search Console API uses only these four). Defaults to GET.

TDQS

A4.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true, readOnlyHint=false, and openWorldHint=true, setting the safety baseline. The description adds useful non-obvious behaviors: the Bearer token is added automatically, the method defaults to GET, and specific endpoints (sites.add, sitemaps.submit) are PUT with no body and return an empty response on success. This enriches the agent's understanding beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact—roughly three sentences—and front-loaded with the core 'escape hatch' purpose. Every sentence adds value: path format, URL encoding, query strings, auth, default method, and PUT endpoint notes. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given this is an open-ended raw API tool, the description covers the essentials: usage scope, path encoding, auth, method defaults, and specific endpoint quirks. There is no output schema, but the tool's raw passthrough nature makes return format self-evident. The description is sufficient for an agent to use it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already has 100% coverage, but the description goes further by explaining that siteUrl and feedpath are path segments requiring encodeURIComponent, that paths may include query strings, and clarifies body usage (POST only, PUT endpoints take no body). This added semantics is critical for correctly constructing the path parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with 'Escape hatch to call any Google Search Console API path directly', which states a specific verb ('call') and resource ('any Google Search Console API path'), clearly distinguishing it from the typed sibling tools. The title 'Raw Search Console API call' reinforces this purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly says 'for requests the typed tools don't cover', which tells the agent when to use this tool versus the typed alternatives. It also explains that there are two API surfaces ('webmasters/v3/...' and 'v1/...') and provides an example path, giving clear contextual guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_analyticsSearch Analytics (performance) queryA
Read-onlyIdempotent

Runs a Search Analytics (performance) query for a property: clicks, impressions, CTR and average position from Google Search, grouped by the requested dimensions. Each returned row has keys[] (one value per requested dimension, in the same order) plus clicks, impressions, ctr (a FRACTION 0..1, not a percent) and position; rows are sorted by clicks descending. With no dimensions you get one totals row for the range. Dates are calendar dates in Pacific Time and end_date is INCLUSIVE; final data lags ~2-3 days behind (use data_state "all" for fresh, still-changing rows). Pagination: there is no page token — repeat with start_row increased by row_limit until a response comes back with no rows. When grouping by query/page some anonymized long-tail data is never returned, so summed rows will not match a dimensionless totals query. Quota: 1,200 queries/minute per site and per user.

ParametersJSON Schema
NameRequiredDescriptionDefault
filtersNoRow filters, ALL combined with AND — the API has no OR across filters (run separate queries instead).
end_dateYesLast date of the range, YYYY-MM-DD, Pacific Time, inclusive.
site_urlYesThe property EXACTLY as registered in Search Console. Two formats: URL-prefix — a full URL with scheme and trailing slash, e.g. "https://example.com/" (http/https and www/non-www are different properties), or domain property — "sc-domain:example.com" (no scheme, no slash). A mismatched value returns 403/404; list_sites shows the exact registered values.
row_limitNoMax rows to return (1..25000; API default 1000).
start_rowNo0-based row offset for pagination (default 0). A response with no rows means the end.
data_stateNo"final" (default) — only finalized data; "all" — include fresh data still subject to change; "hourly_all" — required when grouping by hour (recent data only).
dimensionsNoHow to group rows; keys[] in each row follows this order. "country" values are ISO 3166-1 alpha-3 codes, "device" is DESKTOP/MOBILE/TABLET, "hour" requires data_state "hourly_all". Omit for one totals row.
start_dateYesFirst date of the range, YYYY-MM-DD, Pacific Time.
search_typeNoWhich search surface to report: "web" (default), "image", "video", "news" (News tab of search), "discover" (Discover feed), "googleNews" (news.google.com and the app). discover/googleNews support a reduced dimension set — an unsupported combination returns the API's 400 verbatim.
aggregation_typeNoHow metrics are aggregated: "auto" (default) lets the API decide, "byPage"/"byProperty" force it, "byNewsShowcasePanel" is for News Showcase. Affects how clicks/impressions are counted, not which rows exist.

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate read-only, idempotent, and open-world behavior. The description adds valuable behavioral context beyond annotations: 2-3 day data lag, inclusive Pacific Time dates, pagination behavior (no page token, loop until empty), long-tail data anonymization, and the 1,200 qpm quota. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but every sentence carries useful information. It opens with the core purpose, then progressively details output, date semantics, pagination, data caveats, and quota. No filler or repetition; the structure front-loads the most important information and then covers edge cases.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is a 10-parameter tool with no output schema, so the description must explain both request nuances and return shape. It covers row structure, sorting, pagination, dimension effects, data lag, and quota. Combined with the 100% schema coverage, the agent has everything needed to invoke and interpret results correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Even though schema descriptions cover 100% of parameters, the description adds semantic depth: explains keys[] ordering, ctr fraction, inclusive end_date, pagination with start_row/row_limit, why data_state 'all' matters, and the grouping caveat that summed rows won't match totals. These clarifications go well beyond schema property descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: 'Runs a Search Analytics (performance) query for a property' with specific metrics (clicks, impressions, CTR, position) and grouping by dimensions. It distinguishes itself from siblings like list_sites or get_top_queries by focusing on the full analytics query capability, and even explains output row structure.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides rich usage context: how to get a totals row (no dimensions), pagination via start_row/row_limit, data_state selection for fresh data, and the caveat about anonymized data when grouping by query/page. However, it does not explicitly mention when to choose this tool over alternatives like get_top_queries, so it stops short of full 'when-not' guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_clientSave the OAuth clientA
Idempotent

Saves the OAuth client credentials from the JSON file downloaded from Google Cloud Console ('Download JSON' on a Desktop-app client). Pass the file PATH — the secret must never be pasted into the chat. The client is stored once in the shared ~/.config/mcp-google-auth/client.json (owner-only) and reused by every mcp-google-* server; tokens stay per-server. After this, call start_login.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesAbsolute path to the client_secret_*.json file downloaded from Google Cloud Console.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate idempotentHint=true (safe to call again) and readOnlyHint=false (it's a write). The description adds valuable context: it stores the client once in a shared path, is reused by all mcp-google-* servers, and tokens stay per-server. It also warns against pasting secrets. This goes beyond annotation basics, though it does not mention any potential side effects like overwriting an old client.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences, each earning its place: the first explains what and source, the second details storage scope, the third directs to start_login. The critical warning is naturally integrated. It is not overly verbose and the essential info is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter tool with no output schema, the description covers key operational aspects: the source file, the storage path, the security precaution, and the follow-up step. The only minor gap is the absence of error conditions (e.g., if the file is invalid), but that is acceptable given the simplicity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description reinforces that the path is to the JSON file and adds the explicit 'must never be pasted into the chat' security guideline. It doesn't add much beyond the schema, but the security note is valuable enough to nudge to 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description specifies a clear verb ('saves') and resource ('OAuth client credentials from the JSON file') and adds detail about the source and storage location. It does not explicitly distinguish from siblings, but the uniqueness of this tool among the listed siblings is implicit given its specific task.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides clear guidance on when to use the tool: after downloading the JSON file and before starting login. It also mentions the prerequisite of calling start_login after. However, it does not explicitly state when not to use it or mention alternatives, though none are obvious.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

setup_instructionsSetup instructionsA
Read-onlyIdempotent

Step-by-step checklist for connecting this server to Google: creating a Google Cloud project and a Desktop-app OAuth client, publishing the consent screen (mandatory — Testing-mode refresh tokens die after 7 days), downloading the client JSON and handing its PATH to set_client. Works without any credentials; the checklist shortens to 'enable the API + log in' when an OAuth client is already configured (one client serves the whole mcp-google-* line). Never asks the user to paste secrets into the chat.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark it read-only, idempotent, and non-destructive; the description adds valuable context beyond that: it works without credentials, warns that Testing-mode refresh tokens expire in 7 days, mandates publishing the consent screen, and guarantees it never asks users to paste secrets into the chat. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three dense sentences each carry unique, decision-relevant information: the checklist's contents, the shortened path when already configured, and the no-secrets guarantee. There is no filler or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter instructional tool, the description fully covers purpose, usage timing, workflow relationships, and key behavioral safeguards. The lack of an output schema is acceptable since the tool's job is to present instructions, and the annotations already cover the operational profile.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema is empty and parameter coverage is 100%, so there is nothing for the description to add about parameter semantics. The zero-parameter case earns the baseline 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific deliverable: a step-by-step checklist for connecting the server to Google, including project creation, OAuth client, consent screen, and handing the client JSON path to set_client. This clearly distinguishes it from sibling tools like auth_status or set_client.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains when to use it (before credentials exist) and how the checklist shortens when an OAuth client is already configured, referencing set_client as the downstream consumer. It provides clear workflow context, though it does not explicitly say 'use this instead of X' for every alternative.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

start_loginStart the Google loginA
Idempotent

First step of connecting from the chat, without editing config files or restarting the client. Returns authorizeUrl — show it to the user as a clickable link and ask them to open it in the browser ON THIS MACHINE, pick the Google account and approve access. A one-shot listener on 127.0.0.1 catches Google's redirect; the code is exchanged locally and never passes through the chat. Does not open the browser itself. The attempt lives 10 minutes; when the browser shows the success page, call finish_login.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds substantial behavioral context beyond the annotations: it does not open the browser itself, uses a one-shot listener on 127.0.0.1, exchanges the code locally, never passes it through chat, and has a 10-minute attempt lifetime. These details are not present in the annotations and provide meaningful operational guidance.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but every sentence earns its place: it covers user interaction, browser constraints, security, timeout, and next step without repetition or filler. The most important user-facing instruction is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with no parameters and no output schema, the description is fully complete. It explains the returned authorizeUrl, how to present it, what will happen afterward, and which sibling tool to call next.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are zero parameters, so the schema carries no burden and the description correctly avoids inventing parameter details. The baseline for a 0-parameter tool is 4; the description also reinforces that no configuration files or restart are needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with 'First step of connecting from the chat' and names a specific resource and action: start the Google login and return an authorizeUrl. It is clearly distinguished from siblings like finish_login and auth_status by positioning itself as the initial step.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when to use it: as the first step of connecting, without editing config files or restarting the client. It also gives direct instructions to show the authorizeUrl to the user, ask them to open it in the browser, and call finish_login after the success page appears.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

submit_sitemapSubmit a sitemapA
Idempotent

Submits (or resubmits) a sitemap for the property. The feedpath must be the sitemap's full URL on the property. Success is an EMPTY API response (surfaced as { ok: true, submitted }); processing is asynchronous — check errors/warnings later with get_sitemap. Requires the full webmasters OAuth scope (readonly is not enough).

ParametersJSON Schema
NameRequiredDescriptionDefault
feedpathYesThe full sitemap URL, e.g. "https://example.com/sitemap.xml".
site_urlYesThe property EXACTLY as registered in Search Console. Two formats: URL-prefix — a full URL with scheme and trailing slash, e.g. "https://example.com/" (http/https and www/non-www are different properties), or domain property — "sc-domain:example.com" (no scheme, no slash). A mismatched value returns 403/404; list_sites shows the exact registered values.

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds valuable details beyond annotations: the empty API response shape, asynchronous processing, and the need for full OAuth scope. These are pragmatic behavioral insights that help the agent anticipate outcomes and requirements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with action and scope. Every sentence adds value: the action, the feedpath constraint, the response behavior, the asynchronous nature, the follow-up tool, and the auth requirement. No redundancy or fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with two parameters and no output schema, this description is complete. It covers purpose, response format, async processing, OAuth requirement, and the recommended follow-up. The rich schema examples further fill in any remaining context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already provides comprehensive descriptions for both parameters (feedpath format and site_url formats with examples). The description only restates the feedpath requirement ('full URL on the property') without adding new semantics, so it does not rise above the schema baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Submits (or resubmits) a sitemap for the property') with a specific verb and resource. It distinguishes from sibling tools like list_sitemaps, get_sitemap, and delete_sitemap by focusing on the submission operation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides clear context for when to use the tool and a follow-up action ('check errors/warnings later with get_sitemap'), plus an important prerequisite (full OAuth scope). It does not explicitly contrast with alternatives, but the purpose is distinct enough that the usage is implied.

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.

  1. 6 tool updatesv1.2.0
    • Addedauth_status
    • Addedfinish_login
    • Addedlogout
    • Addedset_client
    • Addedsetup_instructions
    • Addedstart_login
  2. 12 tool updatesv0.1.0
    • First observedadd_site
    • First observeddelete_site
    • First observeddelete_sitemap
    • First observedget_site
    • First observedget_sitemap
    • First observedget_top_queries
    • First observedinspect_url
    • First observedlist_sitemaps
    • First observedlist_sites
    • First observedraw_request
    • First observedsearch_analytics
    • First observedsubmit_sitemap

TDQS

A4.5/5.0

Scored across 18 tools

Disambiguation5/5

Each tool targets a distinct resource/action: site management, sitemaps, analytics, inspection, auth, and a raw escape hatch. Even search_analytics vs get_top_queries are clearly separated—the latter is an explicit convenience wrapper. No two tools appear to do the same thing.

Naming Consistency5/5

All tools follow a consistent verb_noun pattern (list_sites, get_site, add_site, delete_site, start_login, submit_sitemap, etc.). Even auth_status and setup_instructions fit the pattern when read as verb+noun. No style mixing or vague verbs.

Tool Count4/5

18 tools is above the typical 3-15 range but justified by the server's broad scope: auth, site management, sitemaps, analytics, URL inspection, and a raw API fallback. Each tool serves a clear purpose with no redundancy; slightly heavy but well-scoped.

Completeness5/5

The tool surface covers all core Search Console API operations: sites (list/get/add/delete), sitemaps (list/get/submit/delete), search analytics (full query + convenience wrapper), URL inspection, and full OAuth lifecycle. The raw_request tool ensures no endpoint is unreachable, leaving no obvious gaps or dead ends.

Maintenance

ActivityActive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    An MCP Server that provides access to Google's Search Console API, allowing users to interact with website search performance data and manage search presence through natural language.
    -
  • A
    license
    Not graded
    quality
    A
    maintenance
    MCP server for Google Search Console, enabling querying search analytics, URL inspection, sitemap management, and more via natural language.
    708 npm
    3
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    This MCP server provides LLMs with programmatic access to Google Search Console data and functionality, including search analytics, sitemap management, site management, and URL inspection.
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    MCP server that exposes the Google Search Console API, allowing LLMs to query SEO data, inspect URLs, manage sitemaps, and analyze search performance via natural language.
    80 npm
    MIT