Skip to main content
Glama
Dwight2458

HWC Growth Center MCP Extension

by Dwight2458

HWC Growth Center MCP Extension

华为云开发者成长中心 MCP 扩展 — 通过 Chrome 扩展 + Node.js Bridge 架构,为 CLI 和 MCP Client 提供签到、积分查询、任务列表等能力。已验证多账号全自动签到流程。

能力边界

能做的

能力

说明

对应工具

每日签到

自动检测签到状态,未签到则执行签到

hwc_sign

签到状态查询

查询今日是否已签到、连续天数、累计次数

hwc_get_sign_status

积分查询

查询当前可用积分 (beans)

hwc_get_points

积分明细

查询积分获取/消耗记录

hwc_get_points_detail

任务列表

查询成长中心全部任务及完成状态

hwc_get_tasks

积分兑换

兑换奖品

hwc_exchange

不能做的

  • 自动完成成长任务(如创建云开发环境、发布博客、参加赛事等)— 这些需要在浏览器中手动操作

  • 自动登录 — 需要用户在浏览器中手动登录华为云账号

  • 无浏览器运行 — Chrome 扩展必须在浏览器中运行,关闭浏览器则无法调用 API

前置条件

  • Chrome 浏览器已打开且已登录 developer.huaweicloud.com

  • Chrome 扩展已加载且 Service Worker 处于活跃状态

  • accountName 自动从页面 DOM 提取并存入 chrome.storage无需手动指定

Related MCP server: Chrome Extension MCP Bridge

架构

MCP Client (CLI / Agent / Claude)  ←stdio→  Bridge [Node.js]  ←WebSocket→  Chrome Extension
                                                                          ↓
                                                                fetch (浏览器上下文,携带 Cookie)
                                                                          ↓
                                                              https://devdata.huaweicloud.com

Chrome 扩展 Service Worker 无法创建 WebSocket 服务器,因此引入 Node.js Bridge 中继。Bridge 仅监听 127.0.0.1,扩展必须使用配对令牌认证,且只允许一个活动扩展连接:

  1. stdio — Bridge 与 MCP Client 通信(标准 MCP 传输)

  2. WebSocket (127.0.0.1:9876) — Bridge 与扩展进行已认证通信

  3. Bridge 在两者间转发 JSON-RPC 消息,扩展未连接时自动排队请求

项目结构

developer-grow-mcp-extension/
├── manifest.json              # Chrome 扩展配置 (Manifest V3)
├── background.js              # Service Worker — WebSocket 客户端,连接 Bridge
├── content.js                 # Content Script — accountName 自动提取
├── options.html / options.js  # Bridge 配对令牌设置页
├── cli.mjs                    # CLI 入口 — 子命令分发 (hwc-grow)
├── agent.mjs                  # MCP 客户端 — 自动编排签到流程
├── package.json               # npm 包定义 (bin: hwc-grow)
├── bridge/
│   ├── server.js              # Node.js Bridge (stdio ↔ WebSocket 中继)
├── lib/
│   ├── api-client.js          # API 调用封装 (含日志 + accountName 自动获取)
│   ├── csrf-manager.js        # CSRF Token 管理 (自动刷新)
│   └── debug-log.js           # API 调用日志收集器
├── tools/
│   ├── index.js               # 工具注册表
│   ├── sign.js                # 签到 (POST, account_name 自动获取)
│   ├── sign-status.js         # 签到状态 (GET)
│   ├── tasks.js               # 任务列表 (POST, page_no/page_size)
│   ├── points.js              # 积分查询 (GET, beans)
│   ├── points-detail.js       # 积分明细 (POST)
│   └── exchange.js            # 积分兑换 (POST)
└── protocol/
    └── mcp.js                 # MCP 协议实现 (JSON-RPC 2.0)

安装

1. 安装依赖

cd tools/developer-grow-mcp-extension
npm install

2. 加载 Chrome 扩展

  1. 打开 chrome://extensions/

  2. 开启右上角「开发者模式」

  3. 点击「加载已解压的扩展程序」→ 选择 developer-grow-mcp-extension 目录

  4. 确认扩展已加载,Service Worker 状态为「活跃」

  5. 打开扩展「详情」→「扩展程序选项」,进入 Bridge 配对 页面

  6. 点击「生成令牌」,在令牌输入框中按 Ctrl+ACtrl+C 复制,再点击「保存」

