使用说明(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与计算