ContextVM MCP服务器实现 SDK

使用说明

  • 项目简介
    • 本仓库实现了一个完整的 MCP 服务器端框架,用于向 LLM 客户端以标准化的方式提供资源、工具和提示模板等上下文能力,并通过 JSON-RPC 进行请求/响应的编排,支持多种传输协议与复杂的会话管理逻辑。
    • 服务器端核心包含:资源与工具的注册与管理、工具执行、资源渲染、提示模板渲染、会话管理、能力声明、以及通过传输层与客户端通信的能力。还提供了 Nostr 为载体的传输实现,以及对外暴露的网关/代理能力以实现去中心化访问。
  • 主要功能点
    • MCP 请求/响应处理:对接收的 MCP 请求进行验证、路由、会话管理与响应回传,支持初始化握手、权限控制、以及对响应的正确重写与投递。
    • 资源与工具管理:提供资源模板、资源读取、工具注册与执行等能力,支持动态资源与规则驱动的工具执行。
    • Prompt 模板支持:定义与渲染提示模板,支持按需定制 LLM 的交互模式。
    • 底层传输扩展:内置 Nostr 传输的服务器与客户端实现,以及与标准输入输出、WebSocket 等传输的桥接能力,确保 MCP 服务可通过多种传输协议接入。
    • 会话与权限管理:对接入客户端进行会话管理、初始化状态、以及按白名单/能力排除规则进行授权判断。
    • 安全与加密:支持可配置的消息加密策略(可选/必需/禁用),并在需要时对消息进行加密传输。
    • 监控与调试:提供日志、错误处理、以及内部状态暴露,便于排错与性能调优。
  • 安装步骤
    • 通过 npm/yarn/pnpm 安装 ContextVM SDK。
    • 将 MCP 服务器运行在你熟悉的运行环境中(Node.js、bun 等均可)。
  • 服务器配置(示例 JSON,供 MCP 客户端使用,用于指定启动 MCP 服务器的命令与参数)
    • 服务器名称(serverName):ContextVM 演示服务器
    • 启动命令(command):bun
    • 启动参数(args):["src/mocks/mock-mcp-server.ts"] 示例配置(无代码块展示,JSON 文本形式提供,客户端无需关心实现细节): { "serverName": "ContextVM-Demo-Server", "command": "bun", "args": ["src/mocks/mock-mcp-server.ts"] } 注释与说明:
    • serverName:用于标识 MCP 服务器的名称,客户端在初始化握手及元数据中可看到该名称。
    • command/args:为运行 MCP 服务器的具体命令及参数,客户端需要知道该服务器的启动指令以便建立连接。
    • 上述示例对应仓库中的示例 MCP 服务器实现路径,实际使用时请将路径替换为你的真实启动脚本。
  • 基本使用方法
    • 启动服务器:按照上方配置,使用合适的运行环境执行命令以启动 MCP 服务器。
    • 客户端连接:MCP 客户端需要知道服务器的启动方式(命令与参数)以及服务器名称,以建立连接并进行初始化握手。
    • 交互流程:客户端通过 JSON-RPC 调用工具、读取资源、获取提示等,服务器端进行鉴权、路由、并返回规范化的 JSON-RPC 响应。
    • 传输扩展:若需在去中心化网络中暴露 MCP 服务,可使用仓库中的 Nostr 传输实现、网关/代理等组件来实现跨网络访问。

服务器信息