Deepr 面向智能代理的后端服务器 (MCP 必要功能实现)

项目简介

Deepr 的这套 MCP 服务器实现旨在为 AI 代理(如 Claude Desktop、Cursor、VS Code、Zed 等)提供统一的后端能力,使其可以通过标准化的 JSON-RPC 调用来读取资源、执行工具、获取和渲染 Prompts,并且支持会话与上下文管理。代码库中包含基于标准 MCP 的服务端实现、以及针对浏览器端和本地客户端的工具注册、资源管理、路由与安全策略等组件。

主要功能点

  • MCP 协议核心能力
    • 以 JSON-RPC 形式接收请求、返回响应并支持通知模式
    • 提供初始化、工具列表/调用、资源读取/订阅、提示模板等能力
  • 资源与工具管理
    • 通过 MCPResourceHandler 管理资源订阅、读取和向量存储的交互
    • GatewayTool 与 ToolRegistry 实现动态工具发现与注册
  • 安全与合规
    • SSRF 防护、指令签名、输出校验等安全机制
    • 针对不同研究模式的工具白名单与权限控制
  • 可扩展的工具与查询
    • 提供 deepr_status、deepr_tool_search、deepr_research、deepr_check_status、deepr_get_result 等工具
    • 支持外部服务的扩展与新的工具接入
  • 传输协议与服务器模式
    • StdioTransport/StdioServer 提供本地安全传输
    • StreamingHttpTransport/HttpClient 提供 HTTP 传输以便云端部署
  • 能力路由与监控
    • 内置网关、BM25 级别的动态发现、成本与资源监控等
    • 与现有 Deepr 后端的成本、资源、任务 durability、事件追踪等系统集成

安装与运行

  • 安装方式
    • 推荐在根目录执行: pip install -e .
    • 如需 Web UI/额外 MCP 功能,按需求安装对应扩展:pip install -e ".[web]"
  • 运行服务器
    • 直接从源码启动(推荐本地开发):
      • 通过命令行运行 Python 模块 deepr.mcp.server,使用标准输入输出(STDIO)传输与 MCP 客户端对接
    • 运行示例(无需改动源码即可启动):
      • python -m deepr.mcp.server
    • 运行后,服务器使用标准输出显示启动信息,MCP 客户端通过标准输入输出与之交互

服务器配置(MCP 客户端所需)

请按以下配置将 MCP 客户端连接到本 MCP 服务器。注:MCP 客户端需要提供 server name、command 与 args,用于创建并启动服务器进程以便通过标准输入/输出进行通信。

  • 服务器名称(server_name):deepr-mcp
  • 启动命令(command):python3
  • 启动参数(args):-m deepr.mcp.server

该配置确保 MCP 客户端能够按约定启动 Deepr 的 MCP 服务器进程,并通过标准输入输出进行 JSON-RPC 的请求/响应交互。若你在云端部署或需要通过 HTTP/流式传输,请进一步配置 StreamingHttpTransport 的相应地址与参数,确保客户端能正确建立连接。

如需进一步的说明:MCP 服务器对外提供的能力包括工具网关、资源读取、研究提交、任务状态查询等;MCP 客户端与服务器之间以 JSON-RPC 的形式进行通信,传输形态可以是本地的 STDIO,亦可通过 HTTP 传输实现远程部署。

基本使用方法

  • 启动后,MCP 客户端通过指定的 server_name / command / args 启动并建立通信通道
  • 客户端可以通过工具 gateway、资源管理、研究请求等接口来触发并追踪研究任务
  • 服务器会处理请求、分发到合适的提供者、管理 vector store、并在任务完成后返回结果或通知
  • 如需扩展,可追加新的工具、资源类型以及自定义的 PromPT 模板

提示:本 MCP 服务器实现是一个完整的后端,适合与 AI 代理进行深度集成。客户端的具体对接细节请遵循 MCP 规定的 JSON-RPC 调用方式与事件通知。

服务器信息