SuperNovae MCP 服务器实现
使用说明
- 项目简介
- 本仓库实现了一个基于 MCP 的后端服务器框架,核心职责包括管理资源 (Resources)、注册并执行工具 (Tools)、定义和渲染 Prompt 模板,并通过 JSON-RPC 风格的 MCP 协议与客户端进行通信。服务器通过 Unix 域套接字接收请求,解析 MCP 请求码并返回相应的 JSON-RPC 响应,同时提供会话管理和能力声明,支持对外暴露的多种传输和工具能力。
- 主要功能点
- MCP 协议核心处理:实现请求类型(如 PING、GET_SECRET、LIST_PROVIDERS、MODEL_LIST、MODEL_PULL、MODEL_LOAD、MODEL_UNLOAD、MODEL_STATUS、MODEL_DELETE 等)及其相应的响应类型,确保前后端数据结构对齐。
- 资源与工具托管:提供资源数据读取和工具注册/执行的后端能力,为 LLM 客户端提供丰富的上下文和外部功能调用入口。
- Prompt 模板与渲染:支持定义和渲染 Prompt 模板,以便于与 LLM 的对话交互进行自定义化管理。
- 安全与会话管理:实现会话级别的能力声明、协议版本对齐、以及对密钥/凭据的安全传输考虑(如 Secret 的获取、无缝回落等)。
- 多传输协议与本地通信:通过 Unix 套接字实现本地进程间通信,具备长度前缀的消息传输格式,便于与本地 MCP 客户端集成。
- 安装与运行步骤
- 步骤 1:编译源码
- 使用 cargo 构建:cargo build
- 步骤 2:启动服务
- 通过现有的工作流(如 spn 守护进程/服务模式)来启动 MCP 服务器;仓库中提供的守护进程入口与服务器初始化逻辑可与现有的调度/守护框架整合运行。
- 步骤 3:配置 MCP 服务器(客户端侧不需要真实运行指令,仅供参考的服务器配置示例)
- 步骤 1:编译源码
- 服务器配置示例(客户端用,JSON 格式,请在 MCP 客户端配置中使用)
- server_name: neo4j
- command: npx
- args: ["-y", "@neo4j/mcp-server-neo4j"]
- env: { "NEO4J_URI": "bolt://localhost:7687" }
- annotation: "这是供 MCP 客户端连接使用的服务器启动信息,客户端需要至少知道 server name、command、args,以建立与 MCP 服务器的通信。客户端本身无需运行服务器代码。" 备注:依据仓库中的 mcp.yaml 示例,neo4j 服务的完整配置通常包含上面的 command、args 以及可选的 env 变量。
- 基本使用方法(对开发/运维人员)
- 启动与测试
- 部署后,通过 MCP 客户端连接到指定的 UNIX 域套接字,发送 MCP 请求(如 PING、MODEL_LIST、MODEL_PULL 等)。管理员可通过日志确认健康状态和能力声明。
- 运行时配置
- 通过团队级别配置(如 mcp.yaml/ spn.yaml)对 MCP 服务进行扩容、禁用、环境变量注入等操作。
- 维护与扩展
- 按需注册新的 Tools/Resources,完善 Prompts,提升 LLM 客户端对后端能力的利用率。
- 启动与测试