mcp-auto-build
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mcp-auto-buildBuild the frontend project at /home/user/my-app"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MCP 前后端自动打包服务
一个基于 Node.js 的前后端项目自动打包服务,支持 Maven(后端)和 npm(前端)项目的自动化打包。
功能特性
📦 后端打包:支持 Maven 项目,自动生成带版本号的 jar 文件
📱 前端打包:支持 npm 项目,自动生成带版本号的 zip 压缩包
📊 版本管理:自动获取 SVN 版本号,支持向上查找多层目录
🎯 分步执行:提供多个独立工具,便于流程编排和调试
🔄 错误处理:完善的异常处理,不影响 MCP 服务稳定性
Related MCP server: MCP Universal Test Suite Generator
环境要求
Node.js >= 18.0.0
Java/Maven(后端项目打包)
Node.js/npm(前端项目打包)
SVN 客户端(版本号获取)
安装依赖
npm install启动服务
npm startMCP Tools
1. getProjectInfo
获取项目基本信息,包括项目名称、类型和 SVN 版本信息。
参数:
参数 | 类型 | 必填 | 说明 |
projectRoot | string | 是 | 本地工程的根路径 |
返回示例:
{
"projectName": "my-project",
"projectType": "frontend",
"hasSvn": true,
"projectRoot": "/path/to/project",
"currentRevision": "123",
"maxRevision": "125"
}2. buildBackend
对后端 Java 项目进行 Maven 打包。
参数:
参数 | 类型 | 必填 | 说明 |
projectRoot | string | 是 | 本地工程的根路径 |
projectName | string | 是 | 项目名称 |
revision | string | 是 | SVN 版本号 |
返回示例:
{
"projectName": "my-project",
"revision": "123",
"outputPath": "/path/to/project/ruoyi-admin/target/ruoyi-admin-2026-6-28-r123.jar"
}3. buildFrontend
对前端项目进行 npm 打包。
参数:
参数 | 类型 | 必填 | 说明 |
projectRoot | string | 是 | 本地工程的根路径 |
projectName | string | 是 | 项目名称 |
revision | string | 是 | SVN 版本号 |
返回示例:
{
"projectName": "my-project",
"revision": "123",
"outputPath": "/path/to/project/dist/my-project-2026-6-28-r123.zip"
}4. buildPackage
完整打包工程,包含所有步骤。
参数:
参数 | 类型 | 必填 | 说明 |
projectRoot | string | 是 | 本地工程的根路径 |
saveProjectName | string | 否 | 保存项目名称的路径 |
返回示例:
{
"projectName": "my-project",
"currentRevision": "123",
"maxRevision": "125"
}使用流程
分步执行模式
Step 1: getProjectInfo → 获取项目类型、名称、SVN版本号
Step 2: buildFrontend / buildBackend → 根据 projectType 执行打包一键打包模式
buildPackage → 自动完成所有步骤Dify 流程编排示例
可在 Dify 中创建工作流,将各个工具串联使用:
输入节点:接收 projectRoot 参数
getProjectInfo:获取项目信息
条件分支:根据 projectType 选择打包方式
前端 → buildFrontend
后端 → buildBackend
输出节点:返回打包结果
项目结构
src/
├── mcpServer.js # MCP Server 入口
├── entry/
│ └── index.js # 工具函数入口
├── build/
│ ├── index.js # 打包入口
│ ├── buildBackendProject.js # 后端打包逻辑
│ └── buildFrontendProject.js # 前端打包逻辑
├── svnRevision/
│ └── index.js # SVN版本获取
└── utils/
└── common.js # 通用工具函数注意事项
后端项目需包含
pom.xml文件,前端项目需包含package.json文件SVN 版本号通过读取
.svn/wc.db数据库获取,支持向上查找最多 10 层目录后端项目默认输出路径为
ruoyi-admin/target/,可根据实际项目结构调整前端项目打包命令优先使用
npm run build:prod,其次使用npm run build
License
ISC
Available Tools
4 toolsbuildBackend后端项目打包B
对后端Java项目进行Maven打包,支持若依框架。打包结果为带有日期和SVN版本号的jar文件。
使用场景:
单独对后端项目进行打包
在CI/CD流程中分步执行
| Name | Required | Description | Default |
|---|---|---|---|
| revision | Yes | SVN版本号 | |
| projectName | Yes | 项目名称 | |
| projectRoot | Yes | 本地工程的根路径 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must carry the full behavioral burden. It states the output artifact (jar with date and SVN revision) and the build system (Maven), adding useful context. However, it does not disclose prerequisites, side effects, error behavior, or the return format, leaving significant behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, with the core purpose in the first sentence and a short list of use cases. No fluff is present, and the key information is front-loaded, though the usage scenarios add only modest value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with three required parameters, no annotations, and no output schema, the description is incomplete. It explains the build output but fails to specify what the tool returns or outputs to the caller, nor any preconditions like Maven being installed, leaving agents to guess about execution results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so all three parameters are already described in the schema. The description does not add further detail about parameter formats, defaults, or relationships, so it provides no value beyond the schema baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool performs Maven packaging for a backend Java project, mentions RuoYi framework support, and specifies the output is a jar file with date and SVN version. This distinct action and resource make it easy to differentiate from the sibling buildFrontend, though it does not explicitly distinguish from the generic buildPackage.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides two usage scenarios: standalone backend packaging and stepwise execution in CI/CD, giving some context for when to use the tool. However, it does not state exclusions or recommend alternatives, leaving differentiation between buildBackend and buildPackage/buildFrontend to the agent's inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
buildFrontend前端项目打包A
对前端项目进行npm打包,支持Vue/React等框架。打包结果为带有日期和SVN版本号的zip压缩包。
使用场景:
单独对前端项目进行打包
在CI/CD流程中分步执行
| Name | Required | Description | Default |
|---|---|---|---|
| revision | Yes | SVN版本号 | |
| projectName | Yes | 项目名称 | |
| projectRoot | Yes | 本地工程的根路径 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions the output format (zip with date and SVN version) but does not disclose side effects such as whether it runs npm install, modifies the project directory, or how failures are handled. Some context is provided, but significant behavioral aspects remain unexplained.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, with the main action and output format stated upfront. The usage scenarios are brief and add context without redundancy. There is no unnecessary elaboration. It is well-structured and front-loaded, though it could arguably be even more compact.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 3 required parameters, no output schema, and no annotations, the description provides a reasonable overview but lacks some details. It does not explain the output location or how the zip is returned, nor any prerequisites (e.g., Node.js, npm install). The usage scenarios help, but an agent might still need to infer certain operational aspects.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so each parameter already has a clear description in the schema. The tool description does not add any additional parameter-specific details beyond what the schema provides. It only references the revision indirectly in the output format, which does not enhance parameter understanding. Baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: npm packaging for frontend projects, with support for Vue/React. It specifies the output format (zip with date and SVN version). It distinguishes from buildBackend by the word 'frontend', but does not explicitly differentiate from the generic buildPackage sibling, so it falls short of a full 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description lists two usage scenarios: standalone frontend packaging and step-by-step execution in CI/CD. This gives clear context on when to use it, but it does not mention any exclusions or alternatives (e.g., when to use buildPackage instead). No explicit when-not-to-use guidance, so not a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
buildPackage打包工程A
完整打包工程,包含获取项目信息、获取SVN版本号、执行打包等全部步骤。支持本地工程的打包,打包结果为带有SVN版本的标准格式。
使用场景:
需要一次性完成整个打包流程
简单的打包任务
| Name | Required | Description | Default |
|---|---|---|---|
| projectRoot | Yes | 本地工程的根路径 | |
| saveProjectName | No | 保存项目名称的路径,如果没有当前工程,则使用项目根目录的名称 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full transparency burden. It discloses the major steps and the output format, but does not mention potential side effects such as files written to disk, interaction with SVN servers, required permissions, or whether the operation modifies the working copy.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and well structured: the first sentence defines scope and output, and the use-case list adds practical invocation context. There is no filler or redundant repetition of schema details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the overall workflow, local support, and output format, which is adequate for a high-level understanding. However, it omits output location, artifact naming conventions, prerequisites like a valid SVN working copy, and how it relates to the separate backend/frontend build tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already describes both parameters with 100% coverage, so the baseline is 3. The description adds only general context about local packaging and does not clarify saveProjectName beyond what the schema already states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool as an end-to-end packaging operation: it gathers project info, obtains the SVN revision, and executes the packaging, with a standard-format output. It is distinguishable from siblings through its emphasis on the complete single-flow packaging, though it does not explicitly name or contrast them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit use scenarios: when the user wants the entire packaging flow done at once and for simple packaging tasks. It does not explicitly state when not to use this tool or mention alternatives such as buildBackend/buildFrontend, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getProjectInfo获取项目信息A
获取项目的基本信息,包括项目名称、类型(前端/后端/未知)和是否有SVN版本控制。
使用场景:
在打包前确认项目类型
检查项目是否有SVN版本信息
| Name | Required | Description | Default |
|---|---|---|---|
| projectRoot | Yes | 本地工程的根路径 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are absent, so the description carries the full burden of disclosing side effects, safety, and failure modes. It only says 'get' information and lists return fields; it does not state that the operation is read-only, requires no modifications, or may fail on invalid paths. This leaves behavioral expectations ambiguous for an unannotated tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, front-loaded with the core purpose, and then lists two concrete usage scenarios in bullet form. Every sentence contributes actionable information with no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter get-info tool with no output schema, the description adequately covers the return content and typical call context. It lacks explicit failure-mode or side-effect notes, which would matter more for mutation tools; this gap is minor here.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the single parameter projectRoot, which already includes a clear description of the path. The tool description adds no parameter-specific guidance, so the schema alone does the heavy lifting; baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific action (获取项目的基本信息 – get basic project info) and lists the exact fields returned (name, type with enum, SVN status). It is unmistakably a read/info tool, and the sibling build* tools make the contrast obvious even without naming them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit usage scenarios are given: 'before packaging to confirm project type' and 'check if project has SVN version info'. This provides clear context on when to call it. It does not explicitly name sibling tools as alternatives, but the listed use cases naturally route away from the build tools, so a 4 is warranted.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
4 tool updates
v1.0.0- First observed
buildBackend - First observed
buildFrontend - First observed
buildPackage - First observed
getProjectInfo
TDQS
Scored across 4 tools
buildPackage is clearly the full end-to-end workflow, while buildBackend and buildFrontend are explicitly scoped to individual project types. getProjectInfo is distinct as an informational tool, so an agent can choose correctly based on whether a full or partial build is needed. There is minor potential overlap between buildPackage and the specific build tools, but the use-case descriptions resolve it.
All tool names follow a consistent camelCase verb-first pattern: buildPackage, buildBackend, buildFrontend, getProjectInfo. The verbs are descriptive and the naming style is uniform across the entire server.
Four tools is well-scoped for a build automation server: one full-build orchestrator, two project-type-specific builders, and one information-gathering tool. Each tool has a clear role, and none feel redundant or missing.
The tool surface covers the full build lifecycle: retrieving project metadata, building backend projects, building frontend projects, and performing a complete packaged build. There are no obvious dead ends or missing operations within the stated build-automation purpose.
Maintenance
Related MCP Connectors
A MCP server built for developers enabling Git based project management with project and personal…
Deploy apps on your cloud. Create environments, configure infrastructure, and monitor jobs.
Create, deploy, and operate MCP servers directly from your GitHub repositories.
Provide AI-powered real-time analysis and intelligence on NPM packages, including security, depend…
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceAutomates Java Maven testing workflows with decision table-based test generation, security vulnerability scanning, JaCoCo coverage analysis, and Git automation.-
- FlicenseNot gradedqualityDmaintenanceEnables AI assistants to analyze Java and Web projects, automatically generate unit tests (JUnit) and end-to-end tests (Selenium), and execute them directly through Maven or NPM commands.-
- FlicenseAqualityDmaintenanceEnables automatic generation of complete Maven projects (applications, plugins, libraries) with intelligent package detection, customizable file structure, and integrated ZIP export functionality.81-
- AlicenseNot gradedqualityDmaintenanceAutomates routine DevOps tasks like Jenkins builds and GitLab merge requests through the MCP protocol, simplifying daily operations.4 npm1MIT