搜索控制台API服务器

一个提供与Google搜索控制台API交互工具的MCP服务器,支持访问搜索分析数据、管理站点地图和检查URL。

  • by seokochin
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 seokochin/google-search-console-mcp

使用说明

谷歌搜索控制台MCP服务器

一个模型上下文协议(MCP)服务器,提供与谷歌搜索控制台API交互的工具。此服务器使Claude和其他MCP客户端能够访问搜索分析数据、管理站点地图和检查URL。

特性

  • 列出站点:在谷歌搜索控制台中获取您有权访问的所有属性
  • 搜索分析:使用可定制的维度(查询、页面、国家/地区、设备等)查询搜索性能数据
  • 网站地图管理:列出、提交和删除站点地图
  • URL检查:检查单个URL的索引状态和问题

先决条件

  • Node.js 18或更高版本
  • 启用搜索控制台API的谷歌云项目
  • OAuth 2.0凭据(客户端ID、客户端密钥和刷新令牌)

设置

1.安装依赖项

npm install

2.谷歌云设置

  1. 首选 谷歌云控制台
  2. 创建新项目或选择现有项目
  3. 启用 谷歌搜索控制台API:
    • 导航到“API和服务”>“库”
    • 搜索“谷歌搜索控制台API”
    • 点击“启用”

3.创建OAuth 2.0凭据

  1. 转到“API和服务”>“凭据”
  2. 点击“创建凭据”>“OAuth客户端ID”
  3. 选择“桌面应用程序”作为应用程序类型
  4. 命名它(例如,“搜索控制台MCP”)
  5. 点击“创建”
  6. 下载JSON凭据或记下客户端ID和客户端密码

4.获取刷新令牌

您需要使用OAuth 2.0获取刷新令牌。这里有一个简单的方法:

  1. 使用 OAuth 2.0游乐场
  2. 点击齿轮图标(⚙️) 在右上角
  3. 勾选“使用您自己的OAuth凭据”
  4. 输入您的客户端ID和客户端密码
  5. 在步骤1中,找到“Search Console API v1”并选择:
    • https://www.googleapis.com/auth/webmasters.readonly
  6. 点击“授权API”
  7. 使用您的Google帐户登录
  8. 在步骤2中,单击“令牌交换授权码”
  9. 复制 刷新令牌

5.设置环境变量

创建一个 .env 文件或设置以下环境变量:

export GOOGLE_CLIENT_ID="your-client-id.apps.googleusercontent.com"
export GOOGLE_CLIENT_SECRET="your-client-secret"
export GOOGLE_REFRESH_TOKEN="your-refresh-token"

6.建设项目

npm run build

Claude桌面配置

将此添加到您的Claude Desktop配置文件中:

MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json 视窗: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "google-search-console": {
      "command": "node",
      "args": ["/absolute/path/to/google-search-console-mcp/dist/index.js"],
      "env": {
        "GOOGLE_CLIENT_ID": "your-client-id.apps.googleusercontent.com",
        "GOOGLE_CLIENT_SECRET": "your-client-secret",
        "GOOGLE_REFRESH_TOKEN": "your-refresh-token"
      }
    }
  }
}

替换 /absolute/path/to/google-search-console-mcp 与这个项目的实际路径。

可用工具

list_网站

列出您在谷歌搜索控制台中有权访问的所有网站/属性。

参数:无

示例:

// Returns list of all sites
{
  "siteEntry": [
    {
      "siteUrl": "https://example.com/",
      "permissionLevel": "siteOwner"
    }
  ]
}

get_search_analytics

获取特定网站的搜索性能数据。

参数:

  • siteUrl (必填):网站URL(例如。, https://example.com/ 或 sc-domain:example.com)
  • startDate (必填):开始日期,格式为YYYY-MM-DD
  • endDate (必填):YYYY-MM-DD格式的结束日期
  • dimensions (可选):要分组的维度数组- query, page, country, device, searchAppearance, date
  • rowLimit (可选):要返回的最大行数(默认值:1000,最大值:25000)
  • startRow (可选):分页开始行(默认值:0)

示例:

{
  "siteUrl": "https://example.com/",
  "startDate": "2024-01-01",
  "endDate": "2024-01-31",
  "dimensions": ["query", "page"],
  "rowLimit": 100
}

获取_项目地图

列出一个站点的所有站点地图。

参数:

  • siteUrl (必填):网站URL

提交站点地图

向Google搜索控制台提交站点地图。

参数:

  • siteUrl (必填):网站URL
  • feedpath (必填):站点地图URL

删除项目图

从谷歌搜索控制台删除站点地图。

参数:

  • siteUrl (必填):网站URL
  • feedpath (必填):要删除的站点地图URL

inspect_url

检查URL的索引状态和问题。

参数:

  • siteUrl (必填):网站URL
  • inspectionUrl (必填):要检查的URL

发展

观看模式

npm run watch

在开发中运行

npm run dev

故障排除

身份验证错误

如果您遇到身份验证错误:

  1. 验证您的客户端ID、客户端密码和刷新令牌是否正确
  2. 确保在Google Cloud项目中启用搜索控制台API
  3. 确保您的刷新令牌尚未过期(除非被撤销,否则它们通常不会过期)

权限错误

确保与您的刷新令牌关联的Google帐户可以访问您尝试查询的Search Console属性。

速率限制

搜索控制台API有速率限制。如果你打他们:

  • 减少您的请求频率
  • 使用较小的日期范围
  • 实现重试的指数回退

许可证

麻省理工学院

贡献

欢迎投稿!请随时提交拉取请求。