如果管理页没有显示「扩展程序选项」,请在扩展卡片或详情页复制扩展 ID,然后直接访问:

chrome-extension://<扩展ID>/options.html

例如,当前开发环境中的地址是:

chrome-extension://dagglekhpkdmhdigehamipnnmeananja/options.html

解压加载的扩展 ID 可能因机器或安装方式不同而变化。上面的固定地址仅作为示例;其他开发者应使用自己在 chrome://extensions/ 中看到的扩展 ID。

3. 配置 Bridge 配对令牌

将扩展设置页生成的同一令牌配置为 MCP_BRIDGE_TOKEN。令牌至少 32 个字符,不要提交到仓库:

# Linux / macOS
export MCP_BRIDGE_TOKEN="扩展设置页中的令牌"
# PowerShell(当前终端)
$env:MCP_BRIDGE_TOKEN = "扩展设置页中的令牌"

4. 登录华为云

  1. 在浏览器中访问 https://developer.huaweicloud.com/grow

  2. 使用华为云账号登录(扫码或账号密码)

  3. 扩展自动继承浏览器 Cookie,content.js 自动提取 accountName 存入 chrome.storage

切换账号:在浏览器中重新登录另一个华为云账号,然后删除扩展并重新加载(Chrome 会缓存旧的 Service Worker 代码)

5. 安装 CLI(可选)

cd tools/developer-grow-mcp-extension
npm install -g .

安装后可直接使用 hwc-grow 命令。未全局安装也可用 node cli.mjs 代替。

使用方式

CLI 工具

# 一键完整流程(查状态 → 签到 → 查积分 → 查任务)
hwc-grow agent

# 单独签到(accountName 自动获取,无需传参)
hwc-grow sign

# 查签到状态
hwc-grow status

# 查积分
hwc-grow points

# 查任务列表(默认全部)
hwc-grow tasks
hwc-grow tasks --status=pending     # 仅待完成

# MCP Server 模式(供 OpenCode / Claude Desktop 调用)
hwc-grow serve

# 帮助
hwc-grow help

直接运行 agent.mjs

node agent.mjs              # 完整自动签到流程
node agent.mjs --status-only    # 仅查询签到状态
node agent.mjs --points         # 仅查询积分
node agent.mjs --tasks          # 查询任务列表
node agent.mjs --verbose        # 打印 JSON-RPC 原始通信

agent.mjshwc-grow 都会自动启动 Bridge,无需手动运行 bridge/server.js

自动签到流程

1. hwc_get_sign_status  → 检查 sign_flag 是否已签到
2. 若未签到 → hwc_sign  → POST {account_name: "自动从DOM获取"}
3. hwc_get_points       → 查询 beans 确认积分变化
4. hwc_get_tasks        → 查看待完成任务列表

成功输出示例

🚀  启动 HWC Growth Center MCP Agent
📦  启动 Bridge...
🔗  初始化 MCP 连接...
✅  已连接: hwc-growth-mcp v1.0.0
🔍  查询签到状态...
📊  签到状态: 今日未签到 ✗
💰  当前积分: 5
📅  连续签到: 0 天
✍️  执行签到...
🎉  签到成功! 签到成功
📅  连续签到: 1 天
💰  查询最新积分...
✅  当前积分: 55
📋  查询待完成任务...
📝  待完成任务 (11):
   ✗ 首次开通华为云码道(CodeArts) (+50) [码道]
   ✗ 使用智能问答 (+30) [码道]
   ✗ 体验开发者空间 (+20) [开发者空间]
   ...
✅  自动签到流程完成

MCP Client 集成

OpenCode

~/.config/opencode/opencode.json 中添加:

{
  "mcp": {
    "hwc-growth": {
      "type": "local",
      "command": ["hwc-grow", "serve"]
    }
  }
}

Claude Desktop

claude_desktop_config.json 中添加:

{
  "mcpServers": {
    "hwc-growth": {
      "command": "hwc-grow",
      "args": ["serve"]
    }
  }
}

Bridge 的 WebSocket 端口只用于已配对的 Chrome 扩展。MCP Client 应通过 stdio 调用 hwc-grow serve,不会直接连接 WebSocket。

Skill + CLI 使用

本项目提供两种使用路径,互不冲突:

路径一:CLI 直接使用(本项目)

