使用说明
项目简介
shadow-cljs-mcp 是一个 Model Context Protocol (MCP) 服务器,它能够连接到正在运行的 shadow-cljs 构建进程,并实时跟踪构建进度、错误和完成状态。此服务器为 LLM 提供了一个工具,使其能够在修改 ClojureScript 文件后,验证构建是否成功。
主要功能点
- 实时构建状态监控: 监听 shadow-cljs 的构建事件,包括构建开始、完成、失败、警告和错误。
- 提供构建状态工具: LLM 可以调用 'get_last_build_status' 工具,获取最新的 shadow-cljs 构建状态报告。
- 详细构建信息: 构建状态报告包含构建状态(成功/失败)、编译的文件列表、警告和错误信息、构建持续时间等,方便 LLM 理解构建结果。
- 易于集成: 通过标准的 MCP 协议与 LLM 客户端通信,配置简单。
安装步骤
- 安装 Node.js 和 npm: 确保你的系统已安装 Node.js 和 npm。
- 全局安装 shadow-cljs-mcp: 打开终端,运行以下命令全局安装 'shadow-cljs-mcp':
npm install -g shadow-cljs-mcp
服务器配置
要将 'shadow-cljs-mcp' 服务器添加到 MCP 客户端(例如 Cline/Cursor/Claude),需要在客户端的 MCP 服务器配置中添加以下 JSON 配置。请注意,这段配置是在 MCP 客户端中进行的,而不是在服务器端。
{ "mcpServers": { "shadow-cljs-mcp": { "command": "npx", // 启动服务器的命令,这里使用 npx 运行全局安装的 shadow-cljs-mcp "args": ["shadow-cljs-mcp"], // 传递给启动命令的参数,这里没有参数 "disabled": false, // 是否禁用该服务器,设置为 false 表示启用 "autoApprove": [], // 自动批准的工具列表,这里为空表示不自动批准任何工具 "timeout": 60 // 请求超时时间,单位为秒 } } }
配置参数说明(给 MCP 客户端配置人员看):
- '"shadow-cljs-mcp"': 服务器名称,在客户端配置中用于标识和引用该服务器。可以自定义,但需要与后续使用方法中的 '<server_name>' 保持一致。
- '"command": "npx"': 指定用于启动 MCP 服务器的可执行命令。'npx' 用于运行本地或全局安装的 npm 包的可执行文件。
- '"args": ["shadow-cljs-mcp"]': 传递给 'command' 命令的参数列表。这里 '"shadow-cljs-mcp"' 是要通过 'npx' 运行的 npm 包的可执行文件名。
- '"disabled": false': 布尔值,指示服务器是否被禁用。'false' 表示启用,'true' 表示禁用。
- '"autoApprove": []': 一个字符串数组,列出可以自动批准的工具名称。当 LLM 请求调用列在此处的工具时,无需用户手动批准即可执行。这里为空数组表示不自动批准任何工具,每次调用工具都需要手动批准(如果客户端有批准机制)。
- '"timeout": 60': 整数,设置客户端等待 MCP 服务器响应的超时时间,单位为秒。如果服务器在指定时间内没有响应,客户端可能会取消请求并报错。
基本使用方法
-
确保 shadow-cljs 正在运行: 'shadow-cljs-mcp' 服务器依赖于正在运行的 shadow-cljs 实例。请确保你的 shadow-cljs 构建进程已启动,并且默认监听在 'localhost:9630' 端口。
-
启动 shadow-cljs-mcp 服务器: 在终端中运行以下命令启动 'shadow-cljs-mcp' 服务器:
shadow-cljs-mcp服务器默认通过标准输入/输出 (stdio) 与 MCP 客户端通信。
-
在 LLM 中使用 'get_last_build_status' 工具: 在你的 LLM 应用中,可以使用 '<use_mcp_tool>' 标签或相应的 MCP 客户端 API 调用 'get_last_build_status' 工具。例如,在 Markdown 格式的 LLM 指令中可以这样使用:
在编辑 ClojureScript 文件后,使用 shadow-cljs-mcp 服务器的 'get_last_build_status' 工具来验证构建是否成功: <use_mcp_tool> <server_name>shadow-cljs-mcp</server_name> <tool_name>get_last_build_status</tool_name> <arguments> {} </arguments> </use_mcp_tool>LLM 客户端会将请求发送到 'shadow-cljs-mcp' 服务器,服务器会返回包含构建状态信息的 JSON 响应,例如:
{ "status": "completed", "resources": 317, "compiled": 1, "warnings": 0, "duration": 0.609, "compiledFiles": [ "path/to/your/file.cljs (505ms)" ] }或
{ "status": "failed", "message": "Build failed", "details": { // Error information } }LLM 可以根据这些信息向用户报告构建结果。
注意事项
- 确保 shadow-cljs 实例在默认端口 '9630' 上运行。
- 'shadow-cljs-mcp' 服务器需要在 shadow-cljs 构建进程运行后启动。
- LLM 应该在每次编辑 ClojureScript 文件后调用 'get_last_build_status' 工具,以获取最新的构建状态。
信息
分类
开发者工具