| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 2 个月前 | ||
| 1 年前 | ||
| 1 年前 | ||
| 1 年前 | ||
| 1 年前 |
ccbMcp MCP Server 使用说明
ccbMcp 提供了管理 EulerMaker 构建系统的 MCP 服务,支持工程管理、构建任务管理、软件包下载等功能。
1. 环境准备
安装 Python 依赖:
uv pip install pydantic pyyaml --trusted-host mirrors.huaweicloud.com -i https://mirrors.huaweicloud.com/repository/pypi/simple
安装 ccb 命令行工具:
使用openEuler社区openEuler-24.03-LTS-SP2或以上版本的源,安装ccb
yum install ccb
确保以下命令可以执行:
ccb -h
2. MCP 配置
在插件 Roo Code 中配置 MCP 服务器,编辑 MCP 配置文件 mcp_settings.json,在 mcpServers 中新增如下内容,以对接 EulerMaker 社区环境的配置为例:
{
"mcpServers": {
"ccbMcp": {
"command": "python3",
"args": [
"/opt/mcp-servers/servers/ccb_mcp/src/ccb_mcp.py",
"--HOME_DIR=${your_home_directory}",
"--SRV_HTTP_REPOSITORIES_HOST=eulermaker.compass-ci.openeuler.openatom.cn",
"--SRV_HTTP_REPOSITORIES_PORT=443",
"--SRV_HTTP_REPOSITORIES_PROTOCOL=https://",
"--SRV_HTTP_RESULT_PROTOCOL=https://",
"--SRV_HTTP_RESULT_HOST=eulermaker.compass-ci.openeuler.openatom.cn",
"--SRV_HTTP_RESULT_PORT=443",
"--DAG_HOST=eulermaker.compass-ci.openeuler.openatom.cn",
"--DAG_PORT=443",
"--GATEWAY_IP=eulermaker.compass-ci.openeuler.openatom.cn",
"--GATEWAY_PORT=443",
"--GITEE_ID=${your_gitee_id}",
"--GITEE_PASSWORD=${your_gitee_password}",
"--ACCOUNT=${your_account}",
"--PASSWORD=${your_password}",
"--OAUTH_TOKEN_URL=https://omapi.osinfra.cn/oneid/oidc/token",
"--OAUTH_REDIRECT_URL=https://eulermaker.compass-ci.openeuler.openatom.cn/oauth/",
"--PUBLIC_KEY_URL=https://omapi.osinfra.cn/oneid/public/key?community=openeuler"
],
"disabled": false
}
}
}
参数说明:HOME_DIR为环境上环境变量中的家目录,必填;网关GATEWAY_IP和GATEWAY_PORT必须配置; gitee账号GITEE_ID和GITEE_PASSWORD若不配置只能执行游客可执行的命令; SRV_HTTP_RESULT_HOST,SRV_HTTP_RESULT_PORT是存储job日志的微服务,和SRV_HTTP_RESULT_PROTOCOL仅用于ccb log子命令;SRV_HTTP_REPOSITORIES_HOST和SRV_HTTP_REPOSITORIES_PORT是repo源,和SRV_HTTP_REPOSITORIES_PROTOCOL仅用于ccb download子命令,若无下载需求,可以不配置。
3. 功能说明
ccbMcp 提供以下工具函数:
select_projects(os_project, owner, fields, sort)- 查询EulerMaker中的工程信息select_snapshots(os_project, snapshot_id, fields, sort)- 查询指定工程的所有快照select_builds(build_id, os_project, fields)- 查询EulerMaker中的构建任务create_project(project_name, json_config, description, spec_name, spec_url, spec_branch, os_variant, architecture)- 创建EulerMaker工程update_project(project_name, json_config, package_name, package_url, package_branch, users_to_remove, users_to_add)- 更新EulerMaker工程set_package_lock(project_name, package_name, action)- 设置包的锁定状态build_single_package(os_project, package_name, json_config, os_variant, architecture)- 执行单包构建,返回构建结果URLbuild(build_type, os_project, snapshot_id, build_targets, os_variant, architecture)- 执行全量或增量构建,返回构建结果URLdownload_package(os_project, snapshot_id, packages, architecture, dest, source, debug, subpackages)- 下载软件包cancel(build_id)- 取消构建任务log(job_id)- 查看job日志
4. 使用示例
4.1 核心场景
创建工程
创建名为test-project的工程:
- 包名:gcc
- 包URL:https://gitee.com/src-openeuler/gcc.git
- 分支:master
- 构建环境:openEuler:24.03-LTS-SP1
- 架构:x86_64
更新工程
向test-project工程添加以下包,每行信息分别为包名,url,分支名:
- gcc-for-openEuler,https://gitee.com/openeuler/gcc-for-openEuler.git,master
- fstrm,https://gitee.com/src-openeuler/fstrm.git,openEuler-20.03-LTS
同时添加用户权限:
- 添加用户:user1,角色:maintainer
- 删除用户:user2
执行构建
全量构建test-project工程
或基于快照ce4e7a42-3167-11f0-bae2-02291c731353增量构建
单包构建
构建test-project工程的python-flask包:
- 构建环境:openEuler:24.03-LTS-SP1
- 架构:x86_64,aarch64
下载软件包
下载test-project工程的gcc包:
- 架构:aarch64
- 保存路径:/tmp/rpms
4.2 普通场景
查询工程信息
查询test-project工程信息:
- 返回字段:os_project,users
- 排序:create_time:desc
查询所有owner为user1的工程
查询快照
查询test-project工程的所有快照:
- 排序:create_time:desc
查询特定快照ID的详细信息
查询构建任务
查询test-project工程的所有构建任务:
- 返回字段:build_id,build_type
查询特定构建ID的详细信息
设置包锁定状态
锁定test-project工程的gcc包:
- 包名:gcc
- 操作:lock
解锁test-project工程的gcc包:
- 包名:gcc
- 操作:unlock
取消构建
取消构建任务:
- 构建ID:cfa874d6-2f11-11f0-a00b-eaafa4f3ec35
查看日志
查看job日志:
- job ID:cbs.67890