Autobuildmcp

Autobuildmcp

🚀 AutoBuildMCP:基于MCP的自动化构建服务器

AutoBuildMCP是一款强大的、基于配置文件的自动化构建服务器,由模型上下文协议(MCP)提供支持。它允许符合MCP标准的客户端(如Cursor)无缝管理、执行和监控多个项目的构建过程。

该服务器采用持久化、有状态的架构,使用构建队列来管理并发操作,避免系统过载。

✨ 主要特性

  • 基于配置文件的管理:为每个项目定义独特的构建“配置文件”。每个配置文件封装了项目路径、构建命令、环境变量和超时时间。
  • 持久化状态:所有构建配置文件都存储在一个简单的builds.json文件中,确保服务器重启后配置仍然保留。
  • 构建队列系统:一个复杂的队列系统管理一组并发构建(默认:2个),防止服务器因多个并发请求而过载。新的构建会排队等待,一旦有可用插槽就会执行。
  • 异步、非阻塞执行:构建作为后台进程运行,允许服务器在构建进行时保持响应并处理其他API调用。
  • 全生命周期管理:一套完整的工具,用于配置、启动、监控、停止和删除构建。
  • 日志捕获:每次构建运行的完整stdoutstderr都会捕获到一个专用日志文件中,便于调试。
  • 重启恢复能力:如果服务器在构建执行期间重启,服务器会智能检测并将构建标记为“未知”,防止出现卡住的“运行中”状态。

📦 安装指南

安装过程在Windows和Linux/macOS环境下都很简单。

1. 构建环境

此脚本将创建一个Python虚拟环境,并从requirements.txt安装所有必要的依赖项,包括用于进程管理的psutil

在Windows上

.\build.bat

在Linux/macOS上

./build.sh

2. 运行服务器

这将启动AutoBuildMCP服务器及其后台构建工作进程。服务器将在http://localhost:5307可用。

在Windows上

.\run.bat

在Linux/macOS上

./run.sh

现在服务器已运行,准备好接受来自MCP客户端的请求。

📚 详细文档

服务器提供了一组工具,任何符合MCP标准的客户端都可以调用这些工具。

configure_build

创建或更新一个构建配置文件。

  • profile_name (str):配置文件的唯一名称(例如,my-web-app)。
  • project_path (str):项目根目录的绝对或相对路径。
  • build_command (str):执行构建的shell命令(例如,npm run build)。
  • environment (dict, 可选):为构建过程设置的环境变量字典。
  • timeout (int, 可选):构建的超时时间(以秒为单位,尚未实现)。

toggle_autobuild

启用或禁用某个配置文件的自动构建文件监视器。

  • profile_name (str):要修改的配置文件的名称。
  • enabled (bool):设置为true以启用自动构建,或设置为false以禁用它。

list_builds

列出所有已配置的构建配置文件及其最后已知状态。

get_build_status

检索特定构建配置文件的当前状态。

  • profile_name (str):要检查的配置文件的名称。
  • 返回值:状态,可以是configuredqueuedrunningsucceededfailedstoppedunknown

start_build

将某个配置文件的构建请求添加到队列中。

  • profile_name (str):要构建的配置文件的名称。
  • 返回值:确认消息和构建在队列中的位置。

stop_build

停止当前正在运行的构建。

  • profile_name (str):要停止的正在运行的配置文件的名称。

delete_build_profile

从服务器中删除一个构建配置文件。

  • profile_name (str):要删除的配置文件的名称。

get_build_log

检索某个配置文件最后一次运行的日志文件。

  • profile_name (str):配置文件的名称。
  • lines (int, 可选):如果提供,则只返回日志的最后N行(日志尾部)。

自动构建系统

服务器包含一个强大的自动构建系统,可以按配置文件启用。

工作原理

  1. 启用:使用toggle_autobuild工具为特定配置文件启用此功能。
  2. 监控:服务器将开始监控配置文件的project_path中的任何文件更改。
  3. 去抖动:当检测到更改时,一个5秒的倒计时计时器开始。如果发生另一次更改,计时器将重置。这可以防止在保存多个文件时引发大量构建。
  4. 触发:一旦计时器完成,服务器将检查配置文件的状态:
    • 如果配置文件空闲,则将一个新的构建添加到队列中。
    • 如果配置文件忙碌runningqueued),则设置一个rebuild_on_completion标志。构建工作进程将在当前构建完成后自动重新排队构建。

builds.json状态文件

此文件是服务器的核心,存储所有配置文件配置及其最后运行状态。您可以查看它以了解系统的当前状态。

builds.json示例

{
"my-web-app": {
"project_path": "C:/Users/Admin/projects/my-app",
"build_command": "npm install && npm run build",
"environment": {
"NODE_ENV": "production"
},
"timeout": 600,
"status": "succeeded",
"autobuild_enabled": true,
"rebuild_on_completion": false,
"last_run": {
"run_id": "08f7e57e-e46c-4ac3-b564-f3588018b9fd",
"pid": 12052,
"start_time": "2025-06-29T22:45:00.123456Z",
"end_time": "2025-06-29T22:46:12.123456Z",
"log_file": "logs/08f7e57e-e46c-4ac3-b564-f3588018b9fd.log",
"outcome_note": "Build status is unknown; server was restarted during execution."
}
}
}
  • 0 关注
  • 0 收藏,29 浏览
  • system 提出于 2025-10-06 14:12

相似服务问题

相关AI产品