Atlas / MCP servers / huaweicloud / huaweicloud-devkit

huaweicloud-devkitBLOCK

mcp/huaweicloud/huaweicloud-devkit

Official Huawei Cloud plugin for AI agents — skills, MCP tools, safety guardrails, and cloud sandbox to help AI agents build, deploy, and operate on Huawei Cloud securely.

Verdict
BLOCK
Grade
F
Trust score
37 /100
Exposed tools
33 23r · 10w · 0d
Transport
—
License
Apache-2.0
Stars
66
01

Overview

From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.

[](https://github.com/huaweicloud/huaweicloud-devkit/discussions) [](LICENSE) [](https://github.com/huaweicloud/huaweicloud-devkit/actions/workflows/ci.yml) [](https://www.npmjs.com/package/huaweicloud-devkit) [](https://github.com/huaweicloud/huaweicloud-devkit)

中文 | English

Help AI coding agents use Huawei Cloud safely and accurately — a single integration that gives agents cloud knowledge, CLI tooling, and safety guardrails.

Supports OpenCode, Codex, CodeArts Agent, WorkBuddy, DeepSeek Harness (DSH), OfficeAce, Hermes, OpenClaw, and AtomCode.

Prerequisites

  • Node.js >= 22
China mainland users: If you experience slow downloads or connection issues with the default npm registry, configure the Huawei Cloud npm mirror: ``bash npm config set registry https://mirrors.huaweicloud.com/repository/npm/ ` Restore the default registry: npm config delete registry **Mirror lag**: npm mirrors (npmmirror, mirrors.huaweicloud.com) may lag behind the official registry for hours after a new release. If install fails with ETARGET or you get an older version, install via the official registry instead: `bash npx --yes --registry=https://registry.npmjs.org huaweicloud-devkit install --target ``

Quick Start

If --target is omitted, the installer auto-detects agents on your machine: - None detected: interactive terminals ask what you want (install to one explicit target / install to all / wire up a generic MCP agent); non-interactive shells error out with the supported target list. - One detected: i
Read from source at commit f7d34ce6814cOBSERVED · 2026-10-12
02

Connect

Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control. Replace the environment placeholders with a token scoped to the least it needs.

claude-code
claude mcp add huaweicloud-devkit --env GITHUB_TOKEN=${GITHUB_TOKEN} --env HUAWEICLOUD_SDK_SECURITY_TOKEN=${HUAWEICLOUD_SDK_SECURITY_TOKEN} --env HUAWEI_ACCESS_KEY=${HUAWEI_ACCESS_KEY} --env HUAWEI_SECRET_KEY=${HUAWEI_SECRET_KEY} -- npx -y [email protected]
claude-desktop
{
  "mcpServers": {
    "huaweicloud-devkit": {
      "command": "npx",
      "args": [
        "-y",
        "[email protected]"
      ],
      "env": {
        "GITHUB_TOKEN": "${GITHUB_TOKEN}",
        "HUAWEICLOUD_SDK_SECURITY_TOKEN": "${HUAWEICLOUD_SDK_SECURITY_TOKEN}",
        "HUAWEI_ACCESS_KEY": "${HUAWEI_ACCESS_KEY}",
        "HUAWEI_SECRET_KEY": "${HUAWEI_SECRET_KEY}"
      }
    }
  }
}
03

Exposed tools (33)

23 read · 10 write · 0 destructive.

ToolRiskDescription
huaweicloud_auth_confirmreadConfirm a pending credential reconciliation choice returned by auth_switch persist when S1 already holds a different account (R2). decision=s1 keeps S1 as source of truth and propagates it; decision=newImported propagates the newly imported account into S1 and mirrors.
huaweicloud_auth_statusreadCheck unified Huawei Cloud authentication status across the global credential vault, OBS, KooCLI, and all supported agent MCP registrations. Returns only redacted/status information, never credentials.
huaweicloud_auth_syncwriteSynchronize credentials from the global Huawei Cloud credential vault to OBS and report agent registration status. Does not write secrets into any agent config.
huaweicloud_check_clireadCheck whether Huawei Cloud KooCLI hcloud is installed and whether its version matches the plugin paired version. Returns redacted output.
huaweicloud_check_updatewrite检查 huaweicloud-devkit 插件是否有新版本。结果含 currentVersion / latestStable / latestNext / targetVersion / updateAvailable / dismissExpiresAt / result。支持 dismiss:true 记录用户拒绝(3 天冷却,新版本会重新提醒)。
huaweicloud_competition_voucher_claimread领取华为开发者大赛·小红书skill创新赛专属华为云代金券。前置条件:用户已完成该赛事报名(后端自动校验,未报名返回 code=HDKIT_NOT_SIGNED_UP)。仅当用户明确要求领取该赛事代金券时调用,不要主动提示。重复领取会返回已领取。
huaweicloud_explain_errorreadExplain a Huawei Cloud CLI, API, SDK, or agent workflow error and suggest next diagnostic steps.
huaweicloud_get_regional_availabilityreadCheck if a specific Huawei Cloud service is available in a target region. Use before creating resources to prevent failures from regional unavailability.
huaweicloud_hook_check_artifactsreadCheck generated code, IaC, policy, or config artifacts against Huawei Cloud hook risk rules.
huaweicloud_hook_check_commandreadCheck a planned shell or hcloud command against Huawei Cloud hook risk rules without executing it.
huaweicloud_hook_check_deploy_planwriteCheck a structured or textual deployment plan for Huawei Cloud sandbox, exposure, IAM, and cost risks.
huaweicloud_list_operationsreadList KooCLI operations for a Huawei Cloud service by running local/read-only hcloud <Service> --help.
huaweicloud_list_regionsreadList available Huawei Cloud regions. Returns region IDs, display names, and endpoints. Use when the agent needs to discover available regions before creating resources.
huaweicloud_obs_set_website_configwrite配置 OBS 桶的静态网站托管。KooCLI OBS 不支持 SetBucketWebsite API,此工具内部实现 AWS4 签名调用 OBS REST API,屏蔽签名细节。支持 set(配置)、get(查询)、delete(删除)三种操作。操作前需确保桶已创建且已设置 public-read ACL。
huaweicloud_plan_cli_commandreadClassify and plan a Huawei Cloud hcloud command without executing it.
huaweicloud_retrieve_skillreadRetrieve a full SKILL.md by skill name. Returns the complete skill content plus list of reference files. Use when the agent has identified which skill to load and needs the full procedure.
huaweicloud_run_approved_commandwriteRun a write-capable hcloud command only after the exact command has been shown and explicitly approved by the user.
huaweicloud_run_readonly_commandwriteRun a read-only hcloud command through the toolkit safety policy and redact output.
huaweicloud_sandbox_close_sessionreadClose the persistent terminal session for a workspace.
huaweicloud_sandbox_connectreadConnect to a sandbox via hdkitservice. One user one instance - reuses existing sandbox if available, otherwise creates a new one. Returns session_id, dev_stage_id, connection_id, connection_address, and expiresAt (STS credential expiry).
huaweicloud_sandbox_deploy_checkwriteRun a deployment completeness check on the sandbox. Verifies nginx is serving, output directory exists, DevBridge tunnel is active and accessible, and QR code exists (cross-platform). Returns a score, nextStep, and (when the DevBridge tunnel is missing) an executable
huaweicloud_sandbox_exec_with_sessionwriteExecute a command on a workspace terminal with session reuse (state persists across calls). Shell state (cd, env vars, aliases) carries over between calls. Use for interactive work and command sequences that need shared state. NOT for long-running commands (>30s) — prefer exec_one_shot for those.
huaweicloud_sandbox_sign_agreementreadSign all unsigned or outdated agreements for the current user. Required before huaweicloud_sandbox_connect if check-user returns agreementSigned=false. CRITICAL: only call after the user explicitly consents to signing — never sign agreements on the user
huaweicloud_sandbox_upload_filewriteUpload a local file into the sandbox workspace. Base64-encodes the file, writes it in small chunks through the terminal session (the exec channel is fragile for large single commands), then decodes and verifies the md5 checksum. Use this instead of embedding large file content directly in a command.
huaweicloud_sandbox_upload_projectwritePackage a local project directory and upload it to a sandbox workspace via HTTP tunnel. Falls back to base64 chunking if tunnel fails. Creates a tar.gz archive, uploads it, and extracts it on the sandbox by default.
huaweicloud_search_docsreadSearch across Huawei Cloud SKILL.md files and local documentation. Returns top 10 relevant results with source, name, snippet, and relevance score. Use when the agent needs to discover which skill covers a topic, or when uncertain about API parameters, quotas, or limitations.
huaweicloud_search_marketplacereadSearch the Huawei Cloud agent skill marketplace for available skills. Returns scored results with names, categories, and descriptions. Use when built-in skills are insufficient or the user asks what skills exist.
huaweicloud_service_catalogreadReturn the recommended capability sources for Huawei Cloud agent tasks.
huaweicloud_setup_obs_configreadSynchronize KooCLI credentials to OBS config (~/.obsutilconfig). KooCLI and OBS use separate credential stores — hcloud commands work fine but OBS commands fail with
huaweicloud_show_profile_redactedreadInspect a KooCLI profile through hcloud configure show and return only redacted output.
huaweicloud_upgraderead升级 huaweicloud-devkit 到最新版本。执行前必须先征得用户同意。version 仅支持
huaweicloud_voucher_claimread领取代金券(一人一次)。重复领取会返回已领取。
huaweicloud_voucher_statusread查询代金券领取状态。用户首次使用、开始会话或询问插件能力时,应主动调用本工具检查:未领取(claimed=false)则主动提示可领取一张代金券;已领取(claimed=true)则不提示、不打扰。
04

Trust audit

BLOCKgrade F · trust 37/100 Do not install this without reading the findings. The audit found something that could harm you or your machine.

LayerWhat it checksResult
L0Provenance & inventoryPASS
L1Static analysis of the codeFAIL
L2Instruction surface (what it tells the agent)FAIL
L3Class-specific surfacePASS
L4Behavioural (sandbox)SKIPPED

What the source does

Filesystem
declared (1 observation(s))
Network
declared (12 observation(s))
Shell
declared (7 observation(s))
Dependencies
not all pinned
Secrets in source
found

Findings (25)

CRITICALPrompt injection · prompt.transfer_instruction · CWE-94, CWE-1427
plugins/huaweicloud-core/skills/huawei-cloud-smn-dms-message/SKILL.md:366
> The token normally arrives at the subscribing endpoint (HTTP/HTTPS ping-back body, or the URL in the email confirmation link). The agent must obtain it from the user/endpoint and show the exact conf
Why it matters. an instruction to move sensitive data to an outside destination
Fix. remove; a skill never needs the user's secrets off the machine
HIGHCode injection · code.eval_exec · CWE-78, CWE-94, CWE-95
plugins/huaweicloud-core/src/ws-exec/hwlink-exec-client.js:263
exec(command, options = {}) {
Why it matters. evaluates text as code
Fix. remove; use a parser or a dispatch table
HIGHCode injection · code.eval_exec · CWE-78, CWE-94, CWE-95
plugins/huaweicloud-core/src/ws-exec/ws-exec-client.js:194
exec(command, options = {}) {
Why it matters. evaluates text as code
Fix. remove; use a parser or a dispatch table
HIGHNetwork egress · net.tls_off · CWE-200, CWE-319
plugins/huaweicloud-core/src/proxy/proxy-agent.mjs:13
proxyTls: { rejectUnauthorized: false },
Why it matters. certificate verification is disabled
Fix. leave verification on
HIGHNetwork egress · net.tls_off · CWE-200, CWE-319
plugins/huaweicloud-core/src/proxy/proxy-agent.mjs:14
requestTls: { rejectUnauthorized: false },
Why it matters. certificate verification is disabled
Fix. leave verification on
HIGHPrompt injection · prompt.credential_read · CWE-94, CWE-1427
.codeartsdoer/skills/huawei-sandbox/SKILL.md:224
**Login** (0.2.2 has two builds — image builds retain AK/SK login + env auto-read; release builds accept only API Key. Probe the capability and branch — never assume from the version number):
Why it matters. asks the agent to read credentials
HIGHPrompt injection · prompt.credential_read · CWE-94, CWE-1427
plugins/huaweicloud-core/skills/huawei-cce/SKILL.md:68
> SWR Auth token valid 12h. For CCE node pull access, create long-term credential with `CreateSecret` (valid 1 year).
Why it matters. asks the agent to read credentials
HIGHPrompt injection · prompt.persistence · CWE-94, CWE-1427
plugins/huaweicloud-core/skills/huaweicloud-cli-and-auth/SKILL.md:21
2. Extract to `%USERPROFILE%\hcloud`, add to user `PATH`
Why it matters. instructs the agent to persist itself in the user's environment
HIGHPrompt injection · prompt.zero_width · CWE-94, CWE-1427
INSTALL.md:1
# HuaweiCloud DevKit 安装指南
Why it matters. invisible characters in instruction text
Fix. strip non-printing characters
HIGHPrompt injection · prompt.zero_width · CWE-94, CWE-1427
plugins/huaweicloud-core/skills/huawei-iac/references/state-file.md:99
6. **UTF-8 WITHOUT BOM**: PowerShell 5.1 `Set-Content -Encoding utf8` writes a BOM that makes strict JSON parsers fail (`Unexpected token ''`). Write state with Node `fs.writeFileSync` or another BOM-
Why it matters. invisible characters in instruction text
Fix. strip non-printing characters
MEDIUMNetwork egress · net.raw_ip · CWE-200, CWE-319
plugins/huaweicloud-core/src/sandbox/session-manager.mjs:829
proxy_pass http://127.0.0.1:${effectiveNodePort};
MEDIUMHard-coded secrets · secret.generic · CWE-798, CWE-321
test/cred-reconcile-e2e.test.mjs:342
const out = await callTool('huaweicloud_auth_confirm', { token: 'never-issued-confirm-token', decision: 's1' });
MEDIUMHard-coded secrets · secret.private_key · CWE-798, CWE-321
test/safety-policy.test.mjs:99
'--keypair.private_key=-----BEGIN RSA PRIVATE KEY-----',
LOWInventory / provenance · inv.hidden_file · CWE-1104
.markdownlint-cli2.yaml
.markdownlint-cli2.yaml
Why it matters. hidden member outside the usual dotfiles
Fix. review its purpose
LOWInventory / provenance · inv.hidden_file · CWE-1104
.prettierignore
.prettierignore
Why it matters. hidden member outside the usual dotfiles
Fix. review its purpose
LOWInventory / provenance · inv.hidden_file · CWE-1104
.release-please-manifest.json
.release-please-manifest.json
Why it matters. hidden member outside the usual dotfiles
Fix. review its purpose
LOWInventory / provenance · inv.hidden_file · CWE-1104
.version-override
.version-override
Why it matters. hidden member outside the usual dotfiles
Fix. review its purpose
LOWInsecure crypto · crypto.weak_hash · CWE-327, CWE-338
plugins/huaweicloud-core/src/sandbox/sandbox-file-server.py:11
md5 = hashlib.md5()
LOWInsecure crypto · crypto.weak_hash · CWE-327, CWE-338
plugins/huaweicloud-core/src/sandbox/session-manager.mjs:227
const expectedMd5 = createHash('md5').update(content).digest('hex');
LOWInsecure crypto · crypto.weak_hash · CWE-327, CWE-338
plugins/huaweicloud-core/src/sandbox/session-manager.mjs:374
const hash = createHash('md5');
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
plugins/huaweicloud-core/src/setup-cli.mjs:2210
`      name: '../../huaweicloud-plugins/hook-plugin.mjs'`,
LOWNetwork egress · net.raw_ip · CWE-200, CWE-319
plugins/huaweicloud-core/skills/huawei-sandbox/references/nginx-templates.md:48
proxy_pass http://127.0.0.1:<nodePort>;
LOWNetwork egress · net.raw_ip · CWE-200, CWE-319
test/credential-validator.test.mjs:10
const endpoint = `http://127.0.0.1:${server.address().port}`;
LOWNetwork egress · net.raw_ip · CWE-200, CWE-319
test/credential-validator.test.mjs:88
process.env.HW_IAM_ENDPOINT = 'http://127.0.0.1:9';
LOWNetwork egress · net.raw_ip · CWE-200, CWE-319
test/mcp-config-cli.test.mjs:37
HUAWEICLOUD_NPM_REGISTRY: 'http://127.0.0.1:9',

Gates applied: critical_finding, no_behavioural_pass, undeclared_transfer.

Audited 2026-10-12 · audit v0.4.1 · source sha f7d34ce6814cfull audit observations/trust-audit/mcp-server/huaweicloud__huaweicloud-devkit.json · Report an issue / request a re-scan
05

Audit history

Every audit this server has had. A grade with a past is a grade somebody is still checking.

DateSourceVerdictGradeScoreChange
2026-10-12f7d34ce6814cBLOCKF37first audit
06

Questions

What is the huaweicloud-devkit MCP server?

Official Huawei Cloud plugin for AI agents — skills, MCP tools, safety guardrails, and cloud sandbox to help AI agents build, deploy, and operate on Huawei Cloud securely.

What tools does huaweicloud-devkit expose?

33 in total: 23 read-only, 10 that write, and 0 that can delete or overwrite. Every one is listed on this page with its risk.

Is huaweicloud-devkit safe to connect to an agent?

No — not without reading the findings first. The audit graded it F (37/100) and found 10 critical or high issues in the source. Each one is listed on this page with the file and line it is on.

What credentials does huaweicloud-devkit need?

It reads GITHUB_TOKEN, HUAWEICLOUD_SDK_SECURITY_TOKEN, HUAWEI_ACCESS_KEY, HUAWEI_SECRET_KEY, HUAWEI_SECURITY_TOKEN, HW_ACCESS_KEY, HW_API_KEY, HW_SECRET_KEY, HW_SECURITY_TOKEN, RELEASE_PLEASE_TOKEN, SKILL_QUALITY_STS_TOKEN and SKILL_QUALITY_TOKEN from the environment. Give it a token scoped to the least it needs — an agent that can be talked into calling a tool can be talked into calling it with your credentials.

How current is this page?

The grade is for one exact copy of the source (f7d34ce6814c), read on 2026-10-12. The repository is watched and re-audited when it changes.

Advertisement