mcpField
G
Google Webtools MCP

Google Webtools MCP

本地服务
github.com数据与分析62 天前更新

关于 Google Webtools MCP

Google Webtools MCP 是面向 Agent 的 MCP 服务,用于分析 Google Search Console 和 GA4 数据,涵盖属性管理、SEO 分析、索引检查、网站验证及报告,并提供本地处理的摘要与建议。

主要功能

  1. 01管理 Search Console 属性和站点地图
  2. 02分析搜索流量、查询和网页
  3. 03发现 SEO 机会及流量下降内容
  4. 04检查 URL 索引和网站健康状况
  5. 05管理 GA4 属性、数据流和报告
  6. 06验证网站所有权

适用场景

  1. 01查看每周 SEO 表现及优先行动项
  2. 02发现表现不佳的网页和搜索查询
  3. 03检查多个 URL 的索引及规范链接问题
  4. 04创建 GA4 属性并获取分析报告

MCP 相关

通过 MCP 提供 39 个工具,连接 Google Search Console、GA4 和 Site Verification API。支持 stdio 与无状态 Streamable HTTP 传输。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"stufently-google-webtools": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"GOOGLE_SERVICE_ACCOUNT_KEY",
"ghcr.io/stufently/google-webtools-mcp:1.2.2"
],
"env": {
"GOOGLE_SERVICE_ACCOUNT_KEY": "<GOOGLE_SERVICE_ACCOUNT_KEY>"
}
}
}
}
启动命令docker run -i --rm -e GOOGLE_SERVICE_ACCOUNT_KEY ghcr.io/stufently/google-webtools-mcp:1.2.2
需要配置的环境变量
GOOGLE_SERVICE_ACCOUNT_KEY密钥Google service account key, the whole JSON as one string. The account must be added as a user in Search Console and GA4.

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
ocighcr.io/stufently/google-webtools-mcp:1.2.2

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

google-webtools-mcp

一个 MCP 服务,可让 AI Agent 直接访问 Google Search Console 和 Google Analytics 4,管理资源、分析搜索表现、检查索引状态、生成 GA4 报告并验证网站。

许可证:MIT Node.js


面向 AI Agent

如果 Agent 正在驱动此服务,请先让它查看 SKILL.md (俄语)。该文件介绍了操作顺序——发现资源、验证、站点地图、索引检查、 常规审计流程——如何解读 URL 检查结果、Search Console 不会提供哪些数据、哪些调用会消耗配额,以及哪些工具会写入线上配置。


功能

此服务基于五个 Google API,提供 39 个工具:

API用途
Search Console API(webmasters v3)资源、站点地图、搜索分析
Search Console API(searchconsole v1)URL 检查
Google Analytics Admin API(v1beta)GA4 账号、资源、数据流
Google Analytics Data API(v1beta)GA4 报告、实时数据、元数据
Site Verification API(v1)验证令牌、所有权验证

除原始 API 访问外,工具响应还会经过本地分析层处理: 基于排名位置的 CTR 基准、趋势检测、查询意图分类、 机会评分和建议引擎。大多数工具返回易读的 Summary 和 Data 区块,而非纯 JSON;如果有值得说明的内容,还会提供 Recommendations 和 Limitations 部分。

基础设施:内存中的 TTL+LRU 缓存(搜索分析数据的日期范围结束于最近 2 天内时缓存 15 分钟,超过 2 天时缓存 1 小时;站点地图缓存 15 分钟;站点列表缓存 30 分钟;URL 检查缓存 1 小时)、限速器(20 次请求/秒,突发上限为 30 次),以及两种传输方式——stdio(默认)和无状态 Streamable HTTP。


工具

