mockd MCP 服务端

使用说明(Markdown 格式)

  • 项目简介

    • mockd 的 MCP 服务端负责以标准化的 JSON-RPC 方式向 AI 客户端提供上下文信息和能力,包括资源管理、工具注册/执行,以及提示模板的定义与渲染。服务器还实现会话管理、能力声明,以及对多种传输协议的支持,旨在为 LLM 应用提供可扩展、安全的上下文服务框架。
  • 主要功能点

    • 资源管理(Resources):托管并暴露数据资源,提供对资源的读取、浏览和访问能力。
    • 工具注册与执行(Tools):注册可由客户端调用的外部功能,支持参数化传入并返回结果。
    • 提示模板(Prompts):定义和渲染可定制的提示模板,支持变量替换、请求数据提取、模板函数等,便于与 LLM 的交互模式结合。
    • JSON-RPC 通信与会话管理:服务端接收 JSON-RPC 请求、返回 JSON-RPC 响应,管理客户端会话、能力协商与上下文。
    • 多传输协议支持:包括标准 IO 形式(stdio)、HTTP(S) + SSE/WebSocket 等传输方式,确保与不同环境的对接兼容。
    • Admin/API 动态配置:提供 API 接口以在运行时创建/更新/查询资源、工具和提示模板,以及会话信息。
    • 与 embed/外部引擎的集成点:提供嵌入式服务器能力,方便将 MCP 服务端集成到其他应用中。
  • 安装步骤

    • 需要 Go 1.23 及以上环境。
    • 获取源码并构建:
      • 克隆仓库,进入项目根目录,执行构建命令将生成可执行的 mockd。
    • 运行 MCP 服务器的两种方式:
      • stdioTransport(标准输入输出传输):
        • 直接在终端执行 mockd mcp,或通过指定命令与参数将 MCP 服务器以 stdio 打开给外部进程使用。
      • HTTP 传输嵌入模式:
        • 将 MCP 服务器嵌入到已有的后端服务中,通过提供 Admin API 配置与端口等,启动 MCP 的 HTTP 服务。
    • 参考运行时参数会在官方 CLI 中暴露出相应选项,如监听端口、Admin URL 等,具体用法请以 CLI 的帮助信息为准。
  • 服务器配置(MCP 客户端与 MCP 服务器的对接信息) 作为 MCP 客户端对接的服务器信息,以下为一个准确可行的 JSON 配置示例(用于 MCP 客户端在启动时指定要连接的 MCP 服务器信息;注:MCP 客户端本身不需要服务器实现的代码,仅需配置即可连接): { "server": { "name": "mockd", "command": "mockd", "args": ["mcp"] }, "transport": "stdio", "adminUrl": "http://localhost:4290" } 说明:

    • server.name:服务器名称,标识 MCP 服务端的源系统,示例为 "mockd"。
    • server.command:启动 MCP 服务端的可执行名,示例为 "mockd"。
    • server.args:启动 MCP 服务端的参数集合,示例为 ["mcp"],表示以 MCP 模式启动。
    • transport:传输方式,这里为 stdio,表示通过标准输入输出进行 JSON-RPC 通信。
    • adminUrl:管理接口的地址,MCP 客户端在需要时可通过此地址查询/管理服务器能力与资源。
  • 基本使用方法

    • 启动方式
      • 附着式(stdio):使用命令 mockd mcp,将 MCP 服务器以 stdio 方式暴露给 AI 客户端。
      • 嵌入式(HTTP):在需要将 MCP 与现有服务直接整合时,通过嵌入方式启动 MCP HTTP 服务,然后通过 Admin API 动态配置资源、工具和模板。
    • 客户端交互
      • 客户端通过 JSON-RPC 向 MCP 服务器发送请求,如读取资源、执行工具、获取提示模板等。
      • 服务器对请求进行处理,返回标准的 JSON-RPC 响应,若为通知类型则返回相应的接收状态。
    • 常见用例
      • 初始化会话、声明能力、上传资源、注册工具、读取或渲染提示模板,以及在 LLM 会话中动态调用工具实现更丰富的上下文服务。

服务器信息