深度研究MCP
  ](https://nodejs.org/)
📚 概述
DeepResearch MCP是一个基于模型上下文协议(MCP)的强大研究助手。它通过网络搜索、分析和全面的报告生成,对任何主题进行智能、迭代的研究。
🌟 主要特点
- 智能主题探索 -自动识别知识差距并生成重点搜索查询
- 全面内容提取 -通过改进内容组织来增强网络抓取
- 结构化知识处理 -在管理令牌使用的同时保留重要信息
- 学术报告生成 -创建详细、结构良好的报告,包括执行摘要、分析和可视化
- 完整参考书目 -正确引用所有带有编号参考的来源
- 自适应内容管理 -自动管理内容以保持在令牌限制范围内
- 差错恢复 -无法完全处理时,从错误中恢复并生成部分报告
🛠️ 建筑
┌────────────────────┐ ┌─────────────────┐ ┌────────────────┐
│ │ │ │ │ │
│ MCP Server Layer ├────►│ Research Service├────►│ Search Service │
│ (Tools & Prompts) │ │ (Session Mgmt) │ │ (Firecrawl) │
│ │ │ │ │ │
└────────────────────┘ └─────────┬───────┘ └────────────────┘
│
▼
┌─────────────────┐
│ │
│ OpenAI Service │
│ (Analysis/Rpt) │
│ │
└─────────────────┘💻 安装
先决条件
- Node.js 18或更高版本
- OpenAI API密钥
- Firecrawl API密钥
设置步骤
- 克隆存储库
git clone
cd deep-research-mcp- 安装依赖项
npm install- 配置环境变量
cp .env.example .env编辑 .env 文件并添加您的API密钥:
OPENAI_API_KEY=sk-your-openai-api-key
FIRECRAWL_API_KEY=your-firecrawl-api-key- 构建项目
npm run build🚀 用法
运行MCP服务器
在stdio上启动服务器以进行MCP客户端连接:
npm start使用示例客户端
以指定的深度对特定主题进行研究:
npm run client "Your research topic" 3参数:
- 第一个论点:研究主题或疑问
- 第二个参数:研究深度(迭代次数,默认值:2)
- 第三个论点(可选):“完成”使用完整的研究工具(一步式过程)
例子:
npm run client "the impact of climate change on coral reefs" 3 complete输出示例
DeepResearch MCP将发布一份全面的报告,其中包括:
- 执行摘要 -研究结果概述
- 引言 -研究主题的背景和重要性
- 方法论 -研究方法说明
- 综合分析 -对该主题的深入探讨
- 比较分析 -关键方面的视觉比较
- 讨论 -对调查结果和影响的解释
- 局限性 -研究中的制约因素和差距
- 结论 -最终见解和建议
- 参考文献 -带有URL的完整来源列表
🔧 MCP集成
可用MCP资源
| 资源路径 | 描述 |
|---|---|
research://state/{sessionId} | 访问研究会话的当前状态 |
research://findings/{sessionId} | 访问会议收集的调查结果 |
可用的MCP工具
| 工具名称 | 描述 | 参数 |
|---|---|---|
initialize-research | 开始新的研究会议 | query:字符串, depth:编号 |
execute-research-step | 执行下一个研究步骤 | sessionId:string |
generate-report | 创建最终报告 | sessionId:字符串, timeout:数字(可选) |
complete-research | 执行整个研究过程 | query:字符串, depth:编号, timeout:数字(可选) |
🖥️ Claude桌面集成
DeepResearch MCP可以与Claude Desktop集成,为Claude提供直接的研究能力。
配置步骤
- 复制示例配置
cp claude_desktop_config_sample.json ~/path/to/claude/desktop/config/directory/claude_desktop_config.json- 编辑配置文件
更新路径以指向深度搜索-mcp的安装并添加API密钥:
{
"mcpServers": {
"deep-research": {
"command": "node",
"args": [
"/absolute/path/to/your/deep-research-mcp/dist/index.js"
],
"env": {
"FIRECRAWL_API_KEY": "your-firecrawler-api-key",
"OPENAI_API_KEY": "your-openai-api-key"
}
}
}
}- 重新启动克劳德桌面
保存配置后,重新启动Claude Desktop以使更改生效。
- 与Claude Desktop一起使用
现在,您可以要求Claude使用以下命令进行研究:
Can you research the impact of climate change on coral reefs and provide a detailed report?📋 客户代码示例
import { Client } from "@modelcontextprotocol/sdk/client/index.js";
import { StdioClientTransport } from "@modelcontextprotocol/sdk/client/stdio.js";
async function main() {
// Connect to the server
const transport = new StdioClientTransport({
command: "node",
args: ["dist/index.js"]
});
const client = new Client({ name: "deep-research-client", version: "1.0.0" });
await client.connect(transport);
// Initialize research
const initResult = await client.callTool({
name: "initialize-research",
arguments: {
query: "The impact of artificial intelligence on healthcare",
depth: 3
}
});
// Parse the response to get sessionId
const { sessionId } = JSON.parse(initResult.content[0].text);
// Execute steps until complete
let currentDepth = 0;
while (currentDepth < 3) {
const stepResult = await client.callTool({
name: "execute-research-step",
arguments: { sessionId }
});
const stepInfo = JSON.parse(stepResult.content[0].text);
currentDepth = stepInfo.currentDepth;
console.log(`Completed step ${stepInfo.currentDepth}/${stepInfo.maxDepth}`);
}
// Generate final report with timeout
const report = await client.callTool({
name: "generate-report",
arguments: {
sessionId,
timeout: 180000 // 3 minutes timeout
}
});
console.log("Final Report:");
console.log(report.content[0].text);
}
main().catch(console.error);🔍 故障排除
常见问题
- 超过令牌限制:对于非常大的研究主题,您可能会遇到OpenAI令牌限制错误。尝试:
- 减少研究深度 - 使用更具体的查询 - 将复杂主题分解为更小的子主题
- 超时错误:对于复杂的研究,该过程可能会超时。解决:
- 增加工具调用中的超时参数 - 使用 complete-research 超时时间更长的工具 - 小块过程研究
- API费率限制:如果您遇到OpenAI或Firecrawl的速率限制错误:
- 在研究步骤之间实施延迟 - 使用具有更高速率限制的API密钥 - 使用指数回退重试
📝 许可证
国际协调委员会
