项目简介

深度研究MCP服务器是一个符合Model Context Protocol (MCP) 标准的应用后端,专注于执行全面的网络研究。它利用Tavily的搜索和抓取API来收集指定主题的最新信息,并将这些数据与可配置的文档生成指令一起整合成结构化的JSON输出。这个输出专为大型语言模型(LLM)优化,以便它们能够方便地根据研究结果创建详细、高质量的Markdown文档。

服务器通过标准I/O (Stdio) 传输协议与MCP客户端通信,处理来自LLM/代理的工具调用请求。

主要功能点

  • 多步研究: 结合了Tavily的AI搜索和深度内容抓取,以进行详尽的信息收集。
  • 结构化JSON输出: 提供组织良好的数据(原始查询、搜索摘要、每源详细发现、文档指令),优化用于LLM消费。
  • 可配置文档Prompt: 支持通过工具参数、环境变量或内置默认值来定制LLM生成文档的指令。
  • 可配置输出路径: 允许指定研究文档和图像的保存位置,支持工具参数、环境变量或使用带时间戳的默认路径。
  • 细粒度控制: 提供丰富的参数来精确调整搜索和抓取过程。
  • MCP兼容性: 设计用于无缝集成到基于MCP的AI代理生态系统中。

安装步骤

  1. 前置条件: 确保已安装 Node.js (推荐 18.x 或更高版本) 和 npm (随 Node.js 提供) 或 Yarn。
  2. 安装:
    • 推荐使用 NPX (快速使用): 无需全局安装,直接运行:
      npx @pinkpixel/deep-research-mcp
    • 全局安装 (可选):
      npm install -g @pinkpixel/deep-research-mcp
      安装后可通过命令 'deep-research-mcp' 运行。
    • 本地项目集成或开发: 克隆仓库,进入目录,运行 'npm install' 安装依赖。

服务器配置 (供MCP客户端使用)

MCP客户端(如AI代理或框架)需要知道如何启动和连接到此MCP服务器。通常,这通过一个JSON配置文件或类似的机制完成。以下是一个典型的配置示例,说明如何通过MCP客户端启动此服务器:

{
  // ... 其他MCP服务器配置
  "deep-research": { 
    // 启动服务器进程的命令
    "command": "npx", 
    // 传递给命令的参数
    "args": [
      "-y",
      "@pinkpixel/deep-research-mcp" 
    ],
    // 进程启动时设置的环境变量
    "env": {
      // 必需:您的Tavily API Key
      "TAVILY_API_KEY": "tvly-YOUR_ACTUAL_API_KEY_HERE", 
      // 可选:覆盖默认的文档生成指令prompt
      "DOCUMENTATION_PROMPT": "您的自定义LLM文档生成详细指令...", 
      // 可选:覆盖默认的研究输出文件保存路径
      "RESEARCH_OUTPUT_PATH": "/path/to/your/research/output/folder" 
    }
  }
  // ...
}

重要说明:

  • 您必须设置 'TAVILY_API_KEY' 环境变量,这是服务器运行所必需的。可以在上述配置的 'env' 部分设置,或在服务器运行的环境中提前设置。
  • 'DOCUMENTATION_PROMPT' 和 'RESEARCH_OUTPUT_PATH' 是可选的,它们为服务器提供默认设置,但可以在调用工具时通过参数进一步覆盖。
  • 上述JSON结构是MCP客户端(而非本项目自身)通常用来配置其外部工具(如本MCP服务器)的示例。您需要根据您使用的MCP客户端或框架的要求进行配置。

基本使用方法 (通过MCP客户端调用工具)

一旦MCP客户端成功连接并启动了深度研究MCP服务器,LLM或AI代理就可以通过JSON-RPC协议调用服务器提供的工具。本项目主要提供一个名为 'deep-research-tool' 的工具。

LLM或代理会向服务器发送一个 'call_tool' 请求,包含工具名称和参数。例如:

  • 调用工具名称: 'deep-research-tool'
  • 关键参数 (在请求的 arguments 对象中提供):
    • 'query' (字符串, 必需): 您希望研究的主题或问题。
    • 'documentation_prompt' (字符串, 可选): 运行时为本次调用定制的文档生成指令,优先级最高。
    • 'output_path' (字符串, 可选): 运行时为本次调用定制的研究输出文件保存路径,优先级最高。
    • 其他参数:还有大量参数可用于控制Tavily的搜索深度、结果数量、抓取深度、是否包含图片等,详见项目文档(对应README中的"Input Parameters"部分)。

服务器执行研究后,将返回一个包含所有收集到的数据的JSON字符串作为工具调用的结果。LLM接收到这个JSON后,应严格按照其中的 'documentation_instructions' 字段提供的指令,利用 'research_data' 中的详细内容生成最终的Markdown文档。生成的文档和相关文件应保存到JSON输出中 'output_path' 指定的路径。

关键词

网络研究, 数据抓取, 文档生成, AI工具, Tavily

信息

分类

网页与API