Search Console 资源(4 个)
工具适用场景
list_properties起点——查看你可以访问的所有 GSC 资源,以及你在每个资源上的权限级别。
get_property_details查看特定资源的类型和权限级别。
add_property在 Search Console 中注册新网站(验证需单独进行)。
delete_property从已认证账号的 Search Console 网站列表中移除资源。不会销毁历史数据——之后可以重新添加该资源。
站点地图(4 个)
工具适用场景
list_sitemaps查看已提交的站点地图,以及 Google 是否报告错误或警告。
get_sitemap_details深入查看某个站点地图:按内容类型统计 URL 数量、上次下载时间、错误和警告数量。
submit_sitemap发布或迁移站点地图后提交新站点地图。
delete_sitemap撤回已过时、重复或返回错误的站点地图。
搜索表现(6 个)
工具适用场景
get_search_analytics原始查询——可全面控制维度、筛选条件、搜索类型、行数限制、数据状态和聚合方式。适用于下方经过整理的工具无法满足需求的情况。
get_performance_summary“我们的表现如何?”——点击次数、展示次数、CTR、排名,并与上一时段进行比较。如果上一时段完全没有数据,则不提供趋势建议。
compare_periods并排比较两个指定日期范围(例如发布前后比较、季节性比较)。
get_top_queries按点击次数列出热门查询,并根据其排名位置的 CTR 基准进行评分。
get_top_pages按点击次数列出热门网页,并进行相同的 CTR 分析。
get_traffic_by_device按桌面设备、移动设备和平板设备细分流量,以发现特定设备的问题。
机会(5)
工具使用时机
find_quick_wins“哪里还有钱没赚到?”——找出排名靠前但点击不足的查询/页面组合,以及排名刚好在第 1 页之外的组合。每组只会归入一个类别(CTR 1-3、快速提升 >3 到 10、第 2 页 >10 到 20),因此你所选时间段内的数量和点击量估算可以相加。
find_declining_content在流量损失仍可挽回时及时发现——对比当前时段与上一时段,并分别列出流量下滑的页面和查询排名。
find_ctr_opportunities找出 CTR 远低于其排名对应基准的页面,并提供逐页修复建议。
find_content_gaps找出落在错误页面上的查询、曝光量高但点击量为零的查询,以及需要单独创建页面的主题。
find_what_to_build_next规划内容——按用户意图(问题、比较、问题解决、购买)将查询归入主题集群。
索引(3)
工具使用时机
inspect_url为什么这个 URL 没有显示?查看索引状态、移动设备易用性、富媒体搜索结果,以及 FAIL 判定背后的逐项验证问题。
batch_inspect_urls对一组 URL 执行相同检查(每次最多 50 个)。
check_indexing_issues审核流量最高的页面,检查索引失败、规范链接不匹配、缺失规范链接和移动设备问题。API 报错的 URL 会标记为未检查;审核的其余部分仍会继续执行。
查询分析(3)
工具使用时机
analyze_query_landscape了解需求概况——意图构成、品牌与非品牌查询比例、排名分布。
find_new_queries对比当前时段与上一时段,找出真正的新查询和快速增长的查询。
find_cannibalization检测多个自有页面是否在竞争同一查询。排名胜出的页面是点击量最多的页面,而不是平均排名最靠前的页面;对于只有一个页面带来实际流量的查询,不会提供内容整合建议。
报告(2)
工具使用时机
weekly_seo_report一键生成每周摘要:趋势、增长项、下滑项、快速提升机会、站点地图健康状况和优先行动。
seo_health_check给出总体 A–F 评级,并提供流量趋势、CTR 效率、排名分布和站点地图健康状况的子评分。
GA4 管理(7)
工具使用时机
ga4_list_accounts查看凭据可访问的所有 GA4 账号和媒体资源。
ga4_list_properties列出某个账号下的媒体资源。
ga4_get_property检查媒体资源的配置。
ga4_create_property创建新的 GA4 媒体资源。写入操作。
ga4_create_data_stream创建 Web 数据流并获取其衡量 ID(用于安装代码)。写入操作。
ga4_list_data_streams列出某个媒体资源的数据流。
ga4_get_data_stream获取单个数据流的详细信息,包括其衡量 ID。
GA4 报告(3)
工具使用时机
ga4_run_report运行任意 GA4 报告——选择指标、维度和日期范围(绝对日期或 28daysAgo 之类的相对日期)。
ga4_run_realtime_report查看当前有哪些用户正在访问网站。
ga4_get_metadata查找媒体资源支持的维度和指标(包括自定义项)——猜测指标名称前先运行此工具。
网站验证(2)
工具使用时机
gsc_get_verification_token获取要放置的令牌及对应验证方式的说明。验证方式:FILE、DNS_TXT、META、ANALYTICS。
gsc_verify_site放置令牌后完成验证。

设置

1. 获取 Google 凭据

在 Google Cloud 项目中启用以下 API:Search Console API、 Google Analytics Admin API、Google Analytics Data API 和 Site Verification API。

服务会请求以下 OAuth 作用域:

https://www.googleapis.com/auth/webmasters
https://www.googleapis.com/auth/analytics.readonly
https://www.googleapis.com/auth/analytics.edit
https://www.googleapis.com/auth/siteverification.verify_only

