关于 mcp-serp
mcp-serp 通过 AceDataCloud 上的 SERP API 提供 Google 搜索 MCP 服务,返回网页、图片、新闻、视频、本地商家和地图等结构化结果,并支持本地化与时间筛选。
主要功能
- 01结构化 Google 网页搜索
- 02图片、新闻和视频搜索
- 03本地商家与地图搜索
- 04Knowledge Graph 实体信息
- 05国家、语言和时间筛选
适用场景
- 01查找某个主题的网页
- 02获取最新新闻或视频结果
- 03搜索本地商家和地点
- 04按国家、语言或时间限制结果
MCP 相关
向 MCP 客户端提供 Google 搜索、搜索类型、本地化、时间范围和使用指南工具。支持托管 OAuth、API 令牌及本地 stdio 接入。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://serp.mcp.acedata.cloud/mcpclaude mcp add --transport http acedatacloud-mcp-serp https://serp.mcp.acedata.cloud/mcp{"mcpServers":{"acedatacloud-mcp-serp":{"type":"http","url":"https://serp.mcp.acedata.cloud/mcp"}}}在 Cursor 中打开{"servers":{"acedatacloud-mcp-serp":{"type":"http","url":"https://serp.mcp.acedata.cloud/mcp"}}}在 VS Code 中打开{"mcpServers":{"acedatacloud-mcp-serp":{"type":"http","url":"https://serp.mcp.acedata.cloud/mcp"}}}{"mcpServers":{"acedatacloud-mcp-serp":{"serverUrl":"https://serp.mcp.acedata.cloud/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
工具
详细介绍
SerpMCP
一个通过 AceDataCloud API 使用 SERP API 进行 Google 搜索的 Model Context Protocol(MCP) 服务。
可直接通过 Claude、VS Code 或任何兼容 MCP 的客户端执行 Google 搜索并获取结构化结果。
功能
- 网页搜索 - 使用结构化结果进行常规 Google 网页搜索
- 图片搜索 - 搜索图片并获取 URL 和缩略图
- 新闻搜索 - 获取任意主题的最新新闻文章
- 视频搜索 - 查找来自 YouTube 等来源的视频
- 地点搜索 - 搜索本地商家和地点
- 地图搜索 - 查找位置和地理信息
- 知识图谱 - 获取结构化实体信息
- 本地化 - 支持多个国家和语言
- 时间筛选 - 按时间范围筛选结果
工具参考
| 工具 | 描述 |
|---|---|
serp_google_search | 使用 SERP API 搜索 Google 并获取结构化结果。 |
serp_google_images | 搜索 Google 图片并获取图片结果。 |
serp_google_news | 搜索 Google 新闻并获取新闻文章结果。 |
serp_google_videos | 搜索 Google 视频并获取视频结果。 |
serp_google_places | 在 Google 上搜索本地地点和商家。 |
serp_google_maps | 在 Google 地图上搜索位置。 |
serp_list_search_types | 列出所有可用的 Google 搜索类型。 |
serp_list_countries | 列出 Google 搜索中常用的国家代码。 |
serp_list_languages | 列出 Google 搜索中常用的语言代码。 |
serp_list_time_ranges | 列出 Google 搜索中可用的时间范围筛选条件。 |
serp_get_usage_guide | 获取 Google SERP 工具的全面使用指南。 |
连接:托管 OAuth、API 令牌或本地 stdio
托管端点为 https://serp.mcp.acedata.cloud/mcp。为 MCP 客户端选择一种方式:
| 方式 | 适用情况 | 凭据设置 |
|---|---|---|
| 托管 OAuth | 客户端支持远程 MCP OAuth | 只添加 URL,然后登录 AceDataCloud 并批准访问。无需将令牌粘贴到客户端配置中。 |
| 托管 API 令牌 | 客户端无法完成 OAuth,或你需要明确的集成凭据 | 在 Authorization: Bearer … 标头中发送 AceDataCloud API 令牌。将其保存在本地密钥存储或环境变量中。 |
| 本地 stdio | 客户端运行本地 MCP 进程 | 安装 mcp-serp 并将 ACEDATACLOUD_API_TOKEN 传递给该进程。它仍会调用 AceDataCloud API。 |
托管服务提供 OAuth 元数据和动态客户端注册(DCR)。DCR 注册的是客户端应用,而不是 API 密钥。 OAuth 会为你登录,客户端会发送由此获得的 Bearer 令牌;它可能会为该账户重复使用或创建 API 凭据。浏览器登录仍需要 AceDataCloud 账户。托管服务可能按用量计费:在执行实际操作前,请查看当前服务文档和所示价格。不要为同一服务器同时配置 OAuth 登录和固定的 Authorization 标头。
托管 OAuth 示例
- Claude 和 Claude Desktop 聊天: 在
Customize → Connectors → Add custom connector中添加远程自定义连接器,输入https://serp.mcp.acedata.cloud/mcp,选择登录;如果 Claude 询问如何注册其 OAuth 客户端,请选择 Register automatically。完成授权。Claude Desktop 的本地claude_desktop_config.json是单独的配置方式。Claude 连接器指南。 - Claude Code: 运行
claude mcp add --transport http --scope user serp https://serp.mcp.acedata.cloud/mcp,然后启动claude,打开/mcp并验证 Serp 服务。Claude Code MCP 指南。 - Cursor: 添加远程服务器,只需填写
https://serp.mcp.acedata.cloud/mcp。对于项目,将以下条目合并到<project>/.cursor/mcp.json中;个人使用时,请使用~/.cursor/mcp.json。Cursor MCP 指南。 - VS Code / Copilot: 运行 MCP: Add Server,选择 HTTP,输入
https://serp.mcp.acedata.cloud/mcp,然后完成浏览器登录。新的便携式工作区配置使用<project>/.mcp.json;以下 VS Code 专用格式使用<project>/.vscode/mcp.json或用户配置文件。检查 MCP: List Servers。VS Code MCP 设置。 - Codex: 运行
codex mcp add serp --url https://serp.mcp.acedata.cloud/mcp,然后运行codex mcp login serp。其用户设置位于~/.codex/config.toml。Codex 官方 MCP 指南。
Cursor 项目配置(OAuth):
{
"mcpServers": {
"serp": {"url": "https://serp.mcp.acedata.cloud/mcp"}
}
}
VS Code 专用工作区配置(OAuth):
{
"servers": {
"serp": {"type": "http", "url": "https://serp.mcp.acedata.cloud/mcp"}
}
}
托管 API 令牌
- 打开 Ace Data Cloud → Applications。登录,或先注册账号。
- 找到 General application。如果尚未创建,请选择 Initialize General Application。通用密钥可使用账号可用的服务;专用应用的密钥则仅限其对应服务。确认所需的服务/模型访问权限,并查看当前定价。
- 从应用卡片中复制 API Key,或打开 Keys / Manage Keys → Create,为此集成创建单独的密钥。为密钥取一个易于识别的名称,以便单独撤销或轮换。
- 创建密钥时,请查看 Expiration Time、Set Usage Limitation 和 Allowed APIs。仅启用所需的限制,并允许将要调用的操作,然后点击 Create,再从密钥列表中复制令牌。查询任务不代表有权提交生成请求。确认应用余额足以支付首次请求;任何试用额度均以账号当前显示为准。
- 仅复制令牌值,不要带引号、空格或
Bearer。API Key / API Token 字段需要此原始值;只有手动配置 HTTPAuthorization标头时才需要Bearer前缀。platform-...账号管理令牌不能替代生成 API 密钥。


