Google搜索控制台数据分析服务器

一个提供对Google搜索控制台数据直接访问的MCP服务器,包括搜索性能、URL索引、站点地图以及内置SEO分析工具,适用于SEO优化和网站性能监控。

  • by serpfire
  • JavaScript
  • 本地部署
  • 11 星标
  • 更新于
在 GitHub 查看 serpfire/gsc-mcp-server

使用说明

谷歌搜索控制台MCP服务器

一个MCP服务器,让Claude可以直接访问您的Google Search Console数据——搜索性能、URL索引、站点地图和内置的SEO分析工具,包括趋势查询、同类相食检测、流量下降诊断和自动查询/页面分组。

先决条件

  • Node.js >= 18.0.0
  • C++编译器( better-sqlite3 依赖性):
平台 安装
macOS xcode-select --install
视窗 Visual Studio 生成工具 --选择“用C++进行桌面开发”
Linux(Debian/Ubuntu) sudo apt-get install build-essential python3
Linux(Fedora/RHEL) sudo dnf groupinstall "Development Tools" && sudo dnf install python3

快速开始

git clone https://github.com/serpfire/gsc-mcp-server.git
cd gsc-mcp-server
npm install

1.创建Google OAuth凭据

  1. 首选 谷歌云控制台
  2. 创建OAuth 2.0客户端ID(类型: 桌面应用)
  3. 启用 谷歌搜索控制台API 在您的项目中

2.身份验证

GSC_OAUTH_CLIENT_ID=your-client-id \
GSC_OAUTH_CLIENT_SECRET=your-client-secret \
npm run setup

这将打开您的浏览器以使用Google登录。代币存储在 ~/.gsc-mcp/tokens.json 以及自动刷新。跑 setup 再次随时切换帐户。

3.添加到克劳德代码

claude mcp add --transport stdio gsc -s user \
  -e GSC_OAUTH_CLIENT_ID=your-client-id \
  -e GSC_OAUTH_CLIENT_SECRET=your-client-secret \
  -- node /absolute/path/to/gsc-mcp-server/src/index.js

或手动添加到 ~/.claude.json:

{
  "mcpServers": {
    "gsc": {
      "type": "stdio",
      "command": "node",
      "args": ["/absolute/path/to/gsc-mcp-server/src/index.js"],
      "env": {
        "GSC_OAUTH_CLIENT_ID": "your-client-id",
        "GSC_OAUTH_CLIENT_SECRET": "your-client-secret"
      }
    }
  }
}

服务帐户替代方案

对于自动化或服务器到服务器使用:

{
  "env": {
    "GSC_AUTH_MODE": "service_account",
    "GSC_SERVICE_ACCOUNT_KEY_PATH": "/path/to/key.json"
  }
}

工具

核心GSC工具

工具 说明
list_sites 列出所有已验证的GSC属性
get_site 获取特定网站的详细信息
query_search_analytics 查询点击次数、展示次数、CTR、带维度/过滤器/分页的位置
inspect_url 检查URL索引/爬网状态(2000/天限制)
list_sitemaps 列出站点的站点地图
get_sitemap 获取站点地图详细信息
submit_sitemap 提交新的站点地图
delete_sitemap 从GSC中删除站点地图
switch_account 使用其他Google帐户重新进行身份验证(仅限OAuth)

数据同步

工具 说明
sync_search_data 将所有性能数据提取到本地SQLite缓存中。默认情况下为增量。分析工具之前需要。

分析工具

工具 说明
find_low_hanging_fruit 查找排名2-20、展示率高但点击率低的查询,按未开发潜力评分
detect_cannibalization 使用HHI评分和行动建议检测2+URL上的查询排名
find_trending_queries 查找增长/下降幅度最大的查询(同期或同比)
find_trending_pages 查找影响评分增长/下降最大的页面
analyze_traffic_drop 诊断5个视图的流量下降:网站级别、GBP与有机、团体、细分市场、品牌与非品牌
get_group_performance 按指定组和份额百分比细分的汇总指标

组管理

工具 说明
create_group 为URL段或查询组创建一个具有OR/AND/NOT正则表达式规则的组
list_groups 列出所有组,可选择按维度筛选
get_group 获取组详细信息,包括规则
update_group 更新组描述和/或规则
delete_group 删除组及其规则
test_group 根据缓存数据测试组——匹配计数、速率、样本

自动发现

工具 说明
discover_query_groups 使用单词重叠、n元语法相似度和页面共现的自动聚类查询
promote_cluster_to_group 将发现的集群转换为命名组
auto_segment_pages 根据页面URL模式自动创建URL段组
auto_group_queries 自动创建查询组:品牌、主题n元语法、意图修饰符

资源

