使用说明(Markdown 格式)
-
项目简介 Savant 提供一个完整的 MCP 服务端框架,能够托管资源、注册并执行工具、并渲染可定制的提示模板,帮助将大模型/LLM 客户端接入到本地资源与功能之中。核心通过 JSON-RPC 与客户端通信,支持多引擎(Context、Think、Jira、 Personas、Rules 等等)的聚合与调度,以及通过 Hub 提供的 HTTP 、Stdio、WebSocket 等传输方式。
-
主要功能点
- 资源与数据访问:提供对本地或持久存储的资源访问能力,并通过引擎工具暴露数据访问接口。
- 工具注册与执行:注册引擎工具并通过 MCP 流程调用执行,支持参数校验与结果返回。
- Prompt 模板管理与渲染:定义、读取、渲染促发对话的 Prompt 模板,支持多版本与自定义内容。
- 引擎多路复用与隔离:Hub 作为入口,Multiplexer 将不同引擎的工具表面整合并隔离故障(某个引擎崩溃时不影响其他引擎)。
- 会话与记忆:会话上下文、记忆快照、日志与遥测等,方便与大模型的长期对话交互。
- UI 与诊断:提供前端 UI 的诊断视图、工具路由、日志与实时状态监控。
- 传输协议支持:通过 stdio、WebSocket、HTTP Hb(Hub)等多种传输,满足不同编辑器/客户端的接入需求。
-
安装步骤(简要)
- 安装环境:Ruby 3.2+、Bundler、并在本地搭建 PostgreSQL 数据库(Savant 目标数据库为 PostgreSQL,JSONB 与 GIN 索引用于快速查询)。
- 安装依赖并准备数据库:
- bundle install
- 设置数据库连接,如导出 DATABASE_URL=postgres://context:password@localhost:5432/contextdb
- 执行 migrations 与 FTS 索引等初始化步骤(项目提供了相应的 make/db-migrate 及 make/db-fts 等命令)。
- 启动 MCP 服务端与界面:
- 运行多引擎的 MCP 服务器(通常通过 bin/mcp_server 启动,默认会按引擎启动独立进程并进行工具命名空间化与路由注册)
- 启动 Hub/UI(前端 React 界面)以及后端 Rails/Rack 组件(根据文档可以分别启动 UI 与 Hub)
- 运行示例与自测:
- 使用工具对接测试端点,HTTP 访问常见端点如 /、/:engine/tools、/rpc 等进行功能探测
- 通过 JSON-RPC 调用工具/读取资源/获取 Prompts,验证正确返回
-
服务器配置(MCP 客户端所需信息) 注意:MCP 客户端需要配置以连接 MCP 服务器。以下为示例配置项(以 JSON 形式描述,实际客户端无需运行代码块,仅作为配置示例),描述了服务器名称、启动命令与参数: { "server_name": "savant-context-mcp", "command": "bundle exec ruby ./bin/mcp_server", "args": [ "MCP_SERVICE=context", "SAVANT_PATH=/path/to/your/savant", "DATABASE_URL=postgres://context:password@localhost:5432/contextdb" ], "notes": "该配置指向一个或多个 MCP 服务实例,客户端通过该启动指令建立与 MCP 服务器的连接。各参数按实际环境替换。" } 说明
- server_name:服务器在客户端侧的标识名称,便于区分多服务器场景。
- command/args:启动 MCP 服务器的命令及参数,必须包含用于指定要连接的引擎/服务的参数(如 MCP_SERVICE=context)。
- 其他环境变量(如 SAVANT_PATH、DATABASE_URL 等)需按实际部署环境设定,确保服务器能正确加载运行时上下文与数据库。
- 客户端不需要实现服务器逻辑,仅使用上述信息连接到 MCP 服务器并通过 JSON-RPC 调用工具、资源、Prompts 等。
-
基本使用方法
- 第一步:确认服务器启动正常,Hub/UI 已就绪,且数据库连接可用。
- 第二步:通过客户端发起 JSON-RPC 调用,请求应包含 engine/tool 路径、参数以及唯一的请求标识符。
- 第三步:解析响应,处理返回结果或错误信息。若某引擎出现故障,Multiplexer 会隔离并继续服务其他引擎。
- 第四步:如需扩展工具/Prompts,按照文档中的 Generator 提示创建新的引擎,并通过驱动器将新工具注册到 MCP 服务中。
信息
分类
AI与计算