概述
安装
内容详情
替代品
什么是Google Researcher MCP Server?
这是一个Model Context Protocol (MCP)服务器,专门为AI助手(如Claude、GPT等)提供强大的网络研究能力。它允许AI助手像人类研究员一样搜索信息、阅读网页内容、分析文档,并将这些信息整合到对话中。如何使用Google Researcher MCP Server?
安装配置后,AI助手可以直接调用各种研究工具。例如,你可以让助手'搜索最新的AI法规新闻',它会自动使用google_news_search工具获取最新信息。整个过程对用户透明,AI助手会智能选择最适合的工具完成任务。适用场景
适合需要实时信息、多源验证、深度研究的场景。比如学术研究、市场分析、新闻摘要、技术文档编写、竞争情报收集等。无论是快速查证事实还是进行系统性的文献综述,这个工具都能大幅提升AI助手的信息获取能力。主要功能
如何使用
使用案例
常见问题
相关资源
安装
{
"mcpServers": {
"google-researcher": {
"command": "npx",
"args": ["-y", "google-researcher-mcp"],
"env": {
"GOOGLE_CUSTOM_SEARCH_API_KEY": "YOUR_API_KEY_HERE",
"GOOGLE_CUSTOM_SEARCH_ID": "YOUR_SEARCH_ID_HERE"
}
}
}
}
{
"mcpServers": {
"google-researcher": {
"command": "docker",
"args": ["run", "-i", "--rm", "--env-file", "/path/to/.env", "google-researcher-mcp"]
}
}
}🚀 Google Researcher MCP Server
这是一款专业的AI助手研究工具,支持谷歌搜索、网页抓取、学术论文搜索、专利搜索等功能,为AI研究和应用提供强大支持。
🚀 快速开始
Claude Desktop (macOS)
在 ~/Library/Application Support/Claude/claude_desktop_config.json 中添加以下内容:
{
"mcpServers": {
"google-researcher": {
"command": "npx",
"args": ["-y", "google-researcher-mcp"],
"env": {
"GOOGLE_CUSTOM_SEARCH_API_KEY": "YOUR_API_KEY_HERE",
"GOOGLE_CUSTOM_SEARCH_ID": "YOUR_SEARCH_ID_HERE"
}
}
}
}
Claude Desktop (Windows)
在 %APPDATA%\Claude\claude_desktop_config.json 中添加以下内容:
{
"mcpServers": {
"google-researcher": {
"command": "npx",
"args": ["-y", "google-researcher-mcp"],
"env": {
"GOOGLE_CUSTOM_SEARCH_API_KEY": "YOUR_API_KEY_HERE",
"GOOGLE_CUSTOM_SEARCH_ID": "YOUR_SEARCH_ID_HERE"
}
}
}
}
一键安装 (MCPB)
从 GitHub Releases 下载最新的 .mcpb 包,双击在 Claude Desktop 中安装。安装过程中会提示你输入谷歌 API 凭证。
Claude Code
在 ~/.claude.json 中添加以下内容:
{
"mcpServers": {
"google-researcher": {
"command": "npx",
"args": ["-y", "google-researcher-mcp"],
"env": {
"GOOGLE_CUSTOM_SEARCH_API_KEY": "YOUR_API_KEY_HERE",
"GOOGLE_CUSTOM_SEARCH_ID": "YOUR_SEARCH_ID_HERE"
}
}
}
}
Cline / Roo Code
在 MCP 设置中使用上述相同的 JSON 配置。
需要 API 密钥? 请参阅 API 设置指南,获取逐步指导以获取谷歌 API 凭证。
本地开发
git clone https://github.com/zoharbabin/google-researcher-mcp.git && cd google-researcher-mcp
npm install && npx playwright install chromium
cp .env.example .env # 然后将你的谷歌 API 密钥添加到 .env 文件中
npm run dev # 服务器现在以 STDIO 传输模式运行
注意:这将以 STDIO 模式启动服务器,这对于本地 AI 助手集成已经足够。基于 Web 或多客户端设置才需要使用带有 OAuth 的 HTTP 传输模式 — 请参阅 选择传输模式。
验证是否正常工作
配置完成后,向你的 AI 助手提问:
"搜索关于 AI 法规的最新新闻"
助手将使用 google_news_search 工具并返回当前的文章。如果你看到搜索结果,则表示服务器正常工作。
✨ 主要特性
核心功能
| 特性 | 描述 |
|---|---|
| 网页抓取 | 快速抓取静态 HTML 页面,并自动使用 Playwright 处理 JavaScript 渲染的页面 |
| YouTube 字幕提取 | 强大的提取功能,带有重试逻辑和 10 种分类错误类型 |
| 文档解析 | 自动检测并从 PDF、DOCX、PPTX 文档中提取文本 |
| 质量评分 | 根据相关性(35%)、新鲜度(20%)、权威性(25%)和内容质量(20%)对来源进行排名 |
MCP 协议支持
| 特性 | 描述 |
|---|---|
| 工具 | 提供 8 种工具:search_and_scrape、google_search、google_image_search、google_news_search、scrape_page、sequential_search、academic_search、patent_search |
| 资源 | 暴露服务器状态:stats://tools(每个工具的指标)、stats://cache、search://recent、config://server |
| 提示模板 | 预构建的模板:comprehensive-research、fact-check、summarize-url、news-briefing |
| 注释 | 为内容添加受众、优先级和时间戳标签 |
生产就绪
| 特性 | 描述 |
|---|---|
| 缓存 | 两层(内存 + 磁盘)缓存,每个工具都有独立的命名空间,可降低 API 成本 |
| 双传输模式 | 本地客户端使用 STDIO 模式,Web 应用使用 HTTP+SSE 模式 |
| 安全 | 支持 OAuth 2.1,提供 SSRF 保护和细粒度的作用域控制 |
| 弹性 | 具备断路器、超时和优雅降级功能 |
| 监控 | 提供管理端点,用于查看缓存统计信息、事件存储和健康检查 |
详细文档请参考:YouTube 字幕提取 · 架构 · 测试
📦 安装指南
前提条件
- Node.js 版本 20.0.0 或更高
- 谷歌 API 密钥:
- Chromium(用于 JavaScript 渲染):通过
npx playwright install chromium自动安装 - OAuth 2.1 提供商(仅 HTTP 传输模式需要):一个外部授权服务器(如 Auth0、Okta),用于颁发 JWT。STDIO 模式不需要。
安装与设置
-
克隆仓库:
git clone https://github.com/zoharbabin/google-researcher-mcp.git cd google-researcher-mcp -
安装依赖:
npm install npx playwright install chromium -
配置环境变量:
cp .env.example .env打开
.env文件,添加你的谷歌 API 密钥。其他变量都是可选的 — 请参阅.env.example文件中的注释以获取详细说明。
运行服务器
-
开发模式(文件更改时自动重新加载):
npm run dev -
生产模式:
npm run build npm start
使用 Docker 运行
# 构建镜像
docker build -t google-researcher-mcp .
# 以 STDIO 模式运行(默认,适用于 MCP 客户端)
docker run -i --rm --env-file .env google-researcher-mcp
# 在端口 3000 上使用 HTTP 传输模式运行
# (MCP_TEST_MODE= 覆盖 Dockerfile 中的默认值 "stdio" 以启用 HTTP)
docker run -d --rm --env-file .env -e MCP_TEST_MODE= -p 3000:3000 google-researcher-mcp
使用 Docker Compose(快速设置 HTTP 传输模式):
cp .env.example .env # 填写你的 API 密钥
docker compose up --build
curl http://localhost:3000/health
在 Claude Code 中使用 Docker (~/.claude/claude_desktop_config.json):
{
"mcpServers": {
"google-researcher": {
"command": "docker",
"args": ["run", "-i", "--rm", "--env-file", "/path/to/.env", "google-researcher-mcp"]
}
}
}
安全注意事项:切勿将机密信息硬编码到 Docker 镜像中。始终在运行时通过 --env-file 或 -e 标志传递。
💻 使用示例
为 AI 助手(大语言模型)提供的使用示例
推荐工具选择
| 任务 | 使用工具 |
|---|---|
| 研究某个主题、回答问题 | search_and_scrape — 一次调用即可完成搜索和内容检索(推荐) |
| 复杂的多步骤调查 | sequential_search — 跟踪 3 次以上搜索的进度,支持分支搜索 |
| 查找学术论文 | academic_search — 在 arXiv、PubMed、IEEE 等平台搜索论文,并提供引用(APA、MLA、BibTeX) |
| 搜索专利 | patent_search — 在谷歌专利数据库中进行现有技术搜索、自由实施分析 |
| 查找近期新闻 | google_news_search — 支持新鲜度过滤和日期排序 |
| 查找图片 | google_image_search — 支持大小、类型、颜色过滤 |
| 仅获取 URL 列表 | google_search — 当你只需要 URL 而自己处理页面时使用 |
| 读取特定 URL 的内容 | scrape_page — 还可以提取 YouTube 字幕并解析 PDF/DOCX/PPTX 文档 |
工具调用示例
// 研究某个主题(大多数查询推荐使用)
{ "name": "search_and_scrape", "arguments": { "query": "2024 年气候变化的影响", "num_results": 5 } }
// 带跟踪的多步骤研究(用于复杂调查)
{ "name": "sequential_search", "arguments": { "searchStep": "开始研究量子计算", "stepNumber": 1, "totalStepsEstimate": 4, "nextStepNeeded": true } }
// 查找学术论文(带引用的同行评审来源)
{ "name": "academic_search", "arguments": { "query": "Transformer 神经网络", "num_results": 5 } }
// 搜索专利(现有技术、自由实施分析)
{ "name": "patent_search", "arguments": { "query": "机器学习优化", "search_type": "prior_art" } }
// 获取近期新闻
{ "name": "google_news_search", "arguments": { "query": "AI 法规", "freshness": "week" } }
// 查找图片
{ "name": "google_image_search", "arguments": { "query": "太阳能电池板安装", "type": "photo" } }
// 读取特定页面
{ "name": "scrape_page", "arguments": { "url": "https://example.com/article" } }
// 获取 YouTube 字幕
{ "name": "scrape_page", "arguments": { "url": "https://www.youtube.com/watch?v=VIDEO_ID" } }
客户端集成示例
STDIO 客户端(本地进程)
import { Client } from "@modelcontextprotocol/sdk/client/index.js";
import { StdioClientTransport } from "@modelcontextprotocol/sdk/client/stdio.js";
const transport = new StdioClientTransport({
command: "node",
args: ["dist/server.js"]
});
const client = new Client({ name: "my-client" });
await client.connect(transport);
// 搜索谷歌
const searchResult = await client.callTool({
name: "google_search",
arguments: { query: "Model Context Protocol" }
});
console.log(searchResult.content[0].text);
// 提取 YouTube 字幕
const transcript = await client.callTool({
name: "scrape_page",
arguments: { url: "https://www.youtube.com/watch?v=dQw4w9WgXcQ" }
});
console.log(transcript.content[0].text);
HTTP+SSE 客户端(Web 应用)
需要从配置的授权服务器获取有效的 OAuth 2.1 承载令牌。
import { Client } from "@modelcontextprotocol/sdk/client/index.js";
import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js";
const transport = new StreamableHTTPClientTransport(
new URL("http://localhost:3000/mcp"),
{
getAuthorization: async () => `Bearer YOUR_ACCESS_TOKEN`
}
);
const client = new Client({ name: "my-client" });
await client.connect(transport);
const result = await client.callTool({
name: "search_and_scrape",
arguments: { query: "Model Context Protocol", num_results: 3 }
});
console.log(result.content[0].text);
📚 详细文档
可用工具
何时使用每个工具
| 工具 | 最适用场景 | 使用时机 |
|---|---|---|
search_and_scrape |
研究(推荐) | 你需要使用网络资源回答问题时。最有效 — 一次调用即可完成搜索和内容检索。对来源进行质量评分 |
sequential_search |
复杂调查 | 需要进行 3 次以上不同角度的搜索,或者可能提前放弃的研究。跟踪进度,支持分支搜索。你负责推理,工具负责跟踪状态 |
academic_search |
同行评审论文 | 需要权威学术来源的研究。返回带引用(APA、MLA、BibTeX)、摘要和 PDF 链接的论文 |
patent_search |
专利研究 | 现有技术搜索、自由实施分析、专利布局。返回带专利号、受让人、发明人及 PDF 链接的专利 |
google_search |
仅查找 URL | 你只需要 URL 列表(不需要内容),或者想使用自定义逻辑自己处理页面时 |
google_image_search |
查找图片 | 你需要视觉内容 — 照片、插图、图形。文本研究请使用 search_and_scrape |
google_news_search |
当前新闻 | 你需要近期新闻文章。使用 scrape_page 读取结果中的完整文章 |
scrape_page |
读取特定 URL 的内容 | 你有一个 URL 并需要其内容。自动处理 YouTube 字幕和文档(PDF、DOCX、PPTX) |
工具参考
search_and_scrape(研究推荐工具)
一次调用即可搜索谷歌并从搜索结果中获取内容。返回经过质量评分、去重的文本,并标注来源。响应中包含大小元数据(estimatedTokens、sizeCategory、truncated)。
| 参数 | 类型 | 默认值 | 描述 |
|---|---|---|---|
query |
字符串 | 必需 | 搜索查询(1 - 500 个字符) |
num_results |
数字 | 3 | 结果数量(1 - 10) |
include_sources |
布尔值 | true | 是否附加来源 URL |
deduplicate |
布尔值 | true | 是否去除重复内容 |
max_length_per_source |
数字 | 50KB | 每个来源的最大内容长度(字符数) |
total_max_length |
数字 | 300KB | 所有来源的最大总内容长度(字符数) |
filter_by_query |
布尔值 | false | 是否仅过滤包含查询关键词的段落 |
google_search
返回谷歌搜索的排名 URL。当你只需要链接而不需要内容时使用。
| 参数 | 类型 | 默认值 | 描述 |
|---|---|---|---|
query |
字符串 | 必需 | 搜索查询(1 - 500 个字符) |
num_results |
数字 | 5 | 结果数量(1 - 10) |
time_range |
字符串 | - | day、week、month、year |
site_search |
字符串 | - | 限制搜索域名 |
exact_terms |
字符串 | - | 必需短语 |
exclude_terms |
字符串 | - | 排除的单词 |
google_image_search
使用过滤选项搜索谷歌图片。
| 参数 | 类型 | 默认值 | 描述 |
|---|---|---|---|
query |
字符串 | 必需 | 搜索查询(1 - 500 个字符) |
num_results |
数字 | 5 | 结果数量(1 - 10) |
size |
字符串 | - | huge、large、medium、small |
type |
字符串 | - | clipart、face、lineart、photo、animated |
color_type |
字符串 | - | color、gray、mono、trans |
file_type |
字符串 | - | jpg、gif、png、bmp、svg、webp |
google_news_search
使用新鲜度和日期排序搜索谷歌新闻。
| 参数 | 类型 | 默认值 | 描述 |
|---|---|---|---|
query |
字符串 | 必需 | 搜索查询(1 - 500 个字符) |
num_results |
数字 | 5 | 结果数量(1 - 10) |
freshness |
字符串 | week | hour、day、week、month、year |
sort_by |
字符串 | relevance | relevance、date |
news_source |
字符串 | - | 过滤到特定来源 |
scrape_page
从任何 URL 提取文本。自动检测:网页(静态/JS)、YouTube(字幕)、文档(PDF/DOCX/PPTX)。
| 参数 | 类型 | 默认值 | 描述 |
|---|---|---|---|
url |
字符串 | 必需 | 要抓取的 URL(最大 2048 个字符) |
max_length |
数字 | 50KB | 最大内容长度(字符数)。超过此长度的内容将在自然断点处截断 |
mode |
字符串 | full | full 返回内容,preview 仅返回元数据 + 结构(在获取内容之前检查大小很有用) |
sequential_search
跟踪多步骤研究状态。遵循 sequential_thinking 模式:你负责推理,工具负责跟踪状态。
| 参数 | 类型 | 默认值 | 描述 |
|---|---|---|---|
searchStep |
字符串 | 必需 | 当前步骤的描述(1 - 2000 个字符) |
stepNumber |
数字 | 必需 | 当前步骤编号(从 1 开始) |
totalStepsEstimate |
数字 | 5 | 估计的总步骤数(1 - 50) |
nextStepNeeded |
布尔值 | 必需 | 是否需要更多步骤,完成时为 false |
source |
对象 | - | 找到的来源:{ url, summary, qualityScore? } |
knowledgeGap |
字符串 | - | 识别出的知识差距 — 仍缺少的内容 |
isRevision |
布尔值 | - | 是否正在修订上一步 |
revisesStep |
数字 | - | 正在修订的步骤编号 |
branchId |
字符串 | - | 分支研究的标识符 |
academic_search
通过谷歌自定义搜索 API 搜索学术论文,过滤到学术来源(arXiv、PubMed、IEEE、Nature、Springer 等)。返回带预格式化引用的论文。
| 参数 | 类型 | 默认值 | 描述 |
|---|---|---|---|
query |
字符串 | 必需 | 搜索查询(1 - 500 个字符) |
num_results |
数字 | 5 | 论文数量(1 - 10) |
year_from |
数字 | - | 按最小出版年份过滤 |
year_to |
数字 | - | 按最大出版年份过滤 |
source |
字符串 | all | all、arxiv、pubmed、ieee、nature、springer |
pdf_only |
布尔值 | false | 是否仅返回带有 PDF 链接的结果 |
sort_by |
字符串 | relevance | relevance、date |
patent_search
在谷歌专利数据库中进行现有技术搜索、自由实施分析和专利布局。返回带专利号、受让人、发明人及 PDF 链接的专利。
| 参数 | 类型 | 默认值 | 描述 |
|---|---|---|---|
query |
字符串 | 必需 | 搜索查询(1 - 500 个字符) |
num_results |
数字 | 5 | 结果数量(1 - 10) |
search_type |
字符串 | prior_art | prior_art、specific、landscape |
patent_office |
字符串 | all | all、US、EP、WO、JP、CN、KR |
assignee |
字符串 | - | 按受让人/公司过滤 |
inventor |
字符串 | - | 按发明人姓名过滤 |
cpc_code |
字符串 | - | 按 CPC 分类代码过滤 |
year_from |
数字 | - | 按最小年份过滤 |
year_to |
数字 | - | 按最大年份过滤 |
系统架构
graph TD
A[MCP Client] -->|local process| B[STDIO Transport]
A -->|network| C[HTTP+SSE Transport]
C --> L[OAuth 2.1 + Rate Limiter]
L --> D
C -.->|session replay| K[Event Store]
B --> D[McpServer<br>MCP SDK routing + dispatch]
D --> F[google_search]
D --> G[scrape_page]
D --> I[search_and_scrape]
D --> IMG[google_image_search]
D --> NEWS[google_news_search]
I -.->|delegates| F
I -.->|delegates| G
I --> Q[Quality Scoring]
G --> N[SSRF Validator]
N --> S1[CheerioCrawler<br>static HTML]
S1 -.->|insufficient content| S2[Playwright<br>JS rendering]
G --> YT[YouTube Transcript<br>Extractor]
F & G & IMG & NEWS --> J[Persistent Cache<br>memory + disk]
D -.-> R[MCP Resources]
D -.-> P[MCP Prompts]
style J fill:#f9f,stroke:#333,stroke-width:2px
style K fill:#ccf,stroke:#333,stroke-width:2px
style L fill:#f99,stroke:#333,stroke-width:2px
style N fill:#ff9,stroke:#333,stroke-width:2px
style Q fill:#9f9,stroke:#333,stroke-width:2px
详细解释请参阅 架构指南。
使用说明
选择传输模式
| STDIO | HTTP+SSE | |
|---|---|---|
| 最适用场景 | 本地 MCP 客户端(Claude Code、Cline、Roo Code) | Web 应用、多客户端设置、远程访问 |
| 认证 | 无需认证(进程级隔离) | 需要 OAuth 2.1 承载令牌 |
| 设置 | 零配置 — 只需提供 API 密钥 | 需要 OAuth 提供商(Auth0、Okta 等) |
| 扩展 | 每个客户端进程一个服务器 | 单个服务器,支持多个并发客户端 |
建议:本地 AI 助手集成使用 STDIO 模式。仅在需要共享服务或 Web 应用集成时使用 HTTP+SSE 模式。
管理 API
管理和监控端点(仅 HTTP 传输模式可用):
| 方法 | 端点 | 描述 | 认证 |
|---|---|---|---|
GET |
/health |
服务器健康检查(状态、版本、正常运行时间) | 公开 |
GET |
/version |
服务器版本和运行时信息 | 公开 |
GET |
/mcp/cache-stats |
缓存性能统计信息 | mcp:admin:cache:read |
GET |
/mcp/event-store-stats |
事件存储使用统计信息 | mcp:admin:event-store:read |
POST |
/mcp/cache-invalidate |
清除特定缓存条目 | mcp:admin:cache:invalidate |
POST |
/mcp/cache-persist |
强制将缓存保存到磁盘 | mcp:admin:cache:persist |
GET |
/mcp/oauth-config |
当前 OAuth 配置 | mcp:admin:config:read |
GET |
/mcp/oauth-scopes |
OAuth 作用域文档 | 公开 |
GET |
/mcp/oauth-token-info |
令牌详细信息 | 已认证 |
MCP 资源
服务器通过 MCP 资源协议 暴露状态。使用 resources/list 发现可用资源,使用 resources/read 检索资源。
| URI | 描述 |
|---|---|
search://recent |
最近 20 次搜索查询,包含时间戳和结果数量 |
config://server |
服务器配置(版本、启动时间、传输模式) |
stats://cache |
缓存统计信息(命中率、条目数量、内存使用情况) |
stats://events |
事件存储统计信息(事件数量、存储大小) |
示例(使用 MCP SDK):
const resources = await client.listResources();
const recentSearches = await client.readResource({ uri: "search://recent" });
MCP 提示模板
通过 MCP 提示模板协议 提供预构建的研究工作流模板。使用 prompts/list 发现提示模板,使用 prompts/get 检索带有参数的提示模板。
基础研究提示模板
| 提示模板 | 参数 | 描述 |
|---|---|---|
comprehensive-research |
topic、depth(quick/standard/deep) |
对某个主题进行多源研究 |
fact-check |
claim、sources(数量) |
根据多个来源验证一个声明 |
summarize-url |
url、format(brief/detailed/bullets) |
总结单个 URL 的内容 |
news-briefing |
topic、timeRange(day/week/month) |
获取某个主题的当前新闻摘要 |
高级研究提示模板
| 提示模板 | 参数 | 描述 |
|---|---|---|
patent-portfolio-analysis |
company、includeSubsidiaries |
分析一家公司的专利持有情况 |
competitive-analysis |
entities(逗号分隔)、aspects |
比较公司/产品 |
literature-review |
topic、yearFrom、sources |
学术文献综合分析 |
technical-deep-dive |
technology、focusArea |
深入的技术调查 |
technical-deep-dive 的重点领域:architecture、implementation、comparison、best-practices、troubleshooting
示例(使用 MCP SDK):
const prompts = await client.listPrompts();
// 基础研究
const research = await client.getPrompt({
name: "comprehensive-research",
arguments: { topic: "量子计算", depth: "standard" }
});
// 高级:专利分析
const patents = await client.getPrompt({
name: "patent-portfolio-analysis",
arguments: { company: "Kaltura", includeSubsidiaries: true }
});
// 高级:竞争分析
const comparison = await client.getPrompt({
name: "competitive-analysis",
arguments: { entities: "React, Vue, Angular", aspects: "性能, 学习曲线, 生态系统" }
});
测试
| 脚本 | 描述 |
|---|---|
npm test |
运行所有单元/组件测试(Jest) |
npm run test:e2e |
完整的端到端测试套件(STDIO + HTTP + YouTube) |
npm run test:coverage |
生成代码覆盖率报告 |
npm run test:e2e:stdio |
仅测试 STDIO 传输模式的端到端测试 |
npm run test:e2e:sse |
仅测试 HTTP 传输模式的端到端测试 |
npm run test:e2e:youtube |
仅测试 YouTube 字幕提取的端到端测试 |
所有 NPM 脚本:
| 脚本 | 描述 |
|---|---|
npm start |
运行构建后的服务器(生产模式) |
npm run dev |
启动并开启实时重新加载(开发模式) |
npm run build |
将 TypeScript 编译到 dist/ 目录 |
npm run inspect |
打开 MCP Inspector 进行交互式调试 |
测试理念和结构请参阅 测试指南。
开发工具
MCP Inspector
MCP Inspector 是一个用于 MCP 服务器的可视化调试工具。使用它可以交互式测试工具、浏览资源和验证提示模板。
运行 Inspector:
npm run inspect
这将在浏览器中打开一个界面 http://localhost:5173,通过 STDIO 连接到服务器。
预期结果:
| 基本元素 | 数量 | 项目 |
|---|---|---|
| 工具 | 8 | google_search、google_image_search、google_news_search、scrape_page、search_and_scrape、sequential_search、academic_search、patent_search |
| 资源 | 6 | search://recent、config://server、stats://cache、stats://events、search://session/current、stats://resources |
| 提示模板 | 8 | comprehensive-research、fact-check、summarize-url、news-briefing、patent-portfolio-analysis、competitive-analysis、literature-review、technical-deep-dive |
解决 Inspector 问题:
- “找不到模块”错误:先运行
npm run build— Inspector 需要编译后的 JavaScript。 - 工具调用因 API 错误失败:确保
.env文件中设置了GOOGLE_CUSTOM_SEARCH_API_KEY和GOOGLE_CUSTOM_SEARCH_ID。 - 端口 5173 被占用:Inspector UI 在端口 5173 上运行。停止使用该端口的其他服务,或者检查是否有其他 Inspector 实例正在运行。
- 服务器启动时崩溃:检查所有依赖项是否已安装(
npm install),以及 Playwright 是否已设置(npx playwright install chromium)。
🔧 技术细节
安全
OAuth 2.1 授权
/mcp/ 下的所有 HTTP 端点(除公开文档外)都受 OAuth 2.1 保护:
- 令牌验证:JWT 会根据你的授权服务器的 JWKS 端点(
${OAUTH_ISSUER_URL}/.well-known/jwks.json)进行验证。 - 作用域强制:每个工具和管理操作都需要特定的 OAuth 作用域。
在 .env 文件中配置 OAUTH_ISSUER_URL 和 OAUTH_AUDIENCE。详细信息请参阅 .env.example 文件。
STDIO 用户:STDIO 传输模式不使用 OAuth。你可以跳过所有 OAuth 配置。
可用作用域
工具执行:
mcp:tool:google_search:executemcp:tool:google_image_search:executemcp:tool:google_news_search:executemcp:tool:scrape_page:executemcp:tool:search_and_scrape:execute
管理:
mcp:admin:cache:readmcp:admin:cache:invalidatemcp:admin:cache:persistmcp:admin:event-store:readmcp:admin:config:read
📄 许可证
本项目采用 MIT 许可证。详情请参阅 LICENSE 文件。
替代品













