多提供商深度研究MCP服务器
TypeScript MCP(模型上下文协议)服务器,可以将研究查询路由到OpenAI Deep research模型或DeepSeek推理模型,并为未来的提供者提供空间。
基于原创作品 fbettag/openai深度研究mcp -扩展以支持多个AI提供商。
特性
- 研究请求创建:跨提供商创建新的研究请求(OpenAI、DeepSeek等)
- 研究请求检查状态:检查任何提供程序的请求状态
- 研究请求结果:检索已完成的研究成果,并在提供引用时将Markdown转录本保存在本地以供参考
- 推理模型列表:使用常用/默认提示检查动态提供程序模型目录
- 推理_供应商列表:发现已配置的提供程序、凭据状态和相关环境密钥
安装
仅限技能(大多数用户)
只需复制技能文件夹-不需要仓库:
git clone https://github.com/YOUR_GITHUB/multi-deep-research-mcp.git
cp -r multi-deep-research-mcp/.claude/skills/deep-research ~/.claude/skills/
rm -rf multi-deep-research-mcp # Delete repo if you don't need CLI
export OPENAI_API_KEY="sk-proj-your-key"
export DEEPSEEK_API_KEY="sk-your-key"然后重新启动Claude Code并使用 /deep-research.
使用CLI(单线安装)
如果您还想使用CLI npx 命令:
curl -fsSL https://raw.githubusercontent.com/YOUR_GITHUB/multi-deep-research-mcp/main/scripts/install.sh | bash
export OPENAI_API_KEY="sk-proj-your-key"
export DEEPSEEK_API_KEY="sk-your-key"这使回购保持在 ~/.multi-deep-research-mcp 所以你可以运行:
cd ~/.multi-deep-research-mcp
npx multi-deep-research-cli research_request_create --query-file query.txt更多安装方法
看 安装.md 有关其他设置选项和故障排除。
CLI使用情况
CLI镜像MCP工具并将响应写入文件,因此提示保持简洁。为大型输入提供单独的文件。JSON仅用于 --parameters-file.
运行CLI
本地建造(之后 npm run build):
node dist/cli.js reasoning_providers_list --output ./outputs/providers.json
./dist/cli.js reasoning_providers_list --output ./outputs/providers.json随着 npx (已发布的包):
npx multi-deep-research-cli reasoning_providers_list --output ./outputs/providers.json通过此仓库 npx 不安装(需要 dist/cli.js):
npx --no-install ./dist/cli.js reasoning_providers_list --output ./outputs/providers.jsonMCP与CLI概述
每个CLI子命令直接映射到MCP工具,并返回相同的响应有效载荷(包装在MCP中 content 阵列)。
| MCP工具 | CLI命令 |
|---|---|
research_request_create | research_request_create |
research_request_check_status | research_request_check_status |
research_request_get_results | research_request_get_results |
reasoning_models_list | reasoning_models_list |
reasoning_providers_list | reasoning_providers_list |
输入参数和差异
research_request_create
| MCP参数 | CLI标志 | 注意事项 |
|---|---|---|
provider | --provider | 两者均可选择 |
model | --model | 两者均可选择 |
query | --query-file | CLI从文件读取纯文本 |
system_message | --system-message-file | CLI从文件读取纯文本 |
include_code_interpreter | --include-code-interpreter | CLI标志(布尔值) |
parameters | --parameters-file | CLI从文件中读取JSON对象 |
research_request_check_status / research_request_get_results
| MCP参数 | CLI标志 | 注意事项 |
|---|---|---|
request_id | --request-id | 两者都需要 |
provider | --provider | 两者均可选择 |
reasoning_models_list
| MCP参数 | CLI标志 | 注意事项 |
|---|---|---|
provider | --provider | 两者均可选择 |
reasoning_providers_list 没有输入参数。
CLI特定的输出处理:
--output将完整的MCP响应包装写入文件。- 没有
--output,CLI将MCP响应包装器打印到stdout。
multi-deep-research-cli research_request_create \
--query-file ./inputs/query.txt \
--system-message-file ./inputs/system.txt \
--parameters-file ./inputs/params.json \
--provider openai \
--model o4-mini \
--include-code-interpreter \
--output ./outputs/create.json创建研究报告(端到端)
- 创建请求
multi-deep-research-cli research_request_create \
--query-file ./inputs/query.txt \
--system-message-file ./inputs/system.txt \
--parameters-file ./inputs/params.json \
--provider openai \
--model o4-mini \
--output ./outputs/create.json- 检查状态(重复直到
completed)
multi-deep-research-cli research_request_check_status \
--request-id req_123 \
--output ./outputs/status.json- 获取结果(在响应中写入报告路径)
multi-deep-research-cli research_request_get_results \
--request-id req_123 \
--output ./outputs/results.jsonDeepSeek(同步示例)
DeepSeek同步完成,因此创建响应已经包含结果和保存的Markdown文件路径。
multi-deep-research-cli research_request_create \
--query-file ./inputs/query.txt \
--system-message-file ./inputs/system.txt \
--parameters-file ./inputs/params.json \
--provider deepseek \
--model deepseek-reasoner \
--output ./outputs/deepseek-create.json端到端脚本(DeepSeek)
#!/usr/bin/env bash
set -euo pipefail
QUERY_FILE="./inputs/query.txt"
SYSTEM_FILE="./inputs/system.txt"
PARAMS_FILE="./inputs/params.json"
OUTPUT_DIR="./outputs"
MODEL="deepseek-reasoner"
mkdir -p "${OUTPUT_DIR}"
multi-deep-research-cli research_request_create \
--query-file "${QUERY_FILE}" \
--system-message-file "${SYSTEM_FILE}" \
--parameters-file "${PARAMS_FILE}" \
--provider deepseek \
--model "${MODEL}" \
--output "${OUTPUT_DIR}/deepseek-create.json"端到端脚本(OpenAI轮询)
#!/usr/bin/env bash
set -euo pipefail
QUERY_FILE="./inputs/query.txt"
SYSTEM_FILE="./inputs/system.txt"
PARAMS_FILE="./inputs/params.json"
OUTPUT_DIR="./outputs"
MODEL="o4-mini"
mkdir -p "${OUTPUT_DIR}"
multi-deep-research-cli research_request_create \
--query-file "${QUERY_FILE}" \
--system-message-file "${SYSTEM_FILE}" \
--parameters-file "${PARAMS_FILE}" \
--model "${MODEL}" \
--output "${OUTPUT_DIR}/create.json"
REQUEST_ID=$(node -e "const fs=require('fs'); const res=JSON.parse(fs.readFileSync('${OUTPUT_DIR}/create.json','utf8')); const payload=JSON.parse(res.content[0].text); console.log(payload.request_id);")
while true; do
multi-deep-research-cli research_request_check_status \
--request-id "${REQUEST_ID}" \
--output "${OUTPUT_DIR}/status.json"
STATUS=$(node -e "const fs=require('fs'); const res=JSON.parse(fs.readFileSync('${OUTPUT_DIR}/status.json','utf8')); const payload=JSON.parse(res.content[0].text); console.log(payload.status);")
if [ "${STATUS}" = "completed" ]; then
break
fi
if [ "${STATUS}" = "failed" ]; then
echo "Request failed"
exit 1
fi
sleep 10
done
multi-deep-research-cli research_request_get_results \
--request-id "${REQUEST_ID}" \
--output "${OUTPUT_DIR}/results.json"多深度研究代理(单调用脚本)
此包装器在一次调用中运行整个工作流,在创建、状态和结果步骤中应用相同的输入。
脚本: scripts/multi_deep_research_cli_agent.sh
./scripts/multi_deep_research_cli_agent.sh \
--query-file ./inputs/query.txt \
--system-message-file ./inputs/system.txt \
--parameters-file ./inputs/params.json \
--provider openai \
--model o4-mini \
--output-dir ./outputs \
--poll-interval 10最小DeepSeek示例:
./scripts/multi_deep_research_cli_agent.sh \
--query-file ./inputs/query.txt \
--provider deepseek \
--model deepseek-reasoner笔记:
--query-file是必需的research_request_create.--system-message-file是可选的。--parameters-file必须是JSON,并且是可选的(所有其他输入都是纯文本文件)。--output将MCP响应对象写入指定文件。
其他命令:
multi-deep-research-cli research_request_check_status \
--request-id req_123 \
--output ./outputs/status.json
multi-deep-research-cli research_request_get_results \
--request-id req_123 \
--output ./outputs/results.json
multi-deep-research-cli reasoning_models_list \
--provider openai \
--output ./outputs/models.json
multi-deep-research-cli reasoning_providers_list \
--output ./outputs/providers.json使用Claude CLI快速设置
claude mcp add multi-deep-research -s user npx github:cbruyndoncx/multi-deep-research-mcp -e OPENAI_API_KEY=sk-your-openai-api-key-here替换 sk-your-openai-api-key-here 使用您的实际OpenAI API密钥。
Claude桌面设置(手动)
添加到您的Claude Desktop配置中:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json\ 视窗: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"multi-deep-research": {
"command": "npx",
"args": ["github:cbruyndoncx/multi-deep-research-mcp"],
"env": {
"OPENAI_API_KEY": "sk-your-openai-api-key-here"
}
}
}
}可用功能
创建研究请求
research_request_create({
provider?: "openai" | "deepseek",
model?: "o4-mini",
query: "Your research question",
system_message?: "Optional guidance",
include_code_interpreter?: false,
parameters?: {
temperature?: 0.3,
reasoning?: { summary: "auto" }
}
})返回请求标识符和初始状态。DeepSeek同步完成,因此报告和引用(以及保存的Markdown路径)都包含在此响应中。
检查状态
research_request_check_status({
request_id: "req_123...",
provider?: "deepseek" // optional when request was created in this session
})获取结果
research_request_get_results({
request_id: "req_123...",
provider?: "openai"
})检索已完成的结果,将报告和引用写入Markdown文件(默认目录 research-results/),并返回文件名,以便您可以在本地打开它。
列出推理模型
reasoning_models_list({ provider?: "deepseek" })返回提供程序目录,其中包含常用/默认环境键、参数描述和功能提示。
列出推理提供者
reasoning_providers_list({})返回每个配置的提供程序、凭据状态和用于设置收藏夹/默认值的env var键。
模型
- OpenAI:
o3-deep-research-2025-06-26,o4-mini-deep-research-2025-06-26,o4,o4-mini,o3,o1等等。(动态获取) - DeepSeek:
deepseek-reasoner,deepseek-r1(更多内容可以通过提供者注册表添加)
需求
- Node.js>=18.0.0
- 提供商凭据:
- OPENAI_API_KEY (OpenAI提供商需要) - DEEPSEEK_API_KEY (需要启用DeepSeek提供程序)
- 可选环境变量:
- REASONING_DEFAULT_PROVIDER:默认提供程序id(openai 默认情况下) - OPENAI_FAVORITE_MODELS, DEEPSEEK_FAVORITE_MODELS:逗号分隔的优先级列表 - OPENAI_DEFAULT_MODEL, DEEPSEEK_DEFAULT_MODEL:每个提供程序的默认模型 - LITELLM_MODEL_SOURCE:重写LiteLLM目录的URL(默认为官方GitHub JSON) - OPENAI_TIMEOUT, DEEPSEEK_TIMEOUT:请求超时(毫秒) - OPENAI_BASE_URL, DEEPSEEK_BASE_URL:自承载时覆盖API终结点 - RESEARCH_RESULTS_DIR:保存Markdown导出的目录(默认为 research-results/)
发展
npm install
npm run dev测试
- 构建一次,使服务器二进制文件存在:
npm run build. - 运行集成线束:
npm test. - 要手动调试LiteLLM目录,请运行
node --loader ts-node/esm scripts/test-litellm-catalog.ts(需要网络访问GitHub)。
该套件现在记录:
- 活动提供程序凭据/默认值和常用环境提示。
- 工具注册健全性检查。
reasoning_models_list确认供应商目录的覆盖范围暴露了模型/收藏夹。- 完整的OpenAI研究生命周期(创建→ 状态轮询→ 结果)当
OPENAI_API_KEY(或TEST_OPENAI_API_KEY)已设置。 - 当满足以下条件时,DeepSeek推理的完整生命周期(创建/状态/结果)
DEEPSEEK_API_KEY已设置。当缺少凭据时,会跳过测试并明确说明。
提供至少一项 OPENAI_API_KEY/TEST_OPENAI_API_KEY 或 DEEPSEEK_API_KEY 在运行之前,执行相关的提供者流。集 OPENAI_TEST_MODEL (默认值 o4-mini)如果你想强制OpenAI测试使用特定的模型,这对于避免长时间的深度研究工作非常方便。
许可证
麻省理工学院
