Deep Research MCP Server 使用说明

项目简介

Deep Research MCP Server 是一个基于 Model Context Protocol (MCP) 构建的轻量级研究助手后端服务。它利用 Gemini LLMs 和 Firecrawl 搜索引擎,帮助用户进行深入、迭代式的研究。此项目旨在提供一个简单而有效的深度研究代理实现,方便用户理解、修改和扩展。通过 MCP 协议,它可以无缝集成到各种 AI agent 生态系统中,作为工具被调用,为 agent 提供强大的研究能力。

主要功能点

  • MCP 协议集成: 作为 MCP 服务器,可以轻松集成到任何兼容 MCP 协议的 AI agent 平台。
  • 迭代式深度研究: 通过迭代生成搜索查询、处理结果,并根据发现深入挖掘研究主题。
  • 智能查询生成: 利用 Gemini LLMs 生成有针对性的搜索查询,基于研究目标和先前的发现。
  • 可配置的研究深度和广度: 通过参数控制研究的范围(广度)和深入程度(深度)。
  • 生成全面的 Markdown 报告: 输出包含研究发现和来源的详细 Markdown 格式报告。
  • 并发处理: 高效地并行处理多个搜索和结果,提升研究速度。

安装步骤

  1. 克隆仓库:

    git clone https://github.com/ssdeanx/deep-research-mcp-server
    cd deep-research-mcp-server
  2. 安装依赖: 确保已安装 Node.js v22.x 或更高版本。

    npm install
  3. 配置环境变量: 在项目根目录下创建 '.env.local' 文件,并添加以下 API 密钥:

    GEMINI_API_KEY="你的 Gemini API 密钥"
    FIRECRAWL_KEY="你的 Firecrawl API 密钥"
    # (可选) 如果你想使用自托管的 Firecrawl 实例
    # FIRECRAWL_BASE_URL=http://localhost:3002

    请访问 Gemini APIFirecrawl API 获取 API 密钥。

  4. 构建项目:

    npm run build

服务器配置

以下 JSON 配置信息用于 MCP 客户端连接 Deep Research MCP Server。请将以下配置添加到您的 MCP 客户端配置中。

{
  "serverName": "deep-research",
  "command": "node",
  "args": [
    "--env-file",
    ".env.local",
    "dist/mcp-server.js"
  ],
  "transport": "stdio"
}

配置参数说明:

  • 'serverName': 服务器名称,设置为 "deep-research"。
  • 'command': 启动服务器的命令,这里使用 'node'。
  • 'args': 启动命令的参数列表:
    • '--env-file .env.local': 指定加载环境变量的文件为 '.env.local',其中包含了 API 密钥等配置。
    • 'dist/mcp-server.js': MCP 服务器的入口文件路径。
  • 'transport': 使用的传输协议,这里使用 'stdio' (标准输入输出)。

基本使用方法

  1. 启动 MCP 服务器: 在项目根目录下,运行以下命令启动 Deep Research MCP Server:

    node --env-file .env.local dist/mcp-server.js

    服务器成功启动后,会输出 "MCP server running" 的信息。

  2. 在 MCP 客户端中调用工具: 在您的 MCP 客户端应用中,可以使用 'deep-research' 工具进行研究。以下是一个 TypeScript 示例,展示如何调用 'deep-research' 工具:

    const mcp = new ModelContextProtocolClient(); // 假设 MCP 客户端已初始化
    
    async function invokeDeepResearchTool() {
      try {
        const result = await mcp.invoke("deep-research", {
          query: "区块链技术原理", // 你的研究查询
          depth: 2,             // 研究深度 (可选, 1-5, 默认: 中等)
          breadth: 4            // 研究广度 (可选, 1-5, 默认: 中等)
        });
    
        if (result.isError) {
          console.error("MCP 工具错误:", result.content[0].text);
        } else {
          console.log("研究报告:\n", result.content[0].text);
          console.log("来源:\n", result.metadata.sources);
        }
      } catch (error) {
        console.error("MCP 调用错误:", error);
      }
    }
    
    invokeDeepResearchTool();

    在 'mcp.invoke' 方法中,第一个参数 '"deep-research"' 是要调用的工具名称,第二个参数是工具的输入参数,例如 'query'(研究查询)、'depth'(研究深度)、'breadth'(研究广度)等。

    调用成功后,'result.content[0].text' 中将包含 Markdown 格式的研究报告,'result.metadata.sources' 中包含报告中引用的来源链接。

更多信息

  • 您可以通过修改 '.env.local' 文件来配置 Gemini API 和 Firecrawl API 的密钥。
  • 可以通过调整 'depth' 和 'breadth' 参数来控制研究的深度和广度。
  • 详细信息请参考 仓库 README

信息

分类

AI与计算