CodeArts MCP
Provides integration with Huawei Cloud CodeArts, enabling management of requirements, code repositories, pipelines, checks, test plans, deployments, builds, and artifacts.
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
CodeArts MCP
面向华为云 CodeArts 中国站的统一 MCP Server,将 8 个产品模块封装为标准化 MCP 工具集,支持本地 stdio 与团队共享 http 两种接入模式。
特性亮点
8 模块统一封装 — Req / Repo / Pipeline / Check / TestPlan / Deploy / Build / Artifact 一站式覆盖
双模式接入 — stdio 适合个人本地使用,http + session 适合团队共享部署
会话隔离 — 共享模式下每个用户使用自己的 AK/SK,互不干扰
加密持久化 — 凭证经 AES-256-GCM 加密落盘,服务重启后可恢复会话
Cookie / Token 双恢复 — 客户端保留 Cookie 或固定 auth_token 均可无缝重连
CLI 兼容 — 复用同一批 MCP 工具 handler,支持本地 AK/SK 直调和远程统一 HTTP
/mcp调用速率限制 — 写操作内置 per-session 限流,防止误操作风暴
缓存加速 — 高频读工具带共享缓存与 in-flight dedupe,命中后毫秒级响应
Related MCP server: poly-git-mcp
技术栈
类别 | 技术 | 版本 |
运行时 | Node.js | 22 (Alpine) |
语言 | TypeScript | 5.8+ |
MCP 协议 | @modelcontextprotocol/sdk | 1.12+ |
数据校验 | Zod | 3.24+ |
测试 | Vitest | 4.1+ |
构建 | tsc + esbuild | — |
代码规范 | ESLint | 9.0+ |
容器 | Docker + Docker Compose | — |
反向代理 | Nginx | — |
架构概览
stdio 模式
graph LR
A[MCP Client] -->|stdio| B[MCP Server]
B -->|API| C[CodeArts APIs]http 模式
graph LR
A[MCP Client] -->|HTTP/S| B[Nginx]
B -->|proxy| C[HTTP Server :3000]
C --> D[MCP Server]
D -->|API| E[CodeArts APIs]内部结构
graph TB
subgraph MCP Server
A[Auth / Session] --> B[Product Tools]
B --> B1[Req]
B --> B2[Repo]
B --> B3[Pipeline]
B --> B4[Check]
B --> B5[TestPlan]
B --> B6[Deploy]
B --> B7[Build]
B --> B8[Artifact]
C[Cache] --> B
D[Rate Limiter] --> B
end快速开始
1. 启动共享服务
cp .env.example .env
# 编辑 .env,至少填写 MCP_AUTH_MASTER_KEY
docker compose up -d --build或宿主机直跑:
npm install && npm run build
node dist/src/server/index.js2. 客户端添加服务
{
"mcpServers": {
"codearts": {
"type": "http",
"url": "http://your-server-ip/mcp"
}
}
}当前已部署的共享服务推荐使用一个统一入口,可以直接使用下面这份配置:
{
"mcpServers": {
"codearts": {
"disabled": false,
"timeout": 60,
"type": "streamableHttp",
"url": "https://codeartsmcp.top/mcp",
"headers": {
"X-CodeArts-AK": "your-ak",
"X-CodeArts-SK": "your-sk",
"X-CodeArts-Region": "cn-north-4"
}
}
}
}共享 HTTPS 服务已启用客户端凭证 Header 模式。每个用户只需在自己的 MCP 配置中填写 AK、SK 和区域即可访问,不需要调用 auth_configure_session;请勿把真实凭证提交到代码仓库或发送到群聊。
统一入口 /mcp 一次暴露 Req、Repo、Pipeline、Check、TestPlan、Deploy、Build、Artifact 全部工具。旧的产品子路径仍保留兼容:
/mcp/req/mcp/repo/mcp/pipeline/mcp/check/mcp/testplan/mcp/deploy/mcp/build/mcp/artifact
如果客户端希望按产品模块分别启用工具,也可以沿用原来的 8 个服务配置:
{
"mcpServers": {
"req": {
"disabled": false,
"timeout": 60,
"type": "streamableHttp",
"url": "https://codeartsmcp.top/mcp/req",
"headers": {
"X-CodeArts-AK": "your-ak",
"X-CodeArts-SK": "your-sk",
"X-CodeArts-Region": "cn-north-4"
}
},
"repo": {
"disabled": false,
"timeout": 60,
"type": "streamableHttp",
"url": "https://codeartsmcp.top/mcp/repo",
"headers": {
"X-CodeArts-AK": "your-ak",
"X-CodeArts-SK": "your-sk",
"X-CodeArts-Region": "cn-north-4"
}
},
"pipeline": {
"disabled": false,
"timeout": 60,
"type": "streamableHttp",
"url": "https://codeartsmcp.top/mcp/pipeline",
"headers": {
"X-CodeArts-AK": "your-ak",
"X-CodeArts-SK": "your-sk",
"X-CodeArts-Region": "cn-north-4"
}
},
"check": {
"disabled": false,
"timeout": 60,
"type": "streamableHttp",
"url": "https://codeartsmcp.top/mcp/check",
"headers": {
"X-CodeArts-AK": "your-ak",
"X-CodeArts-SK": "your-sk",
"X-CodeArts-Region": "cn-north-4"
}
},
"testplan": {
"disabled": false,
"timeout": 60,
"type": "streamableHttp",
"url": "https://codeartsmcp.top/mcp/testplan",
"headers": {
"X-CodeArts-AK": "your-ak",
"X-CodeArts-SK": "your-sk",
"X-CodeArts-Region": "cn-north-4"
}
},
"deploy": {
"disabled": false,
"timeout": 60,
"type": "streamableHttp",
"url": "https://codeartsmcp.top/mcp/deploy",
"headers": {
"X-CodeArts-AK": "your-ak",
"X-CodeArts-SK": "your-sk",
"X-CodeArts-Region": "cn-north-4"
}
},
"build": {
"disabled": false,
"timeout": 60,
"type": "streamableHttp",
"url": "https://codeartsmcp.top/mcp/build",
"headers": {
"X-CodeArts-AK": "your-ak",
"X-CodeArts-SK": "your-sk",
"X-CodeArts-Region": "cn-north-4"
}
},
"artifact": {
"disabled": false,
"timeout": 60,
"type": "streamableHttp",
"url": "https://codeartsmcp.top/mcp/artifact",
"headers": {
"X-CodeArts-AK": "your-ak",
"X-CodeArts-SK": "your-sk",
"X-CodeArts-Region": "cn-north-4"
}
}
}
}这种配置会在客户端显示 8 个独立 MCP 服务,每个服务只加载对应产品的工具;需要哪个模块就启用哪个。8 个入口可以使用同一组个人 AK/SK,但各自维护独立的 MCP session。
统一入口共用一个 MCP session、鉴权持久化、Cookie 和 auth_token。兼容子路径仍按路径隔离 session;新接入不需要配置或切换这些子路径。
若客户端不保留 Cookie,请使用 Authorization: Bearer <auth_token> 复用凭证。不要把 token 放到 URL query;URL 容易进入代理日志、浏览器历史和监控系统。
Authorization: Bearer replace-with-auth-token3. 首次鉴权
共享服务可以由运维侧只开启一次客户端凭证 Header 模式:
MCP_AUTH_ALLOW_CLIENT_CREDENTIAL_HEADERS=true之后每个用户在自己的 MCP 配置里填写自己的 AK/SK,不需要管理员预置用户,也不需要调用 auth_configure_session:
{
"mcpServers": {
"codearts": {
"type": "streamableHttp",
"url": "https://your-server-domain/mcp",
"headers": {
"X-CodeArts-AK": "your-ak",
"X-CodeArts-SK": "your-sk",
"X-CodeArts-Region": "cn-north-4"
}
}
}
}该模式必须使用 HTTPS。AK/SK 会保存在用户本机的 MCP 配置中,并随请求发送;服务端不会把它们写入请求日志,但反向代理也必须禁止记录请求头。不同用户的 Header 会建立相互隔离的加密会话。
默认共享模式下,连接后调用 auth_configure_session:
{
"access_key": "your-ak",
"secret_key": "your-sk",
"region": "cn-north-4"
}单账号部署可以在服务端 .env 预置 HUAWEICLOUD_AK、HUAWEICLOUD_SK、HUAWEICLOUD_REGION 和随机的 MCP_AUTH_STATIC_TOKEN。MCP 客户端直接配置固定 Bearer 请求头即可,不需要再通过自然语言调用鉴权工具:
{
"mcpServers": {
"codearts": {
"type": "streamableHttp",
"url": "http://your-server-ip/mcp",
"headers": {
"Authorization": "Bearer replace-with-mcp-auth-static-token"
}
}
}
}静态模式的 AK/SK 只保留在服务端环境变量中;客户端只保存可轮换的 MCP token。多用户共享场景继续使用 auth_configure_session,不要共用一个静态 token。
4. 验证连通
以下四个读工具能正常返回即表示接通成功:
验证工具 | 所属模块 |
| Req |
| Repo |
| Pipeline |
| Build |
部署方式
部署方式对比
特性 | Docker Compose | PM2 + Nginx | 本地 stdio |
适用场景 | 团队共享(推荐) | 团队共享(无 Docker) | 个人本地 |
隔离性 | 容器隔离 | 进程级隔离 | 无隔离 |
HTTPS | docker-compose.ssl.yml | Nginx 配置 | 不适用 |
会话持久化 | 支持 | 支持 | 不适用 |
运维复杂度 | 低 | 中 | 最低 |
水平扩展 | 可配合负载均衡 | 可配合负载均衡 | 不适用 |
健康检查 | 内置 /health | 需手动配置 | 不适用 |
Docker Compose 部署(推荐)
# HTTP
docker compose up -d --build
# HTTPS(需先准备证书,见 deploy/nginx/ssl/)
docker compose -f docker-compose.ssl.yml up -d --build必需环境变量:
MCP_TRANSPORT=http
MCP_HTTP_PORT=3000
MCP_HTTP_HOST=0.0.0.0
MCP_SERVER_NAME=codearts-mcp
MCP_SERVER_VERSION=0.1.0
MCP_AUTH_MASTER_KEY=replace-with-a-long-random-secret
MCP_AUTH_DATA_PATH=.codearts-mcp/auth-store.jsonPM2 部署
使用项目提供的部署脚本:
# 初始化
bash deploy/bootstrap-shared.sh
# 部署前自检
bash deploy/preflight-shared.sh
# 启动/停止/重启
bash deploy/manage-shared-pm2.sh start|stop|restart脚本 | 用途 |
| 初始化环境与目录结构 |
| 部署前自检 |
| PM2 进程管理 |
| 运维工具集 |
| Docker Compose 管理 |
本地 stdio
MCP_TRANSPORT=stdio
HUAWEICLOUD_AK=your-ak
HUAWEICLOUD_SK=your-sk
HUAWEICLOUD_REGION=cn-north-4
MCP_SERVER_NAME=codearts-mcp
MCP_SERVER_VERSION=0.1.0客户端启动命令:
node dist/src/server/index.jsCLI 怎么用
CLI 就是“用命令行调用 MCP 工具”。它有两种用法:
你要做什么 | 用哪种模式 | 凭证从哪里来 |
在自己电脑或 CI 里直接调用 CodeArts | 本地模式 | 本机环境变量里的 |
调用已经部署好的团队共享 MCP 服务 | 远程模式 | 共享服务返回的 |
1. 本地模式:不需要启动服务
先设置 AK/SK:
$env:HUAWEICLOUD_AK="your-ak"
$env:HUAWEICLOUD_SK="your-sk"
$env:HUAWEICLOUD_REGION="cn-north-4"
$env:MCP_SERVER_NAME="codearts-mcp"
$env:MCP_SERVER_VERSION="0.1.0"然后调用:
npm run cli -- tools --format table
npm run cli -- call req_list_projects --input '{"page":1,"page_size":20}' --format table2. 远程模式:调用产品级 /mcp/<family>
npm run cli -- call req_list_projects `
--transport http `
--endpoint https://your-domain.example/mcp/req `
--token replace-with-auth-token `
--input '{"page":1}' `
--format table3. 常用命令
命令 | 用途 |
| 查看有哪些工具 |
| 查看某个工具需要哪些参数 |
| 调用工具 |
| 从 JSON 文件读取参数 |
| 生成 PowerShell 自动补全脚本 |
更多 profile、补全、文件输入示例见 CLI Usage。
API 文档入口
文档 | 用途 |
命令行调用 MCP 工具:本地模式、远程模式、profile、表格输出和补全 | |
HTTP 端点、MCP JSON-RPC、鉴权会话、请求响应和接入示例 | |
完整 MCP 功能 API 总目录;完整参数表、字段对应和 JSON Schema 按模块拆分到明细页 | |
8 个 CodeArts 服务的 MCP API 总览、基础 URL、工具清单和 live 边界 | |
Req 深度 API 文档,包含 Scrum、需求池、IPD、写入 gate 和 smoke 样本缺口 | |
按模块解释每个服务能做什么、适合什么场景 | |
各模块读写规模、live 状态和关键缺口 |
模块现状总表
8product modules2346product tools2session/auth tools for sharedhttpmode2348total MCP tools in sharedhttpmode
工具读写分布:读操作 177 (63.7%) / 写操作 101 (36.3%)
Module | Tools | Live status | Current breakdown |
Req | 364 | Partial | Expanded Req surface with current-user info/role and user-feature reads, project bug/summary/statistics/metric reads, project domain reads, work-item-tree count/list, work-item tag/index-count reads, project work-item history reads, child work-item reads, work-hours/work-hour-type reads, issue image upload/download, attachment upload/download/delete, associated wiki reads, plan work-item management, plan image update, plan-context work item creation, work-item template/copy writes, project-template update/delete writes, project due-days-after/workhour-config reads, status-name check, status/status-attribute/status-detail/workflow-config/template/template-config/custom-field/status-rule-flag/status-config/optional-status-config/tracker-handler and project-public-config reads plus field/cache reads and board work-item reads; see |
Repo | 459 | Partial |
|
Pipeline | 257 | Partial |
|
Check | 146 | Partial |
|
TestPlan | 762 | Partial |
|
Deploy | 110 | Partial | Expanded v4 surface with partial live closure; see |
Build | 167 | Validated | Expanded metadata read surface with live smoke coverage |
Artifact | 81 | Partial |
|
Live 状态说明:
状态 | 含义 |
Validated | 所有工具已通过真实 AK/SK 联调验证 |
Partial | 部分工具已验证,其余可用但受租户样本或区域发布限制 |
环境变量参考
必需变量
变量 | 说明 | 默认值 |
| 传输模式: | — |
| 服务名称 | — |
| 服务版本 | — |
| 会话加密主密钥(http 模式必需) | — |
可选变量
变量 | 说明 | 默认值 |
| HTTP 监听端口 |
|
| HTTP 监听地址;本地默认只监听回环地址,共享/容器部署需显式设为 |
|
| 允许携带 | — |
| 无请求的有状态 MCP 会话回收时间(毫秒); |
|
| 单个共享 HTTP 实例允许保留或正在初始化的 MCP session 总数;每个 session 都会持有一套 MCP 工具服务器,达到上限时一次回收最多 16 个最老的空闲 session,只有全部 session 都在处理请求时才返回 |
|
| HTTP MCP JSON 请求体最大字节数;超限请求返回 |
|
| Node.js 运行时参数;共享容器默认将堆上限设为 2560 MB |
|
| 限制当前实例只暴露指定产品族;可填 | — |
| 产品写入每个 action/session 的限流次数 |
|
| 产品写入限流窗口 |
|
| 鉴权写入每个 session 的限流次数 |
|
| 鉴权写入限流窗口 |
|
| 加密凭证持久化路径 |
|
| 可选单账号 HTTP 模式的固定 Bearer token | — |
| 允许共享服务从 MCP 客户端 Header 接收每用户 AK/SK;仅限 HTTPS |
|
| HTTPS 环境下设置 Cookie Secure 标志 |
|
| CLI 默认调用模式: |
|
| CLI 远程 HTTP MCP 入口 | — |
| CLI 远程调用使用的 Bearer token | — |
| CLI 默认 profile 名称 | — |
| CLI profile 配置文件路径 |
|
| CLI 默认输出格式: |
|
| 默认 AK(stdio 或单账号 HTTP 模式) | — |
| 默认 SK(stdio 或单账号 HTTP 模式) | — |
| 默认区域(stdio 或单账号 HTTP 模式) | — |
CodeArts 的部分列表接口在数据量较大时可能需要十几秒才返回响应头,客户端读取请求默认等待 30 秒并对 GET 请求重试一次。
产品 URL 覆盖(cn-north-4 默认值)
标准区域会根据 region 自动推导,通常无需手动填写。以下为 cn-north-4 默认映射:
变量 | 默认值 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
常用命令
命令 | 说明 |
| 开发模式启动(stdio) |
| 开发模式启动(http) |
| 列出 CLI 可调用工具 |
| 输出某个工具的输入/输出 JSON Schema |
| CLI 直接调用 MCP 工具并输出 JSON |
| 生成 PowerShell、Bash 或 Zsh 补全脚本 |
| TypeScript 编译 |
| 本地完整检查:lint、类型、ToolManifest、文档同步、测试、构建 |
| 运行测试 |
| 快速测试(无隔离) |
| 隔离模式测试 |
| 代码规范检查 |
| 输出模块统计 |
| 检查 ToolManifest 与实际 stdio/http 工具注册是否一致 |
| 检查 README/Wiki 统计块是否漂移 |
| 同步自动统计区块到文档 |
| 对共享 HTTP 入口做多轮连通性与延迟采样 |
Windows 本机 Node/npm 包装脚本:
powershell -ExecutionPolicy Bypass -File .\scripts\npmw.ps1 run check
powershell -ExecutionPolicy Bypass -File .\scripts\npmw.ps1 run test:live
powershell -ExecutionPolicy Bypass -File .\scripts\nodew.ps1 .\dist\src\server\cli.js tools
.\scripts\nodew.cmd -e "console.log(process.version)"
.\scripts\npmw.cmd -v
.\scripts\npxw.cmd vitest --version如果你想让当前 PowerShell 会话直接可用 tsx、vitest、eslint 这类本地二进制,先执行:
. .\scripts\use-local-node.ps1如果你想直接打开一个已经切好本机 Node/npm 的新 PowerShell,执行:
.\scripts\dev-shell.cmd只做环境探测时可以运行:
npm run env:node说明:
这两个脚本会优先使用本机
npm.cmd/node.exe,避免误落到不可用的内置运行时。可通过
CODEARTS_MCP_NPM_CMD、CODEARTS_MCP_NODE_EXE显式覆盖路径。
安全特性
特性 | 说明 |
会话隔离 | 共享模式下每个用户独立会话,AK/SK 互不可见 |
加密持久化 | 凭证使用 AES-256-GCM 加密,密钥由 MCP_AUTH_MASTER_KEY 派生 |
Cookie / Token 恢复 | 支持 Cookie 自动重连或 auth_token 固定重连,无需重复输入凭证 |
HTTPS 支持 | 通过 docker-compose.ssl.yml 或 Nginx 配置启用,生产环境建议启用 MCP_AUTH_COOKIE_SECURE |
写操作速率限制 | 内置 per-session 限流,防止误操作或自动化脚本产生写风暴 |
凭证清除 | 调用 auth_clear_session 可立即撤销当前用户的持久化凭证 |
运维注意:MCP_AUTH_MASTER_KEY 和 MCP_AUTH_DATA_PATH 必须稳定保存,否则服务重启后无法恢复已有会话。
项目结构
codearts-mcp/
├── src/
│ ├── server/ # 服务入口、工具注册、会话管理
│ ├── products/ # 8 个产品模块(artifact/build/check/deploy/pipeline/repo/req/testplan)
│ ├── core/ # 通用能力(auth/cache/config/errors/http/pagination)
│ └── contracts/ # 共享类型与校验 schema
├── deploy/ # 部署脚本与 Nginx 配置
├── tests/ # 测试用例(与 src 镜像目录结构)
├── Dockerfile # 两阶段构建,node:22-alpine,暴露 3000,健康检查 /health
├── docker-compose.yml # HTTP 模式
├── docker-compose.ssl.yml # HTTPS 模式
├── ecosystem.config.cjs # PM2 配置
└── vitest.config.ts # 测试配置故障排查
现象 | 可能原因 | 解决方案 |
| 服务未启动或端口未暴露 | 检查 |
| AK/SK 错误或区域不支持 | 确认 AK/SK 有效且 region 填写正确(如 cn-north-4) |
Cookie 重连后仍需重新鉴权 | MCP_AUTH_MASTER_KEY 变更或数据文件丢失 | 确认 MASTER_KEY 和 AUTH_DATA_PATH 在重启间保持不变 |
写操作被限流 | 触发 per-session 速率限制 | 等待限流窗口重置,或减少并发写操作 |
某模块工具返回区域不可用 | 该产品尚未在当前区域发布 | 检查模块 Live 状态;参考区域 URL 默认映射 |
| stdio 模式下环境变量缺失 | 确认 HUAWEICLOUD_AK/SK/REGION 已设置 |
HTTPS 下 Cookie 不生效 | 未设置 MCP_AUTH_COOKIE_SECURE | 启用 HTTPS 后设置 |
Docker 构建失败 | Node 版本或依赖不匹配 | 确认 Dockerfile 基础镜像为 node:22-alpine;执行 |
进阶文档入口
入门与部署
docs/wiki/Home.md— 项目总览docs/wiki/Getting-Started.md— 详细上手指南docs/wiki/Team-Deployment.md— 团队部署方案docs/wiki/Testing-and-Live-Ops.md— 测试与线上运维docs/wiki/Troubleshooting.md— 故障排查手册
架构与能力
docs/product-overview.md— 产品概览docs/service-profile.md— 服务画像docs/wiki/Architecture-Deep-Dive.md— 架构深潜docs/wiki/Capability-Matrix.md— 能力矩阵docs/wiki/Module-Live-Readiness.md— 模块 Live 就绪状态
API 对齐
docs/wiki/Official-API-Alignment.md— 官方 API 对齐总览docs/wiki/Official-PDF-MCP-Coverage-Summary.md— PDF 覆盖摘要docs/wiki/Official-Category-Coverage-Matrix.md— 分类覆盖矩阵docs/wiki/Official-Endpoint-Mapping-Req-Repo-Pipeline.md— Req/Repo/Pipeline 端点映射docs/wiki/Official-Endpoint-Mapping-Check-Build-Deploy-Artifact-TestPlan.md— Check/Build/Deploy/Artifact/TestPlan 端点映射
模块验证
docs/wiki/Req-Live-Validated.mddocs/wiki/Check-Live-Validated.mddocs/wiki/Build-Live-Validated.mddocs/wiki/Deploy-Live-Validated.mddocs/wiki/Artifact-Live-Validated.mddocs/wiki/TestPlan-Live-Validated.md
This server cannot be deployed
Maintenance
Related MCP Connectors
Community preview of HuaweiCloud DevKit MCP server (official: io.github.huaweicloud)
Governed MCP gateway: one endpoint for your tools, with credential custody and audit log.
MCP server for Appcircle mobile CI/CD platform.
A MCP server built for developers enabling Git based project management with project and personal…
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceA unified MCP server with composable tools for GitHub operations, file management, shell execution, kanban boards, Discord messaging, and package management. Features role-based security, HTTP/stdio transports, and a web-based development UI.GPL 3.0
- FlicenseNot gradedqualityCmaintenanceUnified MCP server for Git forge management across GitHub, GitLab, Gitea, and Bitbucket, enabling repository, issue, PR, and CI/CD operations via CLI tools and APIs.-
- AlicenseNot gradedqualityDmaintenanceProvides MCP servers for managing Huawei Cloud ECS, CodeArts Pipeline, and CTS audit logs with unified JWT authentication and role-based access control.5MIT
- FlicenseCqualityDmaintenanceAn MCP server that exposes the Huawei Cloud CLI as a single tool for AI assistants to discover and execute commands interactively via --help navigation, with built-in safety for destructive operations.91-