使用说明
深度研究MCP
📚 概述
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 <repository-url> 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密钥
- 使用指数回退重试
📝 许可证
国际协调委员会