Lemma MCP 服务端实现

使用说明(Markdown 格式)

  • 项目简介

    • Lemma 的 MCP 服务端是一部分 CLI 功能,能够以 MCP 协议与客户端进行 JSON-RPC 通信,托管资源、注册与执行工具、定义和渲染 Prompt 模板,并支持会话管理与能力声明等 MCP 关键能力。
  • 主要功能点

    • 资源管理:托管并提供对资源的标准化访问,供 LLM 客户端读取和查询。
    • 工具注册与执行:注册外部工具,允许通过 MCP 客户端调用外部功能以扩展能力。
    • Prompt 定义与渲染:提供可自定义的 Prompt 模板,支持不同的 LLM 交互模式。
    • JSON-RPC 通信:遵循 MCP 的请求/响应格式,处理初始化、读取、调用等请求,返回统一的 JSON-RPC 响应。
    • 会话与能力声明:服务器端管理会话状态,声明自身能力与权限(如只读模式、管理员模式)。
    • 多传输协议支持(实现层面上可通过标准输入输出、HTTP、WebSocket 等实现,仓库中已有相应实现与测试覆盖)。
    • 安全性与扩展性:通过 admin 模式控制管理员工具的开启/关闭,确保对敏感工具的权限控制。
  • 安装步骤

    • 该仓库使用 Rust 编写,需提前准备好 Rust 开发环境。
    • 获取源码:克隆仓库并切换到主分支。
    • 构建:在仓库根目录执行 cargo build --release,生成可执行文件。
    • 运行 MCP 服务端:在工作区目录中启动 MCP 服务端(通过 Lemma CLI 提供的 mcp 子命令),例如运行时需要指定工作区目录。
    • 客户端连接:MCP 客户端通过 JSON-RPC 与服务器通讯,服务端在启动后会监听并处理来自客户端的请求。
  • 服务器配置(JSON 格式,供 MCP 客户端了解如何启动与连接) { "server_name": "Lemma MCP Server", "command": "lemma", "args": [ "mcp", "--dir", "/path/to/workspace" ] // 说明:server_name 为 MCP 服务端的标识名称;command 为启动命令(此处为 Lemma 的可执行名);args 列表为启动命令的参数(如工作区路径)。如需管理员权限,可在 args 中追加 "--admin"。 }

  • 基本使用方法

    • 启动:在支持的环境下,用上述配置启动 MCP 服务端进程。
    • 客户端操作:MCP 客户端通过 JSON-RPC 发送初始化、读取资源、调用工具、获取提示模板等请求,并接收服务器返回的响应。
    • 管理员操作:如果以管理员模式启动,可以执行添加新规范、获取源码等管理相关操作。
    • 监控与调试:结合测试用例和日志信息,验证资源、工具、Prompts 的注册与执行是否符合预期。
  • 运行要点

    • MCP 服务端需要一个工作区(workspace)目录来托管规格、资源、工具等内容。
    • 客户端启动参数需与服务器的实际启动参数保持一致,确保连接成功。
    • 如遇权限限制,请使用管理员模式启动以启用管理员工具。
  • 使用样例(简述)

    • 客户端发送初始化请求以建立会话。
    • 客户端请求工具列表、读取 SPEC 的内容、调用某个工具等。
    • 客户端获取并渲染 Prompts,来驱动对话。

服务器信息