catalog/repos/2284730142--alibabacloud-devops-mcp-server.md

473 lines
19 KiB
Markdown
Raw Normal View History

2026-04-06 19:01:37 +08:00
# 阿里云DevOps MCP服务
`MCP` `阿里云` `DevOps` `云效` `AI助手` `流水线`
<p align="center">English | <a href="README.zh-cn.md">中文</a><br></p>
# alibabacloud-devops-mcp-server
[阿里云云效 DevOps](https://www.aliyun.com/product/yunxiao) MCP Server 为 AI 助手提供与云效平台交互的能力,使其能够读取项目中的工作项内容、理解需求后自动编写代码,并提交代码合并请求。企业开发团队可借此辅助代码审查、优化任务管理、减少重复操作,从而专注于更重要的创新与产品交付。
## 功能特性
alibabacloud-devops-mcp-server 为 AI 助手提供以下能力:
- `organization-management`:组织管理工具(组织列表、组织详情、部门信息、组织角色、成员信息等)
- `code-management`:代码仓库管理工具(仓库管理、分支管理、合并请求管理、文件树等)
- `project-management`:项目管理工具(项目管理、工作项管理、工作项字段、工作项评论、工时记录等)
- `pipeline-management`:流水线管理工具(流水线列表、流水线配置、资源管理、标签管理、部署管理等)
- `application-delivery`:应用交付工具(部署单管理、应用管理、应用标签、变量组管理等)
- `packages-management`:制品仓库管理工具(制品仓库、制品列表等)
- `test-management`:测试管理工具(测试用例管理、测试用例目录、测试计划、测试结果等)
## 工具列表
alibabacloud-devops-mcp-server 集成了多种工具,包括:
### 组织管理
- `get_current_organization_Info`:获取当前用户的组织信息
- `get_user_organizations`:获取当前用户已加入的组织列表
- `get_organization_role`:获取组织角色信息
- `get_organization_departments`:获取组织的部门列表
- `get_organization_department_info`:获取组织中某个部门的信息
- `get_organization_department_ancestors`:获取组织中某个部门的上级部门
- `get_organization_members`:获取组织的成员列表
- `get_organization_member_info`:获取组织中某个成员的信息
- `get_organization_member_info_by_user_id`:通过用户 ID 获取组织成员信息
- `search_organization_members`:搜索组织成员
- `list_organization_roles`:列出组织角色
- `get_organization_role`:获取组织角色信息
### 代码管理工具
- `create_branch`:创建分支
- `delete_branch`:删除分支
- `get_branch`:获取分支信息
- `list_branches`:获取分支列表
- `create_file`:创建文件
- `delete_file`:删除文件
- `get_file_blobs`:获取文件内容
- `list_files`:查询文件树
- `update_file`:更新文件内容
- `create_change_request`:创建合并请求
- `create_change_request_comment`:在合并请求上创建评论
- `get_change_request`:查询合并请求
- `list_change_request_patch_sets`:查询合并请求版本列表
- `list_change_request`:查询合并请求列表
- `list_change_request_comments`:查询合并请求评论列表
- `get_compare`:比较代码差异
- `get_repository`:获取仓库详情
- `list_repositories`:获取仓库列表
### 项目管理工具
- `get_project`:获取项目详情
- `search_projects`:搜索项目
- `get_sprint`:获取迭代详情
- `list_sprints`:列出项目中的迭代
- `get_work_item`:获取工作项详情
- `search_workitems`:搜索工作项
- `get_work_item_types`:获取工作项类型
- `create_work_item`:创建工作项
- `list_all_work_item_types`:列出组织中所有工作项类型
- `list_work_item_types`:列出项目空间中的工作项类型
- `get_work_item_type`:获取特定工作项类型的详情
- `list_work_item_relation_work_item_types`:列出可与特定工作项关联的工作项类型
- `get_work_item_type_field_config`:获取特定工作项类型的字段配置
- `get_work_item_workflow`:获取特定工作项类型的工作流信息
- `list_work_item_comments`:列出特定工作项的评论
- `create_work_item_comment`:为特定工作项创建评论
- `list_current_user_effort_records`【项目管理】获取用户的实际工时明细结束时间和开始时间的间隔不能大于6个月
- `list_effort_records`:【项目管理】获取实际工时明细
- `create_effort_record`:【项目管理】登记实际工时
- `list_estimated_efforts`:【项目管理】获取预计工时明细
- `create_estimated_effort`:【项目管理】登记预计工时
- `update_effort_record`:【项目管理】更新登记实际工时
- `update_estimated_effort`:【项目管理】更新登记预计工时
### 流水线管理工具
- `get_pipeline`:获取流水线详情
- `list_pipelines`:获取流水线列表
- `smart_list_pipelines`:使用自然语言时间引用智能搜索流水线
- `create_pipeline_run`:创建流水线运行实例
- `get_latest_pipeline_run`:获取最新流水线运行实例
- `get_pipeline_run`:获取流水线运行详情
- `list_pipeline_runs`:获取流水线运行列表
- `list_pipeline_jobs_by_category`:按分类获取流水线执行任务
- `list_pipeline_job_historys`:获取流水线任务的执行历史
- `execute_pipeline_job_run`:手动运行流水线任务
- `get_pipeline_job_run_log`:获取流水线任务的执行日志
- `list_service_connections`:列出组织中的服务连接
- `create_pipeline_from_description`:自动生成 YAML 配置并创建流水线
- `update_pipeline`:通过 pipelineId 更新云效中现有的流水线(可更新 YAML、阶段、任务等
- `create_resource_member`:创建资源成员
- `delete_resource_member`:删除资源成员
- `list_resource_members`:获取资源成员列表
- `update_resource_member`:更新资源成员
- `update_resource_owner`:转让资源所有者
- `create_tag`:创建标签
- `create_tag_group`:创建标签组
- `list_tag_groups`:获取标签组列表
- `delete_tag_group`:删除标签组
- `update_tag_group`:更新标签组
- `get_tag_group`:获取标签组
- `delete_tag`:删除标签
- `update_tag`:更新标签
- `stop_vm_deploy_order`:停止虚拟机部署单
- `skip_vm_deploy_machine`:跳过虚拟机部署机器
- `retry_vm_deploy_machine`:重试虚拟机部署机器
- `resume_vm_deploy_order`:恢复虚拟机部署单
- `get_vm_deploy_order`:获取虚拟机部署单详情
- `get_vm_deploy_machine_log`:获取虚拟机部署机器日志
### 应用交付工具
- `create_change_order`:【应用交付】创建部署单
- `list_change_order_versions`:【应用交付】查看部署单版本列表
- `get_change_order`:【应用交付】读取部署单使用的物料和工单状态
- `list_change_order_job_logs`:【应用交付】查询环境部署单日志
- `find_task_operation_log`:【应用交付】查询部署任务执行日志,其中通常包含下游部署引擎的调度细节信息
- `execute_job_action`:【应用交付】操作环境部署单
- `list_change_orders_by_origin`:【应用交付】根据创建来源查询部署单
- `create_appstack_change_request`:【应用交付】创建变更请求
- `get_appstack_change_request_audit_items`:【应用交付】获取变更请求的审批项
- `list_appstack_change_request_executions`:【应用交付】列出变更请求的执行记录
- `list_appstack_change_request_work_items`:【应用交付】列出变更请求的工作项
- `cancel_appstack_change_request`:【应用交付】取消变更请求
- `close_appstack_change_request`:【应用交付】关闭变更请求
- `list_applications`:【应用交付】分页列出组织中的应用
- `get_application`:【应用交付】通过名称获取应用详情
- `create_application`:【应用交付】创建新应用
- `update_application`:【应用交付】更新现有应用
- `get_latest_orchestration`:【应用交付】获取某环境的最新编排
- `list_app_orchestration`:【应用交付】列出应用编排
- `create_app_orchestration`:【应用交付】创建应用编排
- `delete_app_orchestration`:【应用交付】删除应用编排
- `get_app_orchestration`:【应用交付】获取应用编排
- `update_app_orchestration`:【应用交付】更新应用编排
- `get_env_variable_groups`:【应用交付】获取某环境的变量组
- `create_variable_group`:【应用交付】创建变量组
- `delete_variable_group`:【应用交付】删除变量组
- `get_variable_group`:【应用交付】获取变量组
- `update_variable_group`:【应用交付】更新变量组
- `get_app_variable_groups`:【应用交付】获取应用的变量组
- `get_app_variable_groups_revision`:【应用交付】获取应用变量组的版本
- `search_app_templates`:【应用交付】搜索应用模板
- `create_app_tag`:【应用交付】创建应用标签
- `update_app_tag`:【应用交付】更新应用标签
- `search_app_tags`:【应用交付】搜索应用标签
- `update_app_tag_bind`:【应用交付】更新应用标签绑定
- `create_global_var`:【应用交付】创建全局变量组
- `get_global_var`:【应用交付】获取全局变量组
- `update_global_var`:【应用交付】更新全局变量组
- `list_global_vars`:【应用交付】列出全局变量组
- `get_machine_deploy_log`:【应用交付】获取机器部署日志
- `add_host_list_to_host_group`:【应用交付】将主机列表添加到主机组
- `add_host_list_to_deploy_group`:【应用交付】将主机列表添加到部署组
- `list_app_release_workflows`:【应用交付】列出应用的所有发布流程
- `list_app_release_workflow_briefs`:【应用交付】列出应用的发布流程概要
- `get_app_release_workflow_stage`:【应用交付】获取发布流程阶段详情
- `list_app_release_stage_briefs`:【应用交付】列出发布阶段概要
- `update_app_release_stage`:【应用交付】更新应用发布流程阶段
- `list_app_release_stage_runs`:【应用交付】列出发布阶段执行记录
- `execute_app_release_stage`:【应用交付】为变更请求执行发布流程阶段
- `cancel_app_release_stage_execution`:【应用交付】取消发布流程阶段执行
- `retry_app_release_stage_pipeline`:【应用交付】重试发布流程阶段流水线
- `skip_app_release_stage_pipeline`:【应用交付】跳过发布流程阶段流水线
- `list_app_release_stage_execution_integrated_metadata`:【应用交付】列出阶段执行的集成元数据
- `get_app_release_stage_pipeline_run`:【应用交付】获取发布阶段流水线运行实例
- `pass_app_release_stage_pipeline_validate`:【应用交付】通过发布流程阶段校验
- `get_app_release_stage_execution_pipeline_job_log`:【应用交付】获取流水线任务执行日志
- `refuse_app_release_stage_pipeline_validate`:【应用交付】拒绝发布流程阶段校验
### 制品仓库管理工具
- `list_package_repositories`:获取制品仓库详情列表
- `list_artifacts`:获取制品详情列表
- `get_artifact`:获取单个制品详情
### 测试管理工具
- `list_testcase_directories`:【测试管理】获取测试用例目录列表
- `create_testcase_directory`:【测试管理】创建测试用例目录
- `get_testcase_field_config`:【测试管理】获取测试用例字段配置
- `create_testcase`:【测试管理】创建测试用例
- `search_testcases`:【测试管理】搜索测试用例
- `get_testcase`:【测试管理】获取测试用例信息
- `delete_testcase`:【测试管理】删除测试用例
- `list_test_plans`:【测试管理】获取测试计划列表
- `get_test_result_list`:【测试管理】获取测试计划中的测试用例列表
- `update_test_result`:【测试管理】更新测试结果
## 使用方式
### 前置条件
* Node.js 版本 >= 18.0.0
* [阿里云云效 DevOps](https://www.aliyun.com/product/yunxiao) 个人访问令牌,[点击此处获取](https://help.aliyun.com/zh/yunxiao/developer-reference/obtain-personal-access-token)。需授予组织管理、项目协作、代码管理、流水线管理、制品仓库管理、应用交付及测试管理下所有 API 的读写权限。
![个人令牌授权页面](https://agent-install-beijing.oss-cn-beijing.aliyuncs.com/alibabacloud-devops-mcp-server/img_8.jpg)
## 快速开始(推荐:使用 Stdio 模式)
**Stdio 模式**是最简单、最常用的方式,适用于大多数 MCP 客户端(如 Cursor、Claude Desktop、iFlow 等)。无需安装 Docker通过 npx 即可运行。
### 方式一:通过 NPX 直接使用(最简单)
在您的 MCP 客户端配置文件中添加以下配置:
```json
{
"mcpServers": {
"yunxiao": {
"command": "npx",
"args": [
"-y",
"alibabacloud-devops-mcp-server"
],
"env": {
"YUNXIAO_ACCESS_TOKEN": "<YOUR_TOKEN>"
}
}
}
}
```
> **注意**
> - 将 `<YOUR_TOKEN>` 替换为您的云效访问令牌
> - `-y` 标志可自动确认安装,无需手动确认
> - 此方式使用 **stdio 模式**,通过标准输入/输出与 MCP 客户端通信
### 方式二:通过 MCP 市场安装
通灵码(阿里云通义灵码)内置的 MCP 市场已提供阿里云 DevOps MCP 服务。安装时,只需在灵码中进入 MCP 市场,搜索"云效 DevOps",点击安装即可。
---
## 使用 Docker可选
如需通过 Docker 运行 MCP Server可选择 **stdio 模式**或 **SSE 模式**
### Docker Stdio 模式
此方式与直接使用 npx 类似,但通过 Docker 容器运行。
#### 1. 获取 Docker 镜像
**方式一:使用官方镜像(推荐)**
```shell
docker pull build-steps-public-registry.cn-beijing.cr.aliyuncs.com/build-steps/alibabacloud-devops-mcp-server:v0.2.0
```
**方式二:自行构建镜像**
```shell
docker build -t alibabacloud/alibabacloud-devops-mcp-server .
```
#### 2. 配置 MCP 客户端
在您的 MCP 客户端配置文件中添加以下内容:
```json
{
"mcpServers": {
"yunxiao": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"YUNXIAO_ACCESS_TOKEN",
"build-steps-public-registry.cn-beijing.cr.aliyuncs.com/build-steps/alibabacloud-devops-mcp-server:v0.2.0"
],
"env": {
"YUNXIAO_ACCESS_TOKEN": "<YOUR_TOKEN>"
}
}
}
}
```
> **注意**
> - 若使用自建镜像,请将镜像名称替换为 `alibabacloud/alibabacloud-devops-mcp-server`
> - 此方式使用 **stdio 模式**,容器通过标准输入/输出进行通信
### Docker SSE 模式
SSE 模式通过 HTTP 提供服务,适用于需要独立部署或支持多用户的场景。
#### 1. 启动 SSE 服务
**使用官方镜像:**
```shell
docker run -d --name yunxiao-mcp \
-p 3000:3000 \
-e YUNXIAO_ACCESS_TOKEN="your_token_here" \
-e PORT=3000 \
-e MCP_TRANSPORT=sse \
build-steps-public-registry.cn-beijing.cr.aliyuncs.com/build-steps/alibabacloud-devops-mcp-server:v0.2.0 \
node dist/index.js --sse
```
**使用自建镜像:**
```shell
docker run -d --name yunxiao-mcp \
-p 3000:3000 \
-e YUNXIAO_ACCESS_TOKEN="your_token_here" \
-e PORT=3000 \
-e MCP_TRANSPORT=sse \
alibabacloud/alibabacloud-devops-mcp-server \
node dist/index.js --sse
```
#### 2. 配置 MCP 客户端
在您的 MCP 客户端配置文件中添加以下内容:
```json
{
"mcpServers": {
"yunxiao": {
"url": "http://localhost:3000/sse"
}
}
}
```
如需在连接时传入自定义令牌(而非使用服务启动时的默认令牌):
```json
{
"mcpServers": {
"yunxiao": {
"url": "http://localhost:3000/sse?yunxiao_access_token=YOUR_TOKEN_HERE"
}
}
}
```
#### 3. 管理 SSE 服务
查看日志:
```shell
docker logs -f yunxiao-mcp
```
停止服务:
```shell
docker stop yunxiao-mcp
```
### 通过 Docker Compose 运行 SSE 模式
1. **环境配置**
```shell
cd alibabacloud-devops-mcp-server
cp .env.example .env
# 编辑 .env 文件并设置 YUNXIAO_ACCESS_TOKEN
```
2. **启动服务**
```shell
docker compose up -d
```
3. **配置 MCP 客户端**
```json
{
"mcpServers": {
"yunxiao": {
"url": "http://localhost:3000/sse"
}
}
}
```
---
## 高级 SSE 模式配置
### 使用自定义令牌
在 SSE 模式下,每个用户可通过以下方式传入自己的令牌:
1. **通过查询参数**(推荐):
```
http://localhost:3000/sse?yunxiao_access_token=USER_SPECIFIC_TOKEN
```
2. **通过请求头**
```
x-yunxiao-token: USER_SPECIFIC_TOKEN
```
这样多个用户可以共享同一个 SSE 服务,同时使用各自独立的令牌进行身份认证。
### 在 Codex 中配置 SSE 模式
如果您的云效 MCP Server 已在 `http://localhost:3000` 以 SSE 模式运行,可在 Codex 中按如下方式配置:
**使用默认令牌(服务启动时配置):**
```json
{
"mcpServers": {
"yunxiao": {
"url": "http://localhost:3000/sse"
}
}
}
```
**在 URL 中传入令牌:**
```json
{
"mcpServers": {
"yunxiao": {
"url": "http://localhost:3000/sse?yunxiao_access_token=YOUR_TOKEN_HERE"
}
}
}
```
### 工具集
服务器现已支持工具集,允许您仅启用所需的工具,从而减少呈现给 AI 助手的工具数量,提升性能。
可用工具集:
- `organization-management`:组织管理工具(组织列表、组织详情、部门信息、组织角色、成员信息等)
- `code-management`:代码仓库管理工具(仓库管理、分支管理、合并请求管理、文件树等)
- `project-management`:项目管理工具(项目管理、工作项管理、工作项字段、工作项评论、工时记录等)
- `pipeline-management`:流水线管理工具(流水线列表、流水线配置、资源管理、标签管理、部署管理等)
- `packages-management`:制品仓库管理工具(制品仓库、制品列表等)
- `application-delivery`:应用交付工具(部署单管理、应用管理、应用标签、变量组管理等)
- `test-management`:测试管理工具(测试用例管理、测试用例目录、测试计划、测试结果等)
可通过命令行参数或环境变量指定工具集:
1. 通过命令行参数:
```bash
npx -y alibabacloud-devops-mcp-server --toolsets=code-management,project-management
```
2. 通过环境变量:
```bash
DEVOPS_TOOLSETS=code-management,project-management npx -y alibabacloud-devops-mcp-server
```
若未指定工具集,默认启用所有工具。
## 联系我们
如有任何问题,欢迎加入阿里云 DevOps 讨论群134400004101进行交流。
![阿里云 DevOps MCP Server 交流群](https://agent-install-beijing.oss-cn-beijing.aliyuncs.com/alibabacloud-devops-mcp-server/1750147152464.png)
## 相关链接
- [阿里云云效 DevOps](https://www.aliyun.com/product/yunxiao)
- [MCP 市场](https://modelscope.cn/mcp/servers/@aliyun/alibabacloud-devops-mcp-server)
- [使用案例示例](https://mp.weixin.qq.com/s/KQsN6dQlnNeCNATC-QD7pg)