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 调用方式与事件通知。