选项 A — Service account(最适合服务和自动化场景):

  1. 打开 Google Cloud Console → IAM & Admin → Service Accounts → 创建一个账号。
  2. 添加密钥 → 创建新密钥 → JSON → 下载。
  3. 在 Search Console → Settings → Users and permissions → 添加该服务账号的电子邮件地址。
  4. 在 GA4 → Admin → Property access management → 添加同一电子邮件地址。

选项 B — OAuth 2.0(最适合个人本地使用):

  1. 打开 Google Cloud Console → APIs & Services → Credentials → Create credentials → OAuth client ID → Desktop app。
  2. 下载客户端密钥 JSON。
  3. 首次运行时,服务会在 stderr 中打印授权 URL,并启动临时的本地回调监听器。打开该 URL,授予权限即可。
  4. 令牌会存储在 ~/.google-webtools-mcp/token.json,并自动刷新,因此只需授权一次。
2. 环境变量
变量用途
GOOGLE_APPLICATION_CREDENTIALS服务账号 JSON 密钥文件的路径。
GOOGLE_SERVICE_ACCOUNT_KEY内联 JSON 字符串形式的服务账号密钥,适用于挂载文件不方便的 Docker 和 CI 场景。
GSC_OAUTH_CLIENT_SECRETS_FILEOAuth 客户端密钥 JSON 文件的路径。
PORTHTTP 传输端口。默认值为 3000。仅在使用 --http 时读取。

身份验证方式按以下顺序尝试,并使用第一个能提供有效凭据的方式。失败的方式会被记录,然后尝试下一种:如果 GOOGLE_APPLICATION_CREDENTIALS 指向不存在或格式错误的文件,服务不会就此停止;如果已配置 OAuth(且已保存令牌),则会改用 OAuth 账号启动。查看 stderr 中的 [auth] Authenticated via … 行,确认实际使用的身份。

  1. Service account — GOOGLE_APPLICATION_CREDENTIALS,然后是 GOOGLE_SERVICE_ACCOUNT_KEY,再然后是 ./credentials.json(如果其 type 为 service_account)。
  2. Application Default Credentials(gcloud auth application-default login)— 如果已设置 GOOGLE_APPLICATION_CREDENTIALS,则跳过。
  3. 通过 GSC_OAUTH_CLIENT_SECRETS_FILE 使用 OAuth。
  4. 工作目录中的 ./credentials.json(如果看起来像 OAuth 客户端密钥文件,即包含 installed 或 web 键)。

如果以上方式都失败,服务会在 stderr 中打印设置指南并继续启动,这样主机或目录仍可列出其工具,无需密钥。每次调用工具时都会重新查找凭据;在某种方式成功之前,服务会返回同一条包含设置提示的错误,而不会调用 Google。修复密钥文件后无需重启。

3. 安装
docker run -i --rm \
  -v /absolute/path/to/service-account.json:/creds/sa.json:ro \
  -e GOOGLE_APPLICATION_CREDENTIALS=/creds/sa.json \
  ghcr.io/stufently/google-webtools-mcp:1.2.2

将 /absolute/path/to/service-account.json 替换为第 1 步中的密钥文件路径(Docker 需要绝对路径),然后粘贴该命令。首次运行时,Docker 会拉取镜像(支持 amd64 和 arm64),无需安装其他内容。服务应在 stderr 中打印 Server running on stdio,然后等待客户端连接(按 Ctrl+C 退出)。下方每个客户端配置块都会运行相同的 docker run;密钥文件以只读方式挂载,绝不会写入客户端配置。

该镜像支持服务账号。容器首次运行时 OAuth 无法使用(参见 Docker);如需使用 OAuth,请从源码构建。


已验证的客户端和平台

这里只列出了实际运行过的项目。连接方式 中的其他内容都是文档化的配置,尚未有人端到端验证。

客户端 / 运行时操作系统运行方式状态证据
Claude Code 2.1Ubuntu 26.04 LTS, x86_64从此仓库构建 Docker 镜像,通过 stdio 运行,只读挂载 gcloud ADC已验证维护者主机上的日常使用
Codex CLI 0.162Ubuntu 26.04 LTS, x86_64同一个 Docker 镜像,通过 stdio 运行已配置,未单独检查维护者主机上的配置
Node.js 22, 24, 26Ubuntu (ubuntu-latest)npm ci、lint、单元测试、构建已在 CI 中验证ci.yml 矩阵
Docker 镜像Ubuntu (ubuntu-latest)通过 stdio 运行 initialize + tools/list已在 CI 中验证ci.yml,作业 image
Claude Desktop (.mcpb)macOS, Windows桌面扩展未验证在 CI 中构建了安装包,但从未在实际的 Desktop 中安装
Cursor, Windsurf, Zed任意以下配置未验证仅有文档说明
macOS, Windows—任意客户端未验证这些系统上没有 CI 运行器

