Ragtime 服务器端(MCP 服务实现)
使用说明(Markdown 格式)
-
项目简介 Ragtime 提供一个自托管的检索增强型后端服务,内置 MCP 服务端,用于向 LLM 客户端暴露工具、知识资源和提示模板,并通过 JSON-RPC 风格的 MCP 协议进行通信。支持 HTTP 流传输和 stdio 传输,便于在本地或私有网络中安全集成到现有的 AI 工作流中。
-
主要功能点
- MCP 核心能力暴露:暴露可注册和执行的工具(Tool)、可检索的知识资源(Resources)以及可渲染的 Prompt 模板(Prompts),并通过 MCP 客户端进行调用与渲染。
- 动态工具发现与路由:工具通过数据库配置动态注册,支持基于健康检查的工具筛选与按路由策略的权限控制。
- 多传输协议支持:HTTP/HTTPS 流式传输作为 MCP 服务器默认端点,另外提供 stdio(通过容器或本地启动)等本地传输模式以便与 Claude Desktop 等客户端对接。
- 路由和权限控制:支持自定义路由、默认路由过滤器(LDAP 基于组的工具访问控制)、以及按工具集的权限过滤。
- MCP 配置与管理接口:提供用于管理路由、工具、证书与安全策略的后端 API,便于运维与安全合规性管理。
- 与 Ragtime 生态集成:MCP 服务端与 Ragtime 的其他模块(索引、工具执行器、认证、会话等)紧密耦合,提供统一的会话、鉴权与日志。
-
安装与运行步骤
- 准备环境
- 需要有 Docker/Docker Compose(或在容器化环境中直接运行 Python 应用)。确保网络可达性,必要时配置内部 DNS。
- 获取代码与依赖
- 获取 Ragtime 源码,进入 Ragtime 项目目录,安装依赖(通常通过 Docker 镜像或本地 Python 环境安装)。
- 启动 MCP 服务器
- 通过命令行直接启动(适用于本地开发/调试): 运行 Ragtime MCP 服务的入口脚本,选择 stdio 传输。
- 也可以通过 Docker Compose 方式启动 Ragtime 服务(包含 MCP、RAG API、数据库等组件)。
- 配置 MCP 客户端
- MCP 客户端需要连接 Ragtime 的 MCP 端点(HTTP/stdio),并在设置中为 ragtime 指定服务器名称、连接方式与认证信息。
- 如需要 HTTPS,请在环境中配置证书并开启 HTTPS。
- 验证与调试
- 使用 Ragtime 提供的健康检查、日志输出以及 MCP 路线配置界面,确认工具和路由均可使用。
- 通过客户端发起请求,观察响应和流式事件,确保工具调用、资源检索、Prompt 渲染均可工作。
- 准备环境
-
服务器配置(MCP 客户端所需的启动信息,示例以 STDIO 传输为主) 服务器名称(server_name):ragtime 启动命令(command):python 启动参数(args):-m ragtime.mcp.server --transport stdio 说明:上述配置用于在本地或容器中以 STDIO 方式启动 MCP 服务端。若使用 HTTP/HTTPS 传输,请改为相应的启动参数并在 MCP 客户端提供对应的 URL、Headers(如需要 MCP-Password)等。
-
基本使用方法
- 启动后,MCP 服务端会对配置的 Tool、Resources、Prompts 进行注册并对外暴露能力。
- 客户端通过 MCP HTTP 接入时,向 /mcp 端点发送请求,并接收 JSON-RPC 风格的响应与通知。
- 客户端在需要本地化工具调用、检索知识或渲染 Prompts 时,向 Ragtime 提交相应的请求并处理返回结果。
- 如有路由/权限需求,可在 Ragtime 的 Settings/UI 中配置默认路由、LDAP 组、以及每个工具的访问策略。
-
备注
- MCP 配置与权限管理在 Ragtime 的 Settings UI 中进行,数据库存储工具配置信息与路由策略,MCP 服务端根据配置暴露相应能力。
- 服务器端对会话、认证、日志、以及工具健康状态有完善的处理逻辑,便于在企业环境中进行安全合规性运维。