快速回答
如何通过 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: 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 中,请使用解释器的完整路径,例如虚拟环境中的解释器路径。
{
"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 页面 展示了 OpenClaw 的命令。
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 支付的预付费积分,无需身份证、无需自拍、无需文件。使用账号登录;邮箱为选填。