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 服务器。
- 安全与健壮性
- 内置日志、错误处理、以及对连接的健壮性处理(重连、错误回调等)。
- 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 服务入口,以及对工具调用、会话生命周期等的完整处理逻辑,具备可运行的服务器能力,而非单纯示例。