# 面向 Claude Desktop、Cursor 等 MCP 客户端的 Google 搜索 MCP 服务器

> 为 Claude Desktop、Claude Code、Cursor 等 MCP 客户端添加 Google 搜索：一个基于 SerpCrypto SERP API 的 40 行 Python MCP 服务器。无需 KYC，加密货币支付。

- URL: https://serpcrypto.com/zh/docs/mcp/
- 最后更新: 2026-10-22
- 发布者: SerpCrypto (https://serpcrypto.com)

为任意 MCP 客户端提供一个 `google_search` 工具，返回实时 Google 结果。该服务器是一个你自己运行的 Python 文件；它调用 SerpCrypto API，返回模型可读的紧凑文本。

**快速回答 — 如何通过 MCP 服务器将 Google 搜索添加到 Claude Desktop 或 Cursor？**

保存下面的 40 行 Python 服务器代码，安装 `mcp[cli]` 和 `httpx`，然后在客户端的 MCP 设置中注册，将 **SerpCrypto** API 密钥填入 `env`。客户端随后会获得一个 `google_search` 工具，返回实时 Google 结果。每次工具调用是一次搜索，花费 1 积分，起价 US$0.30/千次搜索；积分使用加密货币支付，无需 KYC。

## MCP 服务器一览

| 属性 | 值 |
| --- | --- |
| 语言 | Python 3.10+，使用官方 `mcp` SDK（FastMCP）和 `httpx` |
| 传输方式 | stdio：客户端启动脚本并与之通信 |
| 工具 | `google_search(query, gl, hl, num_results)` |
| 输出 | 若显示则有 AI Overview 文本，然后是每条结果的标题、链接和摘要 |
| 密钥 | 环境变量 `SERPCRYPTO_API_KEY`，在客户端配置中设置 |
| 费用 | 每次成功的工具调用花费 1 积分；出错的调用免费 |

## 服务器做什么？

它通过 Model Context Protocol 暴露一个工具 `google_search`。当模型调用它时，服务器向 `https://serpcrypto.com/api/v1/search` 发送一个请求，然后将 JSON 转换为简短的纯文本：如果 Google 显示了 AI Overview，则包含该内容，以及带有标题、链接和摘要的顶部结果。

简短文本很重要。完整的 JSON 结果页面很长，而回传给模型的每个字符都会占用上下文。服务器最多保留十条结果，并将概览截断到 800 个字符；如果你的客户端有更多空间，可以在代码中修改这些限制。

这是可复制粘贴的代码，不是已发布的软件包：没有官方的 SerpCrypto MCP 包可安装。你拥有该文件，可以添加工具，例如用于 `engine=google_news` 的工具。

*serpcrypto_mcp.py*

```python
"""serpcrypto_mcp.py: an MCP server that gives AI clients a Google search tool.

Install once:  pip install "mcp[cli]" httpx
Run by your MCP client over stdio; the API key comes from the environment.
"""
import os

import httpx
from mcp.server.fastmcp import FastMCP

API_URL = "https://serpcrypto.com/api/v1/search"
mcp = FastMCP("serpcrypto-search")


@mcp.tool()
async def google_search(query: str, gl: str = "us", hl: str = "en", num_results: int = 5) -> str:
    """Search Google and return the top results (title, link, snippet) and the AI Overview text if any.

    gl is a two-letter country code (us, gb, de...), hl a language code (en, de, pt-BR...).
    Each call uses one SerpCrypto search credit.
    """
    headers = {"Authorization": "Bearer " + os.environ["SERPCRYPTO_API_KEY"]}
    params = {"q": query, "gl": gl, "hl": hl}
    async with httpx.AsyncClient(timeout=90) as client:
        r = await client.get(API_URL, params=params, headers=headers)
    if r.status_code != 200:
        return f"Search failed with HTTP {r.status_code}: {r.text[:300]}"
    data = r.json()
    lines = []
    overview = data.get("ai_overview") or {}
    if overview.get("text"):
        lines.append("AI Overview: " + overview["text"][:800])
    for item in data.get("organic_results", [])[: max(1, min(num_results, 10))]:
        lines.append(f"{item['position']}. {item['title']}\n{item['link']}\n{item.get('snippet', '')}")
    return "\n\n".join(lines) or "No results."


if __name__ == "__main__":
    mcp.run()  # stdio transport
```

## 为什么工具叫 google_search 而不是 web_search？

一些客户端已经自带名为 `web_search` 的工具，使用它们自己的提供商。使用不同的名称可以避免冲突，并告诉模型它能获得什么：按所选国家和语言的 Google 结果。docstring 是模型读取的描述，因此其中说明了参数和一次调用的费用。

## 如何将其添加到 Claude Desktop？

打开配置文件 `claude_desktop_config.json`：在 macOS 上它位于 `~/Library/Application Support/Claude/`，在 Windows 上位于 `%APPDATA%\Claude\`。在 `mcpServers` 下添加服务器，填写脚本的绝对路径和你的密钥到 `env`，然后重启 Claude Desktop。

如果 `python` 不在 Claude Desktop 可见的 path 中，请使用解释器的完整路径，例如虚拟环境中的解释器路径。

*claude_desktop_config.json*

```json
{
  "mcpServers": {
    "serpcrypto-search": {
      "command": "python",
      "args": ["/absolute/path/to/serpcrypto_mcp.py"],
      "env": {
        "SERPCRYPTO_API_KEY": "paste-your-key-here"
      }
    }
  }
}
```

## 如何将其添加到 Claude Code 和 Cursor？

在 Claude Code 中，从终端使用 `claude mcp add` 注册；`-e` 设置环境变量，`--` 之后的所有内容就是要运行的命令。在 Cursor 中，把上面相同的 `mcpServers` 块放到每个项目的 `~/.cursor/mcp.json` 中，或放到单个项目内的 `.cursor/mcp.json` 中。

其他启动 stdio 服务器的 MCP 客户端也需要同样的三项内容：命令、参数和环境变量。[OpenClaw 页面](https://serpcrypto.com/zh/docs/openclaw/) 展示了 OpenClaw 的命令。

*Claude Code*

```bash
claude mcp add serpcrypto-search \
  -e SERPCRYPTO_API_KEY=paste-your-key-here \
  -- python /absolute/path/to/serpcrypto_mcp.py
```

## 如何保证 API 密钥安全？

把它放在客户端配置的 `env` 块中，或放在你的 shell 配置文件里，绝不要放在 `serpcrypto_mcp.py` 里。这样脚本可以在不含密钥的情况下共享或提交。如果密钥泄露，在面板中撤销它并创建一个新的：你可以在 dashboard 中随时创建和撤销的 API 密钥。

给 MCP 服务器单独的密钥。这样按密钥统计的用量就能显示助手发起了多少次搜索，与你的脚本分开统计。

## 助手会消耗多少积分？

每次成功的工具调用消耗 1 积分。模型在对话中搜索三次的聊天消耗 3 积分。在 US$18.75 价位的 25,000 次搜索 套餐下，那就是成千上万个辅助问答，而且 预付的搜索积分永不过期：未使用的查询会一直留在你的账户中，直到你使用它们。

要限制用量，请调低 `num_results`（这不改变价格，但会缩短回答），并在你的指令中告诉模型只在需要最新事实时才搜索。

## MCP 常见问题

### 服务器能配合远程 MCP 客户端使用吗？

此版本使用 stdio，因此客户端必须在同一台机器上运行它。FastMCP 也可以通过 HTTP 提供服务；如果你在网络中暴露它，请在前面加上身份验证，因为任何能访问它的人都会消耗你的积分。

### 这个工具能改为搜索 Bing 或 Google News 吗？

可以。添加一个 `engine` 参数，或添加第二个工具，在 `params` 中发送 `engine=bing` 或 `engine=google_news`。每个引擎每次搜索都消耗相同的 1 积分。

### 为什么客户端提示工具失败？

用相同的 Python 手动运行脚本查看错误。常见原因是缺少 `mcp` 或 `httpx` 包、配置中的路径错误，或 `SERPCRYPTO_API_KEY` 为空，导致 API 返回 `401`。

### 获取 API 密钥需要信用卡或 KYC 吗？

不需要。SerpCrypto 出售以 BTC, USDT, USDC, ETH, SOL, LTC 支付的预付费积分，无需身份证、无需自拍、无需文件。使用账号登录；邮箱为选填。

---

SerpCrypto: SerpCrypto 是面向开发者和 AI Agent 的 SERP API，可将 Google 和 Bing 搜索结果以 JSON 返回，用加密货币支付，无需上传证件。预付费搜索积分自 US$0.30/千次搜索 起永不过期。无需 KYC——无需证件、无需自拍、无需材料。加密货币支付。