URI 描述
sites://list 所有经过验证的站点(自动发现)

提示

名称 描述
seo_performance_analysis 引导完整的SEO审查(查询、页面、设备、趋势)
index_coverage_check 系统URL索引报告

查询示例

  • “列出我的Search Console站点”
  • “显示sc域过去7天的前20个查询:example.com”
  • “将移动设备与台式机进行比较https://example.com/"
  • “检查https://example.com/new-page已编入索引”
  • “显示sc域的站点地图:example.com”
  • “同步sc域的数据:example.com并找到低垂的果实”
  • “检测sc域上的关键字蚕食:example.com”
  • “显示sc域过去28天的趋势查询:example.com”
  • “自动为sc域创建查询组:example.com”

建筑

src/
├── index.js                          # Entry: auth -> client -> db -> server -> stdio
├── server.js                         # McpServer factory
├── auth/
│   ├── index.js                      # Auth factory (auto-detects mode from env)
│   ├── service-account.js            # Service account key file auth
│   ├── oauth.js                      # Browser flow + token persistence + auto-recovery
│   ├── token-store.js                # ~/.gsc-mcp/tokens.json
│   └── setup.js                      # Standalone setup script
├── gsc/                              # Pure GSC API wrappers (no MCP knowledge)
│   ├── client.js
│   ├── sites.js
│   ├── search-analytics.js
│   ├── sitemaps.js
│   └── url-inspection.js
├── db/
│   ├── connection.js                 # SQLite setup with WAL mode
│   └── schema.js                     # Migrations
├── analysis/                         # SEO analysis engine (uses local SQLite)
│   ├── sync.js                       # GSC API -> SQLite incremental sync
│   ├── low-hanging-fruit.js          # Opportunity scoring
│   ├── cannibalization.js            # HHI-based detection
│   ├── trending.js                   # PoP / YoY trending queries & pages
│   ├── traffic-drop.js              # Multi-view drop diagnostics
│   ├── group-performance.js          # Group-level aggregation
│   ├── auto-segment.js              # Automatic URL segmentation
│   ├── auto-group.js                # Automatic query grouping
│   ├── shared.js                     # Shared SQL helpers
│   ├── groups/
│   │   ├── manager.js                # CRUD for groups + rules
│   │   ├── compiler.js               # OR/AND/NOT rule compilation
│   │   └── matcher.js                # Regex matching engine
│   └── semantic/
│       ├── discover.js               # Cluster discovery orchestrator
│       ├── clustering.js             # Connected components algorithm
│       ├── similarity.js             # Multi-signal similarity scoring
│       └── labeler.js                # Cluster naming
├── tools/
│   ├── definitions.js                # Core GSC tools (declarative)
│   ├── analysis-definitions.js       # Analysis tools (declarative)
│   ├── middleware.js                  # Rate limiting + error handling wrapper
│   ├── auth.js                       # switch_account tool
│   └── index.js                      # Registration loop
├── resources.js                      # sites://list resource
├── prompts.js                        # SEO analysis + index check prompts
└── utils/
    ├── logger.js                     # stderr-only (stdout = MCP protocol)
    ├── errors.js                     # Google API error -> MCP error
    ├── constants.js                  # Scopes, rate limits, defaults
    ├── rate-limiter.js               # Sliding window
    └── open-url.js                   # Cross-platform browser opener

两层分隔: gsc/ 对MCP一无所知。 tools/ 对谷歌的API一无所知。 analysis/ 对本地SQLite数据进行操作。每一层都是可独立测试的。

环境变量

变量 必填 默认 描述
GSC_AUTH_MODE 否 自动检测到 oauth 或 service_account。自动检测设置凭据的来源。
GSC_OAUTH_CLIENT_ID OAuth -- OAuth客户端ID
GSC_OAUTH_CLIENT_SECRET OAuth -- OAuth客户端密钥
GSC_OAUTH_REFRESH_TOKEN 否 -- 使用预先存在的令牌跳过浏览器流
GSC_SERVICE_ACCOUNT_KEY_PATH 服务帐户 -- JSON密钥文件的路径
GSC_API_SCOPES 没有 webmasters.readonly 覆盖范围(逗号分隔)
GSC_LOG_LEVEL 没有 info debug / info / warn / error
GSC_TOKEN_PATH 没有 ~/.gsc-mcp/tokens.json 自定义令牌存储路径
GSC_DB_PATH 没有 ~/.gsc-mcp/data.db 自定义SQLite数据库路径

调试

启动 MCP检查员 对于交互式测试:

npm run inspect

Windows注意事项: inspect脚本使用bash。从Git Bash、WSL运行它,或替换为:

npx @modelcontextprotocol/inspector node src/index.js