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

473 lines
19 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 阿里云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)