将密钥保存在客户端的凭据存储中,或保存在下方所示的环境变量中。切勿将其放入提示词、共享工作流、截图或 Git 提交中。如果身份验证失败,请先检查复制的完整值、应用/服务访问权限、有效期、使用限制和余额,再创建其他密钥。
固定的 Bearer 标头会绕过 OAuth。如果标头无效,请先移除它,再尝试通过浏览器登录;请妥善保管已保存的凭据。
对于 Claude Code,添加服务时,Shell 会展开令牌;请将已保存的用户 MCP 配置视为机密:
export ACEDATACLOUD_API_TOKEN='YOUR_API_TOKEN'
claude mcp add --transport http --scope user serp https://serp.mcp.acedata.cloud/mcp \
--header "Authorization: Bearer $ACEDATACLOUD_API_TOKEN"
对于 Claude Code 项目配置,请在 <project>/.mcp.json 中放入变量引用,并在启动 Claude Code 的环境中设置该变量:
{
"mcpServers": {
"serp": {
"type": "http",
"url": "https://serp.mcp.acedata.cloud/mcp",
"headers": {"Authorization": "Bearer ${ACEDATACLOUD_API_TOKEN}"}
}
}
}
Cursor 在 ~/.cursor/mcp.json 或未提交的项目配置中使用不同的环境变量语法:
{
"mcpServers": {
"serp": {
"url": "https://serp.mcp.acedata.cloud/mcp",
"headers": {"Authorization": "Bearer ${env:ACEDATACLOUD_API_TOKEN}"}
}
}
}
在 VS Code 中,运行 MCP: Open User Configuration,并合并此服务及其掩码输入;${input:...} 适用于 VS Code 的用户/工作区格式,不能移植到 Agent Host 的 .mcp.json 格式:
{
"inputs": [
{"id": "acedata-serp-token", "type": "promptString", "description": "AceDataCloud API token", "password": true}
],
"servers": {
"serp": {
"type": "http",
"url": "https://serp.mcp.acedata.cloud/mcp",
"headers": {"Authorization": "Bearer ${input:acedata-serp-token}"}
}
}
}
对于 Cline,请使用其 MCP 配置界面或 CLI 文件 ~/.cline/data/settings/cline_mcp_settings.json;其远程传输值为 streamableHttp。对于 JetBrains AI Assistant,请从 Settings → Tools → AI Assistant → Model Context Protocol (MCP) 添加远程 URL。对于 Zed,OAuth 场景下请使用仅包含 URL 的 context_servers 条目,或添加本地 Bearer 标头。这些客户端的配置架构各不相同;请遵循其当前界面,而不要复制其他客户端的 JSON。Cline · JetBrains · Zed。
本地 stdio
安装软件包,并为本地进程提供 API 令牌:
python -m pip install mcp-serp
export ACEDATACLOUD_API_TOKEN='YOUR_API_TOKEN'
mcp-serp
对于 Claude Desktop 本地 MCP,请将此条目合并到其开发者设置打开的文件中(macOS 上为 ~/Library/Application Support/Claude/claude_desktop_config.json)。uvx 需要在 PATH 中安装 uv:
{
"mcpServers": {
"serp": {
"command": "uvx",
"args": ["mcp-serp"],
"env": {"ACEDATACLOUD_API_TOKEN": "YOUR_API_TOKEN"}
}
}
}
请妥善保管此用户级文件。可自托管的 HTTP 使用 mcp-serp --transport http --port 8000;仅在具备适当网络和 TLS 控制措施的情况下对外开放。本地执行仍会调用 AceDataCloud API。
使用服务前的检查
https://serp.mcp.acedata.cloud/health返回{"status":"ok"}仅表示端点可访问。- 确认 MCP 客户端已加载工具。
serp_list_search_types和serp_get_usage_guide是本地参考工具,不会产生搜索 API 费用;它们无法验证下游 API 访问情况或余额。搜索工具为只读工具,但会消耗 Credits,重复搜索可能再次产生费用。 - 如果需要完整的 API 检查,请先查看当前服务文档和显示的定价,然后使用你自己的有效输入调用
serp_google_search。
如果遇到 401,请检查客户端使用了哪种身份验证方式,以及令牌或 OAuth 会话是否有效。403 可能表示账户权限问题或内容审核失败;请查看返回的错误信息。余额不足和下游服务故障需要分别排查。工具已列出或任务已提交,并不代表已成功获得结果。
可用工具
搜索工具
| 工具 | 描述 |
|---|---|
serp_google_search | 提供全部选项的灵活 Google 搜索 |
serp_google_images | 搜索图片 |
serp_google_news | 搜索新闻文章 |
serp_google_videos | 搜索视频 |
serp_google_places | 搜索本地地点/商家 |
serp_google_maps | 搜索地图位置 |
信息工具
| 工具 | 描述 |
|---|---|
serp_list_search_types | 列出可用的搜索类型 |
serp_list_countries | 列出用于本地化的国家/地区代码 |
serp_list_languages | 列出用于本地化的语言代码 |
serp_list_time_ranges | 列出时间范围筛选选项 |
serp_get_usage_guide | 获取完整的使用指南 |
使用示例
基本网页搜索
User: Search for information about artificial intelligence
Claude: I'll search for information about AI.
[Calls serp_google_search with query="artificial intelligence"]
按时间范围筛选的新闻搜索
User: What's the latest news about technology?
Claude: I'll search for recent tech news.
[Calls serp_google_news with query="technology", time_range="qdr:d"]
本地化搜索
User: Find popular restaurants in Tokyo
Claude: I'll search for restaurants in Tokyo.
[Calls serp_google_places with query="popular restaurants Tokyo", country="jp"]
图片搜索
User: Find images of the Northern Lights
Claude: I'll search for aurora borealis images.
[Calls serp_google_images with query="Northern Lights aurora borealis"]
搜索参数
搜索类型
| 类型 | 描述 |
|---|---|
search | 常规网页搜索(默认) |
images | 图片搜索 |
news | 新闻文章 |
maps | 地图结果 |
places | 本地商家 |
videos | 视频结果 |
时间范围筛选
| 代码 | 时间范围 |
|---|---|
h | 过去 1 小时 |
qdr:h | 过去 1 小时 |
d | 过去 1 天 |
qdr:d | 过去 1 天 |
w | 过去 1 周 |
qdr:w | 过去 1 周 |
m | 过去 1 个月 |
qdr:m | 过去 1 个月 |
y | 过去 1 年 |
qdr:y | 过去 1 年 |
图片尺寸筛选(适用于 images 搜索类型)
large、medium、icon、2mp、4mp、6mp、8mp、10mp、12mp、15mp、20mp、40mp、70mp
常见国家/地区代码
| 代码 | 国家/地区 |
|---|---|
us | 美国 |
uk | 英国 |
cn | 中国 |
jp | 日本 |
de | 德国 |
fr | 法国 |
常见语言代码
| 代码 | 语言 |
|---|---|
en | 英语 |
zh-cn | 简体中文 |
ja | 日语 |
es | 西班牙语 |
fr | 法语 |
de | 德语 |
响应结构
常规搜索结果
- knowledge_graph:实体信息(公司、人物等)
- answer_box:直接答案
- organic:常规搜索结果,包含标题、链接和摘要
- people_also_ask:相关问题
- related_searches:相关查询
图片搜索结果
- images:包含 URL 和缩略图的图片结果
新闻搜索结果
- news:包含来源和日期的新闻文章
配置
环境变量
| 变量 | 描述 | 默认值 |
|---|---|---|
ACEDATACLOUD_API_TOKEN | 来自 AceDataCloud 的 API 令牌 | 必填 |
ACEDATACLOUD_API_BASE_URL | API 基础 URL | https://api.acedata.cloud |
ACEDATACLOUD_OAUTH_CLIENT_ID | OAuth 客户端 ID(托管模式) | — |
ACEDATACLOUD_PLATFORM_BASE_URL | 平台基础 URL | https://platform.acedata.cloud |
SERP_REQUEST_TIMEOUT | 请求超时时间(秒) | 30 |
LOG_LEVEL | 日志级别 | INFO |
命令行选项
mcp-serp --help
Options:
--version Show version
--transport Transport mode: stdio (default) or http
--port Port for HTTP transport (default: 8000)
开发
设置开发环境
# Clone repository
git clone https://github.com/AceDataCloud/SerpMCP.git
cd SerpMCP
# Create virtual environment
python -m venv .venv
source .venv/bin/activate # or `.venv\Scripts\activate` on Windows
# Install with dev dependencies
pip install -e ".[dev,test]"
运行测试
# Run unit tests
pytest
# Run with coverage
pytest --cov=core --cov=tools
# Run integration tests (requires API token)
pytest tests/test_integration.py -m integration
代码质量
# Format code
ruff format .
# Lint code
ruff check .
# Type check
mypy core tools
构建与发布
# Install build dependencies
pip install -e ".[release]"
# Build package
python -m build
# Upload to PyPI
twine upload dist/*
项目结构
SerpMCP/
├── core/ # Core modules
│ ├── __init__.py
│ ├── client.py # HTTP client for SERP API
│ ├── config.py # Configuration management
│ ├── exceptions.py # Custom exceptions
│ └── server.py # MCP server initialization
├── tools/ # MCP tool definitions
│ ├── __init__.py
│ ├── search_tools.py # Search tools
│ └── info_tools.py # Information tools
├── prompts/ # MCP prompt templates
│ └── __init__.py
├── tests/ # Test suite
│ ├── conftest.py
│ ├── test_client.py
│ └── test_config.py
├── deploy/ # Deployment configs
│ └── production/
│ ├── deployment.yaml
│ ├── ingress.yaml
│ └── service.yaml
├── .env.example # Environment template
├── .gitignore
├── CHANGELOG.md
├── Dockerfile # Docker image for HTTP mode
├── docker-compose.yaml # Docker Compose config
├── LICENSE
├── main.py # Entry point
├── pyproject.toml # Project configuration
└── README.md
API 参考
此服务封装了 AceDataCloud Google SERP API:
贡献
欢迎贡献!请:
- Fork 此仓库
- 创建功能分支(
git checkout -b feature/amazing) - 提交更改(
git commit -m 'Add amazing feature') - 推送到该分支(
git push origin feature/amazing) - 创建 Pull Request
文档
许可证
MIT 许可证 - 详情请参阅 LICENSE。
链接
由 AceDataCloud 倾情打造
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。