我用 MCP 给小程序开发做了个 AI 副驾驶,开源了

我用 MCP 给小程序开发做了个 AI 副驾驶,开源了

小程序开发有几个反复出现的痛点:

  • 审核被拒不知道原因,改了 5 次还不过
  • 包体积超了 2MB,不知道哪个文件占大头
  • 编译报错一堆,AI 看不懂错误日志
  • 发版流程繁琐,每次都要手动操作 5 步

我花了几个月做了一个 MCP Server,让 Cursor / Claude Desktop / Kiro 里的 AI 直接操作微信开发者工具、分析项目、自动修复问题

28 个工具,零配置,不需要密钥,开源免费。先看效果 👇


30 秒看效果

先不讲原理,直接看三个场景的实际效果。

场景 1:一句话审核预检

对 AI 说:"帮我检查这个项目能不能过审"

AI 调用 wechat_compliance_check,返回:

json 复制代码
{
  "status": "HAS_ISSUES",
  "summary": "⚠️ 发现 3 个高危问题、2 个建议优化项(共检查 32 条规则)",
  "issues": [
    {
      "ruleId": "CP001",
      "severity": "error",
      "file": "app.json",
      "message": "未检测到隐私协议弹窗配置。2023年10月起必须配置 usePrivacyCheck。",
      "suggestedPatch": "在 app.json 中添加 \"usePrivacyCheck\": true"
    },
    {
      "ruleId": "CP002",
      "severity": "error",
      "file": "pages/index/index.js",
      "line": 8,
      "message": "在 onLoad 中直接调用 wx.authorize,属于'进入即弹窗'违规。",
      "suggestedPatch": "将 wx.authorize 调用移至按钮的 bindtap 事件处理函数中"
    },
    {
      "ruleId": "CP014",
      "severity": "error",
      "file": "utils/api.js",
      "line": 3,
      "message": "检测到 HTTP 明文请求 'http://api.example.com',正式版强制 HTTPS。",
      "suggestedPatch": "将 http:// 替换为 https://"
    }
  ],
  "passedRules": 29,
  "totalRules": 32,
  "_meta": { "actionTaken": "compliance_scan", "durationMs": 18 }
}

关键点:AI 拿到这个结果后会自动帮你修复(改代码 → 再跑一遍验证 → 直到全绿)。


场景 2:包体积超了怎么办

对 AI 说:"分析一下包体积,帮我优化"

AI 先调用 wechat_package_size

json 复制代码
{
  "status": "WARNING",
  "totalSize": "2.3MB",
  "mainPackage": "1.8MB",
  "limit": "2MB",
  "overLimit": true,
  "topFiles": [
    { "path": "miniprogram_npm/vant-weapp", "size": "420KB", "percent": "18.2%" },
    { "path": "miniprogram_npm/lodash", "size": "310KB", "percent": "13.5%" },
    { "path": "images/banner.png", "size": "280KB", "percent": "12.2%" }
  ],
  "bombs": ["lodash(建议用 lodash-es 按需引入)", "vant-weapp(建议开启按需引入)"],
  "suggestedActions": [
    { "tool": "wechat_subpackage_suggest", "reason": "主包超限,建议分包" }
  ]
}

AI 发现主包超了,自动调用 wechat_subpackage_suggest

json 复制代码
{
  "status": "OK",
  "strategy": "按目录分包",
  "suggestedConfig": {
    "subpackages": [
      { "root": "pages/shop", "pages": ["list/list", "detail/detail", "cart/cart"] },
      { "root": "pages/user", "pages": ["profile/profile", "settings/settings"] }
    ],
    "preloadRule": {
      "pages/index/index": { "network": "all", "packages": ["pages/shop"] }
    }
  },
  "estimatedMainSize": "1.2MB",
  "savedSize": "600KB"
}

从发现问题到给出完整分包方案 + 预加载配置,全程 AI 自动完成。


场景 3:编译报错自动修复

对 AI 说:"编译报错了,帮我修"

AI 调用 wechat_diagnose,触发编译并捕获错误:

