深度研究服务器

GPT Researcher MCP Server是一个提供深度网络研究服务的工具,能够自主探索和验证多个来源,专注于提供相关、可信和最新的信息。

  • by mikaranja
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 mikaranja/gptr-mcp-test

使用说明

🔍 GPT研究者MCP服务器

为何选择GPT研究员MCP?

虽然大型语言模型(LLM)应用可以通过MCP访问网络搜索工具, GPT研究员MCP提供深入的研究成果。 标准的搜索工具返回的是原始结果,需要手动筛选,这些结果中常常包含不相关的来源,并且浪费了上下文窗口的空间。

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

  • ✨ 更高质量的信息
  • 📊 优化上下文使用
  • 🔎 全面结果
  • 🧠 提升大型语言模型(LLMs)的推理能力

💻 Claude 桌面版演示

https://github.com/用户附件/资产/ef97eea5-a409-42b9-8f6d-b82ab16c52a8(注:这里的“用户附件”是根据“user-attachments”直译的,实际使用时可能需要根据上下文调整为更合适的表述,如“用户上传的附件”或“用户附加资源”等)

🚀 快速上手Claude桌面版

想立即在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桌面版 并开始研究! 🎉(庆祝、欢呼的符号,可翻译为“庆祝”或根据上下文具体含义进行翻译,此处保留原样以表达其作为符号的通用性)

如需详细的设置说明,请参阅 完整的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 Researcher仓库:
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 文件以创建一个名为 .env:
    cp .env.example .env
    
    • 编辑 .env 文件并添加您的API密钥,然后配置其他设置:
    OPENAI_API_KEY=your_openai_api_key
    TAVILY_API_KEY=your_tavily_api_key
    

你也可以为你的GPT研究者配置添加任何其他环境变量。

🚀 运行MCP服务器

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

方法1:直接使用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-researcher >=0.12.16的要求。如果在构建过程中遇到错误,请确保您使用的是此仓库中的最新Dockerfile。

一旦服务器启动,您将看到输出信息表明服务器已准备好接受连接。您可以通过以下方式验证其是否正常工作:

  1. SSE 端点访问位于 http://localhost:8000/sse 的服务器发送事件(Server-Sent Events)端点以获取会话ID
  2. **MCP Communication(可译为“MCP传媒/传播公司”,具体根据上下文确定更准确的译名)**使用会话ID向 http://localhost:8000/messages/?session_id=YOUR_SESSION_ID 发送MCP消息
  3. 测试运行测试脚本,使用 python test_mcp_server.py

对于Docker/n8n集成至关重要:

  • 服务器绑定到 0.0.0.0:8000 与Docker容器一起工作
  • 使用SSE传输进行基于Web的MCP通信
  • 会话管理需要从(某个地方)获取会话ID /sse 端点优先
  • 每个客户端连接都需要一个唯一的会话ID以确保正常通信

🚦 交通方式与最佳实践

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

运输类型

传输 使用场景 使用时机
STDIO 翻译为中文是“标准输入输出(Standard Input and Output)”。 Claude Desktop,本地MCP客户端 本地开发的默认选项
上海证券交易所 Docker、Web 客户端、n8n 集成 在 Docker 中自动启用
可流式传输的HTTP 现代网页部署 高级网页部署

自动检测

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

# 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. 生产使用Docker并启用自动SSE检测
  3. 测试使用健康检查端点来验证连接性
  4. n8n 集成使用 Docker 时,始终采用容器网络
  5. 网络部署考虑为现代客户端使用Streamable HTTP

与Claude集成

您可以通过以下方式将您的MCP服务器与Claude集成:

Claude桌面集成 - 用于在Mac上使用Claude桌面应用程序

如需详细说明,请点击上方链接。

💻 Claude 桌面集成

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

  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桌面配置包含敏感的API密钥。 保护它:

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

永远不要将这个文件提交到版本控制系统中。

备选方案:环境变量脚本

为了提高安全性,请创建一个包装脚本:

运行_gptr_mcp.sh(脚本文件名,根据上下文可具体解释为“运行GPT-R MCP脚本”或保持原样作为文件名):

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

然后在Claude桌面版中使用它:

{
  "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-researcher >=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 是正确的
    • 完全重启Claude桌面版
  2. “OPENAI_API_KEY未找到”错误:

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

    • 在Claude桌面版中查找🔧工具图标
    • 检查Claude Desktop配置文件是否位于正确的位置:
      • macOS(苹果电脑操作系统): ~/Library/Application Support/Claude/claude_desktop_config.json
      • Windows: %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传输消息)
    • 检查Claude Desktop的日志(如果可用)
    • 尝试上述集成部分中的替代脚本方法

👣 下一步行动

📄 许可证

此项目遵循MIT许可协议——详见LICENSE文件。

📞 支持/联系

⬆️ Back to Top