Astro MCP 服务器实现

使用说明(简要概览,便于快速上手):

  • 项目简介

    • 该仓库实现了一个 MCP 服务器端,用于将 Astro 的任务上下文、工具、提示等通过 MCP 协议暴露给客户端(如 Claude Code、Claude SDK、Codex 等)。服务器端负责会话管理、能力声明、以及向客户端注册工具、返回提示模板,并通过 JSON-RPC 方式与 MCP 客户端通信。
    • 服务器核心组件包括会话桥接(SessionBridge)、工具处理(ToolHandlers)、以及一个基于 stdio 的 MCP 服务器入口,供 Claude Code 等客户端连接并执行工具。
  • 主要功能点

    • MCP 核心功能实现
      • 接收 MCP 请求,处理工具调用、会话 attach/detach、状态查询、以及消息发送等操作。
      • 提供工具集(astro_attach、astro_detach、astro_status、astro_send)以供客户端操作会话和任务进度。
    • 会话桥接与多任务支持
      • 通过 SessionBridge 实现 Claude Code 会话与 Astro 任务的绑定与交互,支持多会话并发。
    • 服务器运行模式
      • 以 MCP 服务器形式运行,支持 stdio 传输(以及未来扩展的其他传输)。
    • 配置与扩展
      • 提供 getClaudeCodeMcpConfig/getClaudeCodeConfigPath 等辅助函数,便于在 Claude Code 环境中集成 MCP 服务器。
    • 安全与健壮性
      • 内置日志、错误处理、以及对连接的健壮性处理(重连、错误回调等)。
  • 安装步骤(简要)

    • 克隆仓库并安装依赖。
    • 根据你的运行环境编译/构建 TypeScript 代码(若有构建脚本,按项目实际情况执行)。
    • 启动 MCP 服务器:
      • 将服务器入口通过 Node 运行,或在你的应用中导入 runMcpServer 并执行。
    • 配置 Claude Code 的 MCP 客户端以连接该 MCP 服务器(详见下方的服务器配置示例)。
  • 服务器配置(MCP 客户端需要的配置信息)

    • 说明:MCP 客户端需要一个服务器的启动信息(包括名称、执行命令及参数等)。以下为示例配置格式的说明,实际参数以你本地部署的 MCP 服务器为准。
    • serverName: Astro MCP 服务器在你的系统中的标识名称
    • command: 启动服务器的命令
    • args: 启动命令的参数数组
    • 注释:该配置仅用于客户端了解如何连接 MCP 服务器;客户端本身并不需要包含实际服务器实现的代码。

    示例(JSON 说明文本,非代码块): { "serverName": "astro-mcp", "command": "node", "args": ["dist/mcp/server.js", "--relay", "wss://relay.example", "--log-level", "info"], "description": "Astro MCP 服务的启动命令与参数。实际路径以构建产物为准。" }

  • 基本使用方法

    • 启动服务器后,客户端(Claude Code 等)将通过 MCP 协议向服务器发起请求,服务器返回工具集合、处理请求、渲染 Prompts,并在会话中持续推送状态与事件。
    • 客户端可以通过 astro_attach/astro_detach/astro_status/astro_send 等工具与服务器的会话进行交互,包括附加到任务、查询状态、发送消息、以及处理工具输出等。
    • 服务端还提供配置扩展能力,例如通过 getClaudeCodeMcpConfig 等函数将 MCP 服务注册到 Claude Code 的配置中。
  • 重要注意

    • MCP 的具体请求/响应格式由 Model Context Protocol 定义。该实现提供了对 ListTools、CallTool 等请求的处理能力,并通过 SessionBridge 实现 Claude Code 会话的桥接与任务绑定。
    • 服务器实现包含 stdio 传输的 MCP 服务入口,以及对工具调用、会话生命周期等的完整处理逻辑,具备可运行的服务器能力,而非单纯示例。

服务器信息