json 复制代码
{
  "status": "COMPILATION_FAILED",
  "errors": [
    {
      "file": "pages/shop/list/list.js",
      "line": 12,
      "message": "Cannot find module '../utils/format'",
      "type": "MODULE_NOT_FOUND",
      "agentActionHint": "READ_FILE_AND_PATCH"
    },
    {
      "file": "app.json",
      "line": 5,
      "message": "Page 'pages/old/old' not found",
      "type": "CONFIG_ERROR",
      "agentActionHint": "FIX_CONFIG"
    }
  ],
  "retryCount": 0,
  "maxRetry": 5
}

AI 看到 agentActionHint,自动执行:

  1. 读取 list.js 第 12 行 → 发现引用路径错了 → 修复
  2. 打开 app.json → 删除不存在的页面路径
  3. 再次调用 wechat_diagnose 验证
json 复制代码
{
  "status": "COMPILATION_OK",
  "summary": "✅ 编译通过,0 个错误。",
  "retryCount": 1
}

报错 → 修复 → 重编译 → 验证,闭环自动化。 如果修了 5 次还没好,熔断机制会强制停止,把错误展示给你人工处理。


为什么是 MCP 而不是 CLI 脚本

你可能会问:这些事情写个 shell 脚本不也能做?

对比 传统 CLI 脚本 MCP Server
AI 能调用吗 ❌ 需要人工复制粘贴 ✅ AI 直接调用,无需人工介入
返回格式 纯文本日志 结构化 JSON,AI 能理解并行动
错误处理 人看日志找问题 AI 自动解析 + 定位 + 修复
闭环能力 报错→修复→重试→验证,全自动
跨 IDE 每个 IDE 写一遍插件 一次开发,Cursor/Claude/Kiro 通用
配置成本 写脚本 + 调试 npx 一行命令,零配置

核心设计理念:

1. 契约型 JSON --- 工具返回不只是数据,是驱动 AI 行为的指令。agentActionHint: "READ_FILE_AND_PATCH" 告诉 AI "你应该去读这个文件并修复"。

2. 自动恢复链路 --- 微信 CLI 经常因为"项目未打开""端口未启动"等原因失败。工具内置了 open → reset → retry 的恢复链路,大部分情况下用户无感知。

3. 熔断机制 --- AI 修复代码可能越修越错。当重试次数达到上限(默认 5 次),强制停止并把完整错误历史展示给用户,避免无限循环。


28 个工具一览

层级 定位 工具
L1 基础操作 微信 CLI 的 AI 接口 login / preview / upload / build_npm / open / close / reset
L2 项目分析 纯本地推理,不需要网络 project_info / package_size / page_list / config_validate / dependency_check / subpackage_suggest / audit / compliance_check
L3 智能流程 闭环自动化,AI 全程驱动 diagnose / publish / init_project / self_test / ready_check
鸿蒙设备 HDC 设备操作(附赠) list_devices / install / uninstall / start / log / file_push / file_pull / ready_check

其中 L2 层的 8 个工具是纯本地分析 ,不调用任何外部 API,不需要网络,不需要密钥。这是和竞品最大的差异 --- 别人只是 CLI 的代理,我们能理解项目


30 秒配置

Cursor

编辑 .cursor/mcp.json

json 复制代码
{
  "mcpServers": {
    "harmony-mcp": {
      "command": "npx",
      "args": ["-y", "@yujiamei/harmony-mcp"]
    }
  }
}

Claude Desktop

编辑 claude_desktop_config.json(Mac: ~/Library/Application Support/Claude/,Win: %APPDATA%\Claude\):

json 复制代码
{
  "mcpServers": {
    "harmony-mcp": {
      "command": "npx",
      "args": ["-y", "@yujiamei/harmony-mcp"]
    }
  }
}

Kiro

编辑 .kiro/settings/mcp.json

json 复制代码
{
  "mcpServers": {
    "harmony-mcp": {
      "command": "npx",
      "args": ["-y", "@yujiamei/harmony-mcp"]
    }
  }
}

就这么多。 不需要密钥,不需要 AppSecret,不需要登录任何平台。保存配置后重启 IDE,对 AI 说"帮我检查小程序项目"就能用了。

⚠️ Windows 用户如果 npx 有问题,可以先全局安装:npm install -g @yujiamei/harmony-mcp,然后 command 改为 "harmony-mcp",args 改为 []


技术架构(给好奇的同学)

