Marionette MCP 服务器实现

使用说明(Markdown 格式)

  • 项目简介

    • Marionette 是一个基于 MCP 的后端服务器实现,目标是向大型语言模型客户端提供结构化的上下文信息、可注册的工具以及可渲染的提示模板。通过 JSON-RPC 风格的请求/响应方式,支持资源、工具调用和提示渲染等核心能力,并且具备会话管理和多传输协议的支持能力(如 Stdio、WebSocket、SSE 等)。
  • 主要功能点

    • MCP 服务器核心:实现对 MCP 请求(如读取工具、执行工具、获取提示等)的处理,返回符合 MCP 规范的 JSON-RPC 响应。
    • 工具注册与执行:工具注册中心根据服务器配置提供工具定义,并实现工具调用的执行逻辑(如 Set Task 等工具,与 Jira 等服务集成)。
    • 资源与会话管理:与 Claude Code 的 JSONL 会话结合,维持会话标识、任务名称、Jira 票据等元信息,支持历史会话的导入和实时监听。
    • 代理与扩展性:通过本地 API 代理与 WebSocket 服务,提供会话事件上报、状态同步、以及与前端 UI 的交互能力。
    • 配置与 CLI 集成:提供命令行脚本用于在 Claude Code 中注册 MCP 服务器,自动化把 MCP 服务器加入工作流中。
    • 传输与容错:提供 Stdio 传输作为 MCP 服务的默认实现,同时具备 WebSocket 等传输的扩展能力,具备重连与清理机制。
  • 安装步骤

    • 克隆仓库并安装依赖(建议使用 Node.js 18+、pnpm)。
    • 构建 MCP 服务器包:
      • 进入仓库根目录,安装依赖并构建 packages/mcp-server。
    • 启动 MCP 服务器(示例路径以实际环境为准):
      • 运行 dist/index.js(通过 npm/yarn/pnpm 脚本进行构建后的输出)。
    • 配置 Claude Code 使用 Marionette:
      • 通过 marionette-mcp 配置脚本,将 Marionette 服务器以 Node 进程形式作为 MCP 服务注册到 Claude Code。
    • 运行 Claude Code,确保 Marionette API 服务地址正确(默认 http://localhost:8787)。
  • 服务器配置(MCP 客户端无需额外开发,只是供配置参考)

    • server_name: Marionette MCP Server
    • command: node
    • args: ["/path/to/仓库根目录/packages/mcp-server/dist/index.js"]
    • env: MARIONETTE_API_URL: "http://localhost:8787" // 后端 MCP API 的入口地址 注释说明:以上是 Claude Code 作为 MCP 客户端时需要在配置中填写的字段组合。MCP 客户端会使用这些信息来启动并连接到 MCP 服务器,后续的通讯采用 MCP 约定的 JSON-RPC 请求/响应格式。
  • 基本使用方法

    • 启动 MCP 服务后,确保 Claude Code 已经安装并配置指向 Marionette 的 MCP 服务器(通过前述 CLI 配置步骤)。
    • Claude Code 将通过 MCP 通道向 Marionette 请求工具定义、执行工具、获取提示等。
    • 服务器端会管理会话身份、工具运行、以及与外部系统(如 Jira、WebSocket 通道)之间的交互。
    • 通过服务器日志与 API 代理的错误处理来排查问题,必要时可调整 MARIONETTE_API_URL 等环境变量。
  • 额外信息

    • 本实现包含一个文件 watcher、一个 API 代理、以及若干服务组件(如 WebSocket 服务、Jira 服务、工具注册等),以支撑 MCP 服务器在真实场景中的持续运行、扩展性与可观测性。

服务器信息