连接方式

以下每个代码块都会使用 docker 和上方安装命令中的参数启动服务。只需更改 /absolute/path/to/service-account.json。

Claude Code

项目根目录下的项目文件 .mcp.json:

{
  "mcpServers": {
    "google-webtools": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-v",
        "/absolute/path/to/service-account.json:/creds/sa.json:ro",
        "-e",
        "GOOGLE_APPLICATION_CREDENTIALS=/creds/sa.json",
        "ghcr.io/stufently/google-webtools-mcp:1.2.2"
      ]
    }
  }
}

也可以从终端注册同一个服务:

claude mcp add google-webtools -- docker run -i --rm \
  -v /absolute/path/to/service-account.json:/creds/sa.json:ro \
  -e GOOGLE_APPLICATION_CREDENTIALS=/creds/sa.json \
  ghcr.io/stufently/google-webtools-mcp:1.2.2

添加 --scope user,即可在每个项目中使用。

Claude Desktop

claude_desktop_config.json — macOS 上为 ~/Library/Application Support/Claude/claude_desktop_config.json,Windows 上为 %APPDATA%\Claude\claude_desktop_config.json,Linux 上为 ~/.config/Claude/claude_desktop_config.json。保存后重启 Claude Desktop。

{
  "mcpServers": {
    "google-webtools": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-v",
        "/absolute/path/to/service-account.json:/creds/sa.json:ro",
        "-e",
        "GOOGLE_APPLICATION_CREDENTIALS=/creds/sa.json",
        "ghcr.io/stufently/google-webtools-mcp:1.2.2"
      ]
    }
  }
}

Claude Desktop 也支持一键安装此服务。从 https://github.com/stufently/google-webtools-mcp/releases/latest 下载 .mcpb 并打开。Desktop 会要求提供服务账号 JSON 密钥,该账号必须已添加到 Search Console 和 GA4。

同一版本还包含 checksums.txt,其中列出了每个 .mcpb 的 SHA256。将此文件下载到安装包所在目录并进行校验:

sha256sum -c --ignore-missing checksums.txt   # run next to the downloaded .mcpb

在 macOS 上,shasum -a 256 -c --ignore-missing checksums.txt 可以执行相同的校验。

从下一个标签版本开始,每个 .mcpb 还会附带 GitHub 构建来源证明,并由发布工作流签名。检查安装包是否由此仓库的工作流构建且之后未被替换(需要 GitHub CLI):

gh attestation verify <bundle>.mcpb --repo stufently/google-webtools-mcp
Cursor

将 google-webtools MCP 服务添加到 Cursor

安装后,将 ~/.cursor/mcp.json 中的 /absolute/path/to/service-account.json 替换为密钥文件的路径。也可以手动添加以下代码块。

~/.cursor/mcp.json,或项目中的 .cursor/mcp.json:

{
  "mcpServers": {
    "google-webtools": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-v",
        "/absolute/path/to/service-account.json:/creds/sa.json:ro",
        "-e",
        "GOOGLE_APPLICATION_CREDENTIALS=/creds/sa.json",
        "ghcr.io/stufently/google-webtools-mcp:1.2.2"
      ]
    }
  }
}
Windsurf

mcp_config.json。在 macOS 和 Linux 上,该文件位于 ~/.config/devin/mcp_config.json(或 $XDG_CONFIG_HOME/devin/mcp_config.json)。在 Windows 上,位于 %APPDATA%\devin\mcp_config.json。较旧版本使用 ~/.codeium/windsurf/mcp_config.json。

{
  "mcpServers": {
    "google-webtools": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-v",
        "/absolute/path/to/service-account.json:/creds/sa.json:ro",
        "-e",
        "GOOGLE_APPLICATION_CREDENTIALS=/creds/sa.json",
        "ghcr.io/stufently/google-webtools-mcp:1.2.2"
      ]
    }
  }
}
Zed

Zed 将 MCP 服务称为上下文服务。文件为 settings.json(zed: open settings):