scss 复制代码
┌─────────────────────────────────────────┐
│         AI IDE (Cursor/Claude/Kiro)      │
└────────────────────┬────────────────────┘
                     │ stdio (JSON-RPC)
┌────────────────────▼────────────────────┐
│          harmony-mcp (MCP Server)        │
├──────────────────────────────────────────┤
│  Layer 3: 智能流程                        │
│  diagnose(编译闭环)/ publish(一键发版) │
│  ↕ 编排 L1+L2,契约 JSON 驱动 AI 行为    │
├──────────────────────────────────────────┤
│  Layer 2: 项目分析                        │
│  合规预检(32规则) / 体积分析 / 分包引擎   │
│  Linter(14规则) / 归因引擎 / 框架探测     │
│  ↕ 纯本地推理,不需要网络                 │
├──────────────────────────────────────────┤
│  Layer 1: 基础操作                        │
│  login / preview / upload / build_npm    │
│  ↕ 调用微信 CLI + 自动恢复链路            │
├──────────────────────────────────────────┤
│  鸿蒙模块: 8 个 HDC 设备操作工具          │
└────────────────────┬────────────────────┘
                     │
        ┌────────────▼────────────┐
        │  微信开发者工具 CLI      │
        │  鸿蒙 HDC 命令行        │
        └─────────────────────────┘

技术栈:TypeScript + @modelcontextprotocol/sdk + Zod 参数校验 + stdio 传输。


和竞品的区别

harmony-mcp(本项目) wechat-mcp-server miniprogram-ci
需要密钥 ❌ 不需要 ✅ 需要 ✅ 需要
项目分析能力 ✅ 32 合规规则 + 14 Linter + 归因引擎 ❌ 只做 CLI 转发 ❌ 只做上传
AI 行为驱动 ✅ 契约型 JSON ❌ 纯文本返回 ❌ 不是 MCP
编译闭环 ✅ 报错→修复→重编译
零配置 ✅ npx 一行 ⚠️ 需要配置密钥 ⚠️ 需要下载密钥文件
鸿蒙支持 ✅ 8 个工具

一些数字

指标 数据
工具数 28(微信 20 + 鸿蒙 8)
合规规则 32 条(覆盖 2026 年高频驳回场景)
Linter 规则 14 条(运行时性能 + 规范)
合规扫描耗时 ~20ms(纯本地,不需要网络)
单测 121 个,vitest
包体积 发布包 < 100KB(纯 TypeScript,零运行时依赖)

接下来要做的

  • MCP Tasks 异步化 --- 大项目发版耗时 30s+,接入异步任务避免 IDE 断线
  • UniApp / Taro 深度适配 --- 跨端框架编译产物智能识别
  • 社区共建 --- 欢迎提交自定义合规规则 PR

链接

🔗 GitHub:github.com/xiaoxuzhu30...

📦 NPM:npx -y @yujiamei/harmony-mcp

📖 Prompt 指令库:github.com/xiaoxuzhu30...

如果觉得有用,给个 Star ⭐ 就是最大的支持。


💬 你在用 Cursor / Claude 开发小程序时遇到过什么痛点?评论区聊聊,说不定下个版本就能解决。

相关推荐
雨季mo浅忆1 小时前
记录利用Cursor快速实现Excel共享编辑
前端·excel
皮皮大人1 小时前
Vue 3 响应式内核完全解密:reactive & effect 与 Vue 2 Watcher 史诗对决
前端·vue.js
LaughingZhu1 小时前
Product Hunt 每日热榜 | 2026-05-31
前端·人工智能·经验分享·搜索引擎·chatgpt·html
陆枫Larry1 小时前
CSS 中「深色 + 不透明度」vs 直接设浅色的区别
前端
Din1 小时前
使用AI从 27 秒到秒开:一次 Web 首屏加载优化实战
前端
leafyyuki1 小时前
两行 CSS 搞定筛选条行尾对齐,Element Plus 表单布局终极方案
前端
着迷不白1 小时前
六、Bash Shell 与进程管理
前端·chrome
A不落雨滴AI1 小时前
DKERP 客户端重构:30天从零到一的架构演进之路
前端
Xp021911031 小时前
知网研学、万方、WPS、大以论文四大排版工具横评,新用户免费排版等你领!
前端·css·html·生活·wps·论文排版