适合只需签到/查积分/查任务的场景。安装扩展 + CLI 后直接运行:

hwc-grow agent    # 每日一键签到

路径二:Skill 自动化执行(仓库根目录 skill/)

skill/SKILL.md 是面向 AI Agent 的 Skill 定义,通过 Playwright 执行器自动完成更多任务(签到 + 开通码道 + 体验开发者空间 + 创建云开发环境 + 智能问答)。适合需要批量自动完成成长任务的场景。

# Agent 执行 Skill 的统一 Prompt:
克隆 https://gitcode.com/deli007/hwcloud-grow.git,阅读 skill/SKILL.md 并执行

两条路径的关系:

CLI (本项目)

Skill (skill/SKILL.md)

签到

✅ 通过 Chrome 扩展

✅ 通过 Playwright

查积分/任务

开通码道

创建开发环境

智能问答

需要浏览器

✅ Chrome + 扩展

✅ Playwright 控制的 Chromium

适合场景

日常签到

批量完成全部任务

工具列表

工具名

描述

参数

API 字段映射

hwc_sign

签到

accountName (可选,自动获取)

account_name → POST body

hwc_get_sign_status

签到状态

sign_flag→signed, bonus→points, sign_continuity_count→continuousDays, sign_count→signCount

hwc_get_tasks

任务列表

status: all/completed/pending, pageNo, pageSize

QueryMissionDtoList→tasks, is_finish→完成状态, bonus→积分

hwc_get_points

当前积分

beans→points

hwc_get_points_detail

积分明细

pageNo, pageSize

records, total

hwc_exchange

积分兑换

prizeId, count

id→orderId

API 端点

操作

方法

路径

关键字段

CSRF 获取

GET

developer.huaweicloud.com/api/get-ainfo

响应头 csrf 字段

签到状态

GET

.../growth/sign

sign_flag, sign_continuity_count, sign_count

执行签到

POST

.../growth/sign

body: {account_name}

积分查询

GET

.../growth/bonus-beans

beans

任务列表

POST

.../growth/mission/query-mission-list-by-condition

body: {status, page_no, page_size} + query string

所有业务 API 前缀: https://devdata.huaweicloud.com/rest/developer/fwdu

注意:任务列表 API 的分页参数使用 snake_case (page_no, page_size),且需同时放在 query string 和 JSON body 中。

故障排查

问题

原因

解决方案

Bridge 报 EADDRINUSE

旧进程占用端口

杀掉旧 node 进程,或设 MCP_BRIDGE_PORT 换端口

扩展未连接

Bridge 未运行或扩展未加载

先加载扩展,再运行 CLI

CSRF fetch failed: 404

CSRF URL 域名错误

确认指向 developer.huaweicloud.com(非 devdata)

CSRF is nil (403)

CSRF Token 过期

正常现象,自动刷新重试

SESSION_EXPIRED

浏览器 Cookie 过期

重新登录 developer.huaweicloud.com

修改代码后无效

Chrome 缓存 Service Worker

chrome://extensions/ → 删除扩展 → 重新加载

ERR_NETWORK_IO_SUSPENDED

Service Worker 被挂起

正常现象,chrome.alarms 会自动重连

pageNo不能为null

任务列表参数格式错误

使用 page_no/page_size(snake_case)+ query string

签到返回 user_id=null

未登录或 Cookie 过期

重新登录华为云

技术细节

  • CSRF Token: 从 developer.huaweicloud.com/api/get-ainfo 响应头获取,有效期约 15 分钟,过期自动刷新

  • accountName 自动获取: content.js 从页面 DOM 提取 → 存入 chrome.storage.local → sign.js 调用时自动读取,无需手动传参

  • Service Worker 保活: chrome.alarms 每 30 秒唤醒,检查并重连 Bridge

  • 请求排队: 扩展未连接时 Bridge 缓存请求,扩展连接后自动发送

  • 最小化诊断: 默认工具响应不包含原始后端响应、请求体、响应头或跨请求 API 日志;--verbose 仅显示 MCP JSON-RPC 通信

  • Bridge 安全边界: 仅监听 loopback,要求至少 32 字符配对令牌,并校验响应对应待处理请求

A
license - permissive license
-
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Dwight2458/developer-grow-mcp-extension'

If you have feedback or need assistance with the MCP directory API, please join our Discord server