{
  "context_servers": {
    "google-webtools": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-v",
        "/absolute/path/to/service-account.json:/creds/sa.json:ro",
        "-e",
        "GOOGLE_APPLICATION_CREDENTIALS=/creds/sa.json",
        "ghcr.io/stufently/google-webtools-mcp:1.2.2"
      ],
      "env": {}
    }
  }
}
Codex
codex mcp add google-webtools -- docker run -i --rm \
  -v /absolute/path/to/service-account.json:/creds/sa.json:ro \
  -e GOOGLE_APPLICATION_CREDENTIALS=/creds/sa.json \
  ghcr.io/stufently/google-webtools-mcp:1.2.2

也可以在 ~/.codex/config.toml 中手动配置:

[mcp_servers.google-webtools]
command = "docker"
args = [
  "run", "-i", "--rm",
  "-v", "/absolute/path/to/service-account.json:/creds/sa.json:ro",
  "-e", "GOOGLE_APPLICATION_CREDENTIALS=/creds/sa.json",
  "ghcr.io/stufently/google-webtools-mcp:1.2.2",
]
将密钥作为字符串传递,而不是使用文件

如果挂载文件不方便(例如在 CI 或远程运行器中),请将完整的密钥 JSON 传入 GOOGLE_SERVICE_ACCOUNT_KEY,并让 Docker 从环境变量中转发它: 将 -v … 和 -e GOOGLE_APPLICATION_CREDENTIALS=… 参数替换为 -e GOOGLE_SERVICE_ACCOUNT_KEY,然后在 shell 中设置变量 (export GOOGLE_SERVICE_ACCOUNT_KEY="$(cat service-account.json)"),或在 客户端的 env 块中设置。在 JSON 或 TOML 配置中,密钥必须是单个经过转义的字符串,不能直接粘贴 JSON:运行 jq -c . service-account.json | jq -R . 即可打印出可直接粘贴的内容。这也是 MCP 注册表 条目 io.github.stufently/google-webtools-mcp 要求的格式。

从源代码构建

OAuth 所需,或用于在不使用 Docker 的情况下运行。需要 Node.js 22 或更高版本。

git clone https://github.com/stufently/google-webtools-mcp.git
cd google-webtools-mcp
npm install
npm run build

然后将 node 用作命令,并将 /path/to/google-webtools-mcp/dist/cli.js 作为唯一参数,同时在 env 中提供凭据,例如:

claude mcp add google-webtools \
  --env GSC_OAUTH_CLIENT_SECRETS_FILE=/path/to/client-secrets.json \
  -- node /path/to/google-webtools-mcp/dist/cli.js
HTTP 传输

适用于通过网络与服务通信,而不是启动服务的客户端。此模式为无状态:每个 POST /mcp 请求都会由一个全新的 MCP 服务实例处理,不会发放 Mcp-Session-Id,且请求可以并行运行。Google 凭据、缓存和速率限制器会在请求之间共享。

node dist/cli.js --http           # listens on :3000
PORT=8080 node dist/cli.js --http # or pick a port

端点:

  • POST /mcp — MCP JSON-RPC(Streamable HTTP)。发送 Accept: application/json, text/event-stream。
  • GET /health — 存活状态检查,返回 {"status":"ok","auth":"<method>"}。
  • GET/DELETE /mcp 返回 405:没有从服务端到客户端的数据流,也没有需要终止的会话。

HTTP 端点没有身份验证,并且会监听所有网络接口;与此同时,这些工具会使用你的 Google 凭据(包括写入工具)。请仅在 localhost 上运行,或将其置于具有身份验证功能的代理之后。

Docker

OAuth 授权回调会在容器内的 127.0.0.1 上监听一个随机端口,因此主机上的浏览器无法访问该端口,首次在 Docker 中运行 OAuth 会超时。你可以使用服务账号(参见上方安装命令),或在 Docker 外完成一次授权,然后将 ~/.google-webtools-mcp/token.json 复制到令牌卷中。

docker compose up --build

随附的 docker-compose.yml 以只读方式挂载 ./credentials,并将 OAuth 令牌保存在命名卷中,使其在容器重建后仍然保留。Dockerfile 会自行编译 TypeScript,因此无需本地 dist/;这与发布到 GHCR 的构建相同。


示例提示词

  • 上周我的网站为什么失去了点击量?
  • 哪些页面的排名接近第一页,但几乎没有点击量?
  • 这些 URL 已编入索引了吗?未编入索引的页面有什么问题?
  • 根据我们已经获得展示的查询,我们接下来应该发布什么内容?
  • 搜索流量在手机和桌面设备之间是如何分布的?

更多提示词

  • 为 example.com 创建一个 GA4 媒体资源和一个网站数据流,并告诉我用于安装的衡量 ID。
  • 哪些页面在争夺同一个查询?

限制

  • Search Console 数据延迟。 搜索分析数据通常会延迟 2–3 天,且延迟时间会有波动。因此,每个命名周期(last7d、last28d……)都以 API 报告为完整数据的最后一天为基准——该日期取自按日期分组的 dataState: "all" 查询所返回的 first_incomplete_date——而不是以昨天为基准。这样会有意排除最新几天,避免因尾部数据尚未完整收集而扭曲周期对比。需要查看最新数据时,get_search_analytics 仍可接受显式的 dataState 和日期。
  • 历史数据最长 16 个月。 这是 Search Console API 的限制,不是服务端限制。
  • 行数抽样和上限。 每次请求的搜索分析数据上限为 25,000 行;GA4 报告上限为 100,000 行。Google 可能会对较大范围的 GA4 日期数据进行抽样。
  • batch_inspect_urls 每次调用处理 50 个 URL,且 URL Inspection API 对每个资源都有自己的每日配额。
  • 网站验证无法一键完成。 服务端会提供令牌和说明;在调用 gsc_verify_site 前,你仍需自行放置文件、DNS 记录或元标记。
  • 网域资源无法使用 FILE 或 META 验证——请使用 DNS_TXT。
  • 不支持 Google Ads、PageSpeed Insights、CrUX 或 Indexing API。 此服务仅涵盖 Search Console、GA4 和 Site Verification。
  • 缓存位于内存中,且按进程隔离。 服务重启时缓存会重置,实例之间不会共享缓存。
  • 写入操作会实际生效。 add_property、delete_property、submit_sitemap、delete_sitemap、ga4_create_property、ga4_create_data_stream 和 gsc_verify_site 都会更改实时配置,且没有试运行模式。Search Console 相关操作可通过重新添加资源或重新提交站点地图来撤销;而此服务无法移除已创建的 GA4 资源或数据流。

开发

npm install
npm run build      # bundle with tsup
npm run dev        # rebuild on change
npm test           # vitest
npm run lint       # tsc --noEmit

需要 Node.js 22 或更高版本。

发布

版本号位于 package.json 中。server.json(MCP 注册表条目)以及本 README 中所有 ghcr.io/stufently/google-webtools-mcp:<tag> 都由它生成,切勿手动编辑:

npm version patch --no-git-tag-version   # or minor / major
# Docker instead of a local Node:
# docker run --rm -u "$(id -u):$(id -g)" -v "$PWD":/app -w /app node:24-slim \
#   npm version patch --no-git-tag-version

npm version 会更新 package.json 和锁文件,随后运行其 version 生命周期脚本(scripts/sync-version.mjs),重写 server.json 和此处的镜像标签(普通的 npm version patch 也会将这些文件加入暂存区,因此它自己的提交和标签都会完整包含这些更改——但请在 CI 通过后再打标签,如下所示)。添加 CHANGELOG.md 章节,提交并推送到 main,然后等待 CI 完成——其 Versions agree 步骤(npm run check:version)会在这三处版本不一致时失败。之后打标签并推送该标签:

git tag v1.2.3 && git push origin v1.2.3

Publish 工作流会构建并推送镜像(:<version> 和 :latest),并将 server.json 发布到 MCP 注册表;如果标签与 package.json 中的版本不一致,则会拒绝发布。MCPB 工作流会在同一标签上使用 scripts/build-mcpb.sh 构建桌面扩展,写入 dist-mcpb/checksums.txt,为每个捆绑包生成构建来源证明,并将 .mcpb 捆绑包和校验和文件上传到 GitHub Release。它不会推送镜像或注册表条目。


致谢

此项目最初是 Magdoub 的 awesome-gsc-mcp 的分支。该项目提供了 Search Console 工具、分析层(CTR 基准、趋势检测、查询分类、机会评分、建议)、缓存和速率限制器。GA4 Admin/Data 和 Site Verification 工具、身份验证改造以及后续修复均在此项目中添加。原项目以 MIT 许可证发布。


许可证

MIT — 请参阅 LICENSE。原项目的版权声明也与本项目的版权声明一并保留。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。