Vestige MCP Server

使用说明(Markdown格式)

  • 项目简介

    • Vestige MCP Server 是一个将模型上下文协议(MCP)落地为可运行的服务器端实现的后端服务。它通过 JSON-RPC 2.0 与客户端通信,提供资源访问、工具执行和提示模板等能力,供大型语言模型(LLM)在对话中获得持久化上下文与外部功能。
  • 主要功能点

    • 初始化阶段:客户端通过 initialize 请求完成会话初始化,服务器返回服务器信息、协议版本、能力声明和使用说明等。
    • 资源管理:提供 resources/list 和 resources/read 支持,客户端可读取内置资源(如内存统计、最近记忆、代码库等)以获得上下文数据。
    • 工具执行:通过 tools/list、tools/call 与 memory/code 相关工具实现对外部功能的注册、查询与执行,支持多种工具并统一暴露接口。
    • 资源与工具安全性:实现对未初始化请求的拒绝、错误码统一管理,以及对未知方法/工具的错误返回。
    • i/o 通信:当前实现采用标准输入/输出(stdio)进行 JSON-RPC 的收发,便于与 Claude 等 LLM 客户端的集成测试。也支持在服务器上线时接入其他传输层(如 SSE/WebSocket 等扩展)。
  • 安装步骤

    • 克隆或获取仓库中的 vestige-mcp 子 crate。
    • 使用 Rust 的构建工具构建并运行服务,例如通过 cargo 构建发布版本后执行二进制。
    • 启动后,服务器会监听并通过标准输入输出进行 JSON-RPC 交互。若要改为其他传输,请参考实现中的 stdio 传输模块,并按需实现对应的传输适配。
  • 服务器配置(供 MCP 客户端使用的启动配置,JSON 格式) 说明:MCP 客户端需要配置服务器的启动命令及参数,以便与 MCP 服务器建立连接。以下为一个示例配置,实际使用时请将 “command”/“args” 替换为你的部署路径与参数。 { "server_name": "vestige-mcp", "command": "/path/to/vestige-mcp", // 启动可执行文件的路径(或通过 cargo 构建后的二进制名) "args": [ "--data-dir", "/path/to/vestige/data" // 指定数据目录(若有) ] // 注释:如果使用 cargo run 提供的二进制,请替换为相应的执行方式,如:["--bin","vestige-mcp","--data-dir","/path/to/vestige/data"] }

  • 基本使用方法

    • 客户端向 MCP 服务器发送 JSON-RPC 2.0 请求,例如 initialize、tools/list、resources/list 等方法。
    • 服务器返回相应的 JSON-RPC 响应,错误场景将返回标准的 JSON-RPC 错误对象。
    • 如需与服务器交互,请确保在发送请求前完成 initialize,未初始化的请求将收到服务器未初始化的错误。
    • 使用 stdio 通道后,客户端需要对接服务器输出的 JSON 行并将请求送入服务器的输入流,解析并处理返回结果。
  • 额外说明

    • 本实现的核心模块包括:McpServer(服务器端核心逻辑)、stdio 传输(与客户端通过 STDIO 通信)、protocol 消息与类型定义(JSON-RPC 请求/响应结构、错误码、工具/资源描述等)。
    • MCP 服务器支持多种工具与资源扩展点,且具备完整的初始化、请求路由、错误处理与响应封装能力。
  • 使用建议

    • 将 vestige-mcp 构建为独立可执行程序,作为独立的后端服务对接到你的 LLM 客户端。
    • 客户端在发送请求时务必遵循 MCP 的初始化序列,以避免未初始化的请求导致错误。
    • 如需要在生产环境中使用非 STDIO 的传输,参考 crates/vestige-mcp/src/protocol/stdio.rs 的实现,扩展成 WebSocket、SSE 等传输层以替代 STDIO。

服务器信息