深度研究服务器

GPT Researcher MCP Server是一个自主探索和验证多个来源的研究工具,提供高质量、全面且优化的信息结果,适用于需要深入研究的场景。

  • by assafelovic
  • Python
  • 本地部署
  • 377 星标
  • 更新于
在 GitHub 查看 assafelovic/gptr-mcp

使用说明

🔍 GPT研究员MCP服务器

为什么选择GPT研究员MCP?

虽然LLM应用程序可以使用MCP访问网络搜索工具, GPT研究员MCP发表了深入的研究成果。 标准搜索工具返回需要手动过滤的原始结果,通常包含不相关的源并浪费上下文窗口空间。

GPT研究员自主探索和验证众多来源,只关注相关、可信和最新的信息。虽然比标准搜索稍慢(等待约30秒),但它提供了:

  • ✨ 更高质量的信息
  • 📊 优化上下文使用
  • 🔎 综合结果
  • 🧠 LLM的更好推理

💻 克劳德桌面演示

https://github.com/user-attachments/assets/ef97eea5-a409-42b9-8f6d-b82ab16c52a8

🚀 Claude Desktop快速入门

想立即将其与Claude Desktop一起使用吗? 以下是最快的路径:

  1. 安装依赖项:

    git clone https://github.com/assafelovic/gptr-mcp.git
    pip install -r requirements.txt
    
  2. 设置您的Claude桌面配置 在 ~/Library/Application Support/Claude/claude_desktop_config.json:

    {
      "mcpServers": {
        "gptr-mcp": {
          "command": "python",
          "args": ["/absolute/path/to/gpt-researcher/gptr-mcp/server.py"],
          "env": {
            "OPENAI_API_KEY": "your-openai-key-here",
            "TAVILY_API_KEY": "your-tavily-key-here"
          }
        }
      }
    }
    
  3. 重新启动克劳德桌面 开始研究吧! 🎉

有关详细的设置说明,请参阅 完整的Claude桌面集成部分 在......下面

资源

  • research_resource:通过研究获取与给定任务相关的网络资源。

主要工具

  • deep_research:对某个主题进行深度网络研究,找到最可靠和最相关的信息
  • quick_search:执行速度优于质量的快速网络搜索,返回包含片段的搜索结果。支持任何GPTR支持的网络检索器,如Tavily、Bing、Google等。了解更多 这里
  • write_report:根据研究结果生成报告
  • get_research_sources:获取研究中使用的来源
  • get_research_context:了解研究的全部背景

提示

  • research_query:创建研究查询提示

先决条件

在运行MCP服务器之前,请确保您已经:

  1. 已安装Python 3.11或更高版本
    • 重要GPT研究员>=0.12.16需要Python 3.11+
  2. 您计划使用的服务的API密钥:

您还可以使用GPTR支持的检索器连接任何其他网络搜索引擎或MCP。看看 文档在这里

⚙️ 安装

  1. 克隆GPT研究员存储库:
git clone https://github.com/assafelovic/gpt-researcher.git
cd gpt-researcher
  1. 安装gptr-mcp依赖项:
cd gptr-mcp
pip install -r requirements.txt
  1. 设置环境变量:
    • 复制 .env.example file以创建名为的新文件 .env:
    cp .env.example .env
    
    • 编辑 .env 文件并添加API密钥,并配置其他设置:
    OPENAI_API_KEY=your_openai_api_key
    TAVILY_API_KEY=your_tavily_api_key
    

您还可以为GPT研究员配置添加任何其他env变量。

🚀 运行MCP服务器

您可以通过多种方式运行MCP服务器:

方法一:直接使用Python

python server.py

方法2:使用MCP CLI(如果已安装)

mcp run server.py

方法3:使用Docker(推荐用于生产环境)

快速开始

使用Docker运行的最简单方法:

# Build and run with docker-compose
docker-compose up -d

# Or manually:
docker build -t gptr-mcp .
docker run -d \
  --name gptr-mcp \
  -p 8000:8000 \
  --env-file .env \
  gptr-mcp

用于n8n集成

如果您需要连接到现有的n8n网络:

# First, start the container
docker-compose up -d

# Then connect to your n8n network
docker network connect n8n-mcp-net gptr-mcp

# Or create a shared network first
docker network create n8n-mcp-net
docker network connect n8n-mcp-net gptr-mcp

备注Docker镜像使用Python 3.11来满足gpt研究员>=0.12.16的要求。如果在构建过程中遇到错误,请确保您使用的是此存储库中的最新Dockerfile。

服务器运行后,您将看到输出,指示服务器已准备好接受连接。您可以通过以下方式验证它是否正常工作:

  1. SSE端点:访问位于的服务器发送事件端点http://localhost:8000/sse获取会话ID
  2. MCP通信:使用会话ID向发送MCP消息http://localhost:8000/messages/?session_id=YOUR_SESSION_ID
  3. 测试:使用以下命令运行测试脚本 python test_mcp_server.py

对Docker/n8n集成很重要:

  • 服务器绑定到 0.0.0.0:8000 使用Docker容器
  • 使用SSE传输进行基于web的MCP通信
  • 会话管理需要从以下位置获取会话ID /sse 端点优先
  • 每个客户端连接都需要一个唯一的会话ID才能进行正确的通信

🚦 运输模式和最佳实践

GPT Researcher MCP服务器支持多种传输协议,并自动为您的环境选择最佳协议:

运输类型

运输 用例 何时使用
工作室 Claude Desktop,本地MCP客户端 默认用于本地开发
上海证券交易所 Docker、Web客户端、n8n集成 在Docker中自动启用
流式HTTP 现代web部署 高级web部署

自动检测

服务器会自动检测您的环境:

# Local development (default)
python server.py
# ➜ Uses STDIO transport (Claude Desktop compatible)

# Docker environment  
docker run gptr-mcp
# ➜ Auto-detects Docker, uses SSE transport

# Manual override
export MCP_TRANSPORT=sse
python server.py
# ➜ Forces SSE transport

环境变量

变量 描述 默认值 示例
MCP_TRANSPORT 部队专用运输 stdio sse, streamable-http
DOCKER_CONTAINER 强制Docker模式 自动检测 true

配置示例

适用于Claude Desktop(本地)

// ~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "gpt-researcher": {
      "command": "python",
      "args": ["/absolute/path/to/server.py"],
      "env": {
         "..."
      }
    }
  }
}

用于Docker/Web部署

# Set transport explicitly for web deployment
export MCP_TRANSPORT=sse
python server.py

# Or use Docker (auto-detects)
docker-compose up -d

用于n8n MCP集成

# Use the container name as hostname
docker run --name gptr-mcp -p 8000:8000 gptr-mcp

# In n8n, connect to: http://gptr-mcp:8000/sse

传输端点

使用SSE或HTTP传输时:

  • 健康检查: GET /health
  • SSE端点: GET /sse (获取会话ID)
  • MCP消息: POST /messages/?session_id=YOUR_SESSION_ID

最佳实践

  1. 地方发展:使用Claude Desktop的默认STDIO
  2. 生产:使用带有自动SSE检测的Docker
  3. 测试:使用健康端点验证连接
  4. n8n集成:始终使用Docker的容器网络
  5. Web部署:考虑为现代客户端提供流式HTTP

与克劳德融合

您可以使用以下方式将MCP服务器与Claude集成:

Claude桌面集成 -适用于Mac上的Claude桌面应用程序

有关详细说明,请点击上面的链接。

💻 Claude桌面集成

要将本地运行的MCP服务器与Claude for Mac集成,您需要:

  1. 确保MCP服务器已安装并正在运行
  2. 配置Claude桌面:
    • 在以下位置查找或创建配置文件 ~/Library/Application Support/Claude/claude_desktop_config.json
    • 将本地GPT研究员MCP服务器添加到配置中 有环境变量
    • 重新启动Claude以应用配置

⚠️ 重要提示:需要环境变量

Claude Desktop将您的MCP服务器作为单独的子进程启动,因此您 必须 在配置中显式传递API密钥。服务器无法访问shell的环境变量或 .env 文件自动。

配置示例

{
  "mcpServers": {
    "gptr-mcp": {
      "command": "python",
      "args": ["/absolute/path/to/your/server.py"],
      "env": {
        "OPENAI_API_KEY": "your-actual-openai-key-here",
        "TAVILY_API_KEY": "your-actual-tavily-key-here"
      }
    }
  }
}

安全说明

🔒 您的Claude Desktop配置包含敏感的API密钥。 保护它:

chmod 600 ~/Library/Application\ Support/Claude/claude_desktop_config.json

切勿将此文件提交到版本控制。

替代方案:环境变量脚本

为了更好的安全性,创建一个包装器脚本:

run_gptr_mcp.sh:

#!/bin/bash
source /path/to/your/.env
python /absolute/path/to/server.py

然后在Claude Desktop中使用它:

{
  "mcpServers": {
    "gptr-mcp": {
      "command": "/absolute/path/to/run_gptr_mcp.sh"
    }
  }
}

有关完整的分步说明,请参阅 Claude桌面集成指南.

📝 Claude使用示例

User: I'm considering investing in NVIDIA. Can you research the current state of the company, recent stock performance, latest product announcements, and analyst opinions?

Claude: I'll help you research NVIDIA for investment purposes. This will take a moment as I conduct deep research to find the most up-to-date information about their stock performance, recent developments, and expert analysis.

[Claude uses deep_research tool - this takes 30-40 seconds]

Claude: Based on my research, here's a comprehensive analysis of NVIDIA's current state:

## NVIDIA (NVDA) Current Status

### Recent Stock Performance
- Current price: $942.89 (as of my research)
- YTD performance: +90.4% 
- 52-week range: $460.30 - $974.00
- Market cap: ~$2.32 trillion

### Recent Key Developments
1. **Blackwell AI Platform**: At GTC 2024, NVIDIA unveiled the Blackwell architecture, their next-generation AI chip platform promising 4x performance improvement over Hopper. Major cloud providers (AWS, Google, Microsoft) have already committed to integrating Blackwell.

2. **Q1 FY2025 Earnings (May 2024)**: 
   - Revenue: $26.0 billion (+262% YoY)
   - Data Center revenue: $22.6 billion (+427% YoY)
   - Gross margin: 78.4%
   - Announced 10-for-1 stock split effective June 7, 2024

3. **Supply Chain Expansion**: Increased investments in manufacturing capacity with TSMC to address ongoing chip shortages for their high-demand AI GPUs.

### Analyst Consensus
- Strong Buy consensus with 37 analysts rating it "Buy," 5 "Hold," and 0 "Sell"
- Average price target: $1,042 (post-split adjusted: $104.20)
- Key bull thesis: Continued AI infrastructure spending and NVIDIA's dominant position in AI chips
- Key bear concerns: Valuation, potential competition from AMD, Intel, and custom silicon from tech giants

### Industry Position
- Dominant in AI GPU market with estimated 80-90% market share
- Expanding ecosystem through CUDA software platform and industry partnerships
- Diversifying beyond chips with DGX Cloud, AI software platforms, and automotive solutions

🔧 故障排除

如果在运行MCP服务器时遇到问题:

一般问题

  1. API密钥:请确保在中正确设置了API密钥 .env 文件
  2. Python版本:检查您是否使用Python 3.11或更高版本(gpt研究员要求>=0.14.0)
  3. 依赖项:确保所有依赖项都已正确安装: pip install -r requirements.txt
  4. 服务器日志:检查服务器日志中的错误消息

Docker问题

  1. 集装箱无法进入:

    • 验证容器是否正在运行: docker ps | grep gptr-mcp
    • 检查容器日志: docker logs gptr-mcp
    • 确认服务器已绑定到0.0.0.0:8000(日志应显示此内容)
  2. n8n集成问题:

    • 确保两个容器都在同一个Docker网络上
    • 使用容器名称 gptr-mcp 作为n8n中的主机名
    • 将MCP服务器URL设置为: http://gptr-mcp:8000/sse
  3. 会话ID问题:

    • 服务器使用需要会话管理的SSE传输
    • 首先,通过连接获取会话ID /sse 端点
    • 在后续MCP请求中使用会话ID: /messages/?session_id=YOUR_ID
    • 每个客户端都需要自己的会话ID

n8n MCP集成步骤

  1. 获取会话ID:

    curl http://gptr-mcp:8000/sse
    # Look for: data: /messages/?session_id=XXXXX
    
  2. 初始化MCP:

    curl -X POST http://gptr-mcp:8000/messages/?session_id=YOUR_SESSION_ID \
      -H "Content-Type: application/json" \
      -d '{"jsonrpc": "2.0", "id": 1, "method": "initialize", "params": {"protocolVersion": "2024-11-05", "capabilities": {"roots": {"listChanged": true}}, "clientInfo": {"name": "n8n-client", "version": "1.0.0"}}}'
    
  3. 呼叫工具:

    curl -X POST http://gptr-mcp:8000/messages/?session_id=YOUR_SESSION_ID \
      -H "Content-Type: application/json" \
      -d '{"jsonrpc": "2.0", "id": 2, "method": "tools/call", "params": {"name": "quick_search", "arguments": {"query": "test"}}}'
    

测试服务器

运行附带的测试脚本以验证功能:

python test_mcp_server.py

这将测试:

  • SSE连接和会话ID检索
  • MCP初始化
  • 工具发现和执行

Claude桌面问题

如果您的MCP服务器无法与Claude Desktop配合使用:

  1. 服务器未出现在Claude中:

    • 检查你的 claude_desktop_config.json 语法是有效的JSON
    • 确保您正在使用 绝对路径 (非相对)
    • 验证路径 server.py 是正确的
    • 完全重新启动克劳德桌面
  2. “找不到OPENAI_API_KEY”错误:

    • 请确保已将API密钥添加到 env 配置中的部分
    • 别忘了 两者 OPENAI_API_KEY 和 TAVILY_API_KEY
    • API键应为实际键,而不是占位符
  3. 工具未显示:

    • 寻找🔧 Claude Desktop中的工具图标
    • 检查Claude Desktop配置文件是否在正确的位置:
      • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
      • 视窗: %APPDATA%\Claude\claude_desktop_config.json
  4. Python/权限问题:

    • 确保Python可以从命令行访问: python --version
    • 尝试使用完整的Python路径: "command": "/usr/bin/python3" 或 "command": "python3"
    • 检查server.py文件的文件权限
  5. 仍然不工作吗?

    • 手动测试服务器: python server.py (应显示STDIO传输消息)
    • 检查克劳德桌面日志(如果可用)
    • 尝试上面集成部分中的替代脚本方法

👣 后续步骤

📄 许可证

此项目根据MIT许可证获得许可-有关详细信息,请参阅许可证文件。

📞 支持/联系

⬆️ Back to Top