Communitygithub.com

bmob/agent-skills

Bmob 後端雲的開放標準 Agent 技能 — 可在 Cursor、Claude Code、OpenAI Codex、Gemini CLI、GitHub Copilot 及任何相容 agentskills.io 的 AI 工具中使用。

agent-skills 是什麼?

此技能專案為 Bmob 後端雲平台提供一套開放標準的 AI Agent 技能,讓開發者能在各種主流 AI 編程工具(如 Cursor、Claude Code、Codex、Gemini CLI、GitHub Copilot)中直接操作 Bmob 的後端功能。技能涵蓋 NoSQL 資料庫操作、用戶系統、檔案儲存、雲函數、靜態網站部署等,並透過一個統一的入口決策樹與路由表,根據使用者的平台(Web、Android、iOS、Flutter 等)及需求(增刪改查、認證、檔案上傳等)自動導向對應的子技能(sub-skill)。此外,它還整合了 MCP Server,讓 Agent 能直接讀取真實資料表結構、生成程式碼或一鍵部署,並提供了全面的錯誤碼查詢、安全檢查清單及端到端應用情境食譜,顯著提升開發效率並避免常見的錯誤模式。

相容平台✓Claude Code✓Codex CLI✓Cursor✓Gemini CLI
npx skills add bmob/agent-skills

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

Bmob 後端雲 — 總入口

Bmob 是一個 BaaS(Backend as a Service)平台,提供 NoSQL 資料庫、用戶系統、檔案儲存、雲函數、推播、簡訊、支付、IM、AI 等開箱即用的後端能力。用戶端覆蓋 JavaScript / Android / iOS / Swift / Flutter / HarmonyOS / 小程式 / Python / Go / PHP / C#,加上語言無關的 REST API 與 MCP Server。

路由順序:先走下方 入口決策樹 → 再查 路由決策表(選 sub-skill)→ 具體操作查 shared/operation-routing.md(MCP / curl / SDK·REST 三通道對照)。

核心原則

1. 永遠先確認平台再寫程式碼。 Bmob 各端 SDK 的 API 型態差異很大(JS 是 Bmob.Query、Android 是 extends BmobObject、舊 iOS 是 BmobObject objectWithClassName、純 Swift 是 try await BmobObject.save()、REST 是 HTTP /1/classes/<name>),不要把 JS 的程式碼塞進 Android skill 的回答裡。先看用戶用什麼平台 / 框架,再讀對應 sub-skill。

2. 不要在前端洩漏 Master Key。 Bmob 控制台 → 應用金鑰裡有四個值:

金鑰安全級別使用場景
Application ID公開所有端
REST API Key半公開瀏覽器 / 小程式 / 行動端 / 伺服器端
Secret Key中等加密授權場景的客戶端,配合 SecurityCode
Master Key最高僅伺服器端 / 後台腳本,永不顯示在前端 bundle

3. 寫之前先看 changelog。 SDK 在演進,方法簽章會變。開始一項任務前用 raw URL 拉對應平台的 update_log.md(路徑見 sub-skill 的 metadata.docs_raw)確認無破壞性變更。

4. 錯誤不要循環重試。 2-3 次同樣的嘗試失敗後停下,重新評估:

  • HTTP 4xx:先把回應體裡的 code 拿去查 bmob-error-codes。
  • 權限/ACL 報錯(9015、9016 等):見下方 P1 臨時路徑 或將來 bmob-acl-and-roles。
  • "找不到方法":可能 SDK 版本過舊或文件與你使用版本不匹配,去倉庫 release 頁對比。

入口決策樹(先走這裡)

flowchart TD
    Start([用戶提到 Bmob]) --> Err{回應裡有錯誤 code?}
    Err -->|是| EC[bmob-error-codes]
    Err -->|否| Ship{程式碼要寫進應用並發版?}
    Ship -->|否| McpCfg{IDE 已配置 Bmob MCP?}
    McpCfg -->|是| MCP[bmob-mcp<br/>9 個可呼叫工具]
    McpCfg -->|否| RestOnly[bmob-database-restful<br/>或 generate_code 需 MCP]
    Ship -->|是| Plat{平台 / 語言?}
    Plat -->|JS Web Node 小程式 Cocos JS 等| JS[bmob-database-javascript]
    Plat -->|Android Kotlin Java| AND[bmob-database-android]
    Plat -->|Pure Swift BmobSwiftSDK async/await| SWIFT[bmob-database-swift]
    Plat -->|Legacy iOS ObjC Swift Bridging Header| IOS[bmob-database-ios]
    Plat -->|Flutter Dart| FLUT[bmob-database-flutter]
    Plat -->|curl Python Go PHP 後端等| REST[bmob-database-restful]
    Plat -->|RN Uni-app JS 橋接| JS
    JS --> Schema{需要真實表欄位名?}
    AND --> Schema
    SWIFT --> Schema
    IOS --> Schema
    FLUT --> Schema
    REST --> Schema
    Schema -->|是且已配 MCP| MCP
    Schema -->|否| Done([讀對應 sub-skill 寫程式碼])
    MCP --> OpTable[[shared/operation-routing.md<br/>操作級三通道表]]

路由決策表(命中後立即去讀對應 sub-skill)

用戶意圖平台線索路由到
新建/查看表結構、加測試資料、產生 curl 樣板、實作資料庫—bmob-mcp(前提:用戶已配置 MCP)
一鍵部署網站 / 靜態託管(HTML 或 dist 到 CDN)—bmob-mcp → deploy_static_site(或 generate_code 僅產生 curl)
NoSQL 增刪改查、條件查詢JS / TS / Web / Node / 微信/支付寶/字節/QQ/百度小程式 / 快應用 / Cocos Creator JS / Electron / Tauri / 混合 Appbmob-database-javascript
NoSQL 增刪改查Android / Kotlin / Javabmob-database-android
NoSQL 增刪改查純 Swift SDK / BmobSwiftSDK / SPM / import BmobSDK / async/awaitbmob-database-swift
NoSQL 增刪改查舊 iOS SDK / Objective-C / Swift Bridging Header / BmobSDK.xcframework / saveInBackgroundbmob-database-ios
NoSQL 增刪改查Flutter / Dart(bmob_plugin)bmob-database-flutter
NoSQL 增刪改查 / 任意沒有 SDK 的語言curl / Python / Go / PHP / C# / Rust / Ruby / Java 後端bmob-database-restful
React Native / Uni-app(JS 層接 Bmob)—bmob-database-javascript 或 REST
HarmonyOS ArkTS—bmob-database-restful + BmobDocs
用戶註冊 / 登入 / SMS 驗證 / 三方登入 / 信箱驗證各端bmob-auth-{platform}(P1,見下表)
檔案上傳下載 / CDN各端bmob-storage-{platform}(P1,見下表)
呼叫雲函數各端bmob-cloud-function-{platform}(P1,見下表)
編寫執行在 Bmob 伺服器上的雲函數程式碼—bmob-cloud-function-development
ACL / 角色 / 權限 / 行級安全—bmob-acl-and-roles(P1,見下表)
BQL 查詢(類 SQL 語法)任意bmob-bql(P1,見下表)
排查報錯 code 9015 / 101 / 105 等—bmob-error-codes
推播 / 簡訊 / 支付各端bmob-push-* / bmob-sms-* / bmob-pay-*(P2)

具體操作(增刪改查、登入、上傳、部署)用哪條通道,見 shared/operation-routing.md。

P1 / P2 尚未發佈時的臨時路徑

專用 sub-skill 未安裝時,不要空等,按此表降級:

用戶意圖目標 skill(未發佈)目前可用替代
註冊 / 登入 / 簡訊驗證碼bmob-auth-*REST:bmob-database-restful/references/users.md;已配 MCP:generate_code(註冊 / 用戶名密碼登入 / 手機號驗證碼登入 等)
檔案上傳 / CDN URLbmob-storage-*REST:references/files.md;MCP:generate_code → 上傳檔案
呼叫既有雲函數bmob-mcp → invoke_cloud_function(執行);generate_code → 呼叫雲函數(curl)REST /1/functions/<name>;各端 SDK
編寫並部署雲函數原始碼bmob-cloud-function-development已配 MCP:deploy_cloud_function → invoke_cloud_function;未配 MCP:BmobDocs + 控制台
ACL / 行級權限 / 9015·9016bmob-acl-and-rolesREST 建立/更新 body 內 "ACL":{...};bmob-error-codes
BQL / 跨表聚合bmob-bqlREST GET /1/cloudQuery;bmob-database-restful
推播 / 簡訊 / 支付P2 skillsREST 對應模組 + BmobDocs mds 目錄樹

通用安全清單(被所有 sub-skill include)

  • 寫入操作的目標表必須配 ACL,否則任意用戶可改任意行(參見 P1 臨時路徑中的 ACL 行)。
  • 瀏覽器 / 小程式 / 行動端可用 REST API Key(簡易授權 / SDK 方式 B) 或 Secret Key + 安全碼(加密授權 / SDK 方式 A);絕不使用 Master Key。
  • 加密授權場景的 SecurityCode 不通過網路傳輸;不要硬編碼到前端 bundle,用環境變數注入或放進 BFF。
  • 凡是 batch / 全表掃描 / 跨表查詢 → 優先使用 BQL 而不是迴圈呼叫 SDK。
  • 出錯時先看回應體裡的 code 欄位去查 bmob-error-codes,不要亂猜。
  • 用戶密碼欄位(password)只能由 Bmob 寫入,不能 update;如需改密走 /1/updateUserPassword/<objectId>。

FAQ 與反模式

應用場景食譜

端到端場景(表設計 + ACL + 流程),再進各 platform skill 寫程式碼:

場景食譜
部落格 / CMS(Article + Author)shared/recipes/blog-cms.md
用戶自有 Todo(行級 ACL)shared/recipes/user-owned-todos.md
微信小程式登入shared/recipes/mini-program-login.md
頭像上傳shared/recipes/avatar-upload.md
伺服器端批量遷移shared/recipes/server-migration.md
靜態站 MCP 部署shared/recipes/static-site-deploy.md

文件查找方法

各 sub-skill 的 references/snippets/(由 BmobDocs 同步提交)與手寫 references/*.md 覆蓋大部分 API。仍不夠時再 fetch 上游文件:

  1. 按檔案名定位:上游文件樹在 github.com/bmob/BmobDocs/tree/master/mds,按 <feature>/<platform>/ 組織。

  2. agent 直接 fetch(繞過 GitHub 渲染層):

    https://raw.githubusercontent.com/bmob/BmobDocs/master/mds/<feature>/<platform>/<filename>.md
    

    已驗證可被 WebFetch 工具直接拉為純 markdown。

  3. 列目錄(不知道檔案名時):

    https://api.github.com/repos/bmob/BmobDocs/contents/mds/<feature>/<platform>
    
  4. 仍找不到:去 https://www.bmobapp.com/docs/。

與 MCP 的協作(關鍵)

如果用戶在 IDE 裡配置了 Bmob MCP Server(見 shared/mcp-install-snippets.md),任何涉及「讀真實表結構 / 寫測試資料 / 設計 schema / 產生樣板 curl / 一鍵部署網站」的任務都應 優先 MCP,不要憑猜測寫欄位名。

  • tools/list 共 10 個工具;agent 只呼叫其中 9 個(get_project_tables、create_table、add_single_data、update_single_data、delete_single_data、generate_code、deploy_cloud_function、invoke_cloud_function、deploy_static_site)。
  • mcp_endpoint_mcp_post 為伺服器端內部回環,不要呼叫。
  • 工具參數與話術對照:bmob-mcp;操作級三通道表:shared/operation-routing.md。
flowchart LR
    User[User prompt mentioning Bmob] --> Root[bmob root SKILL.md]
    Root --> OpRoute[shared/operation-routing.md]
    Root -->|"schema / live CRUD / deploy"| McpSkill[bmob-mcp]
    Root -->|JS / Web / Mini Program| JsDb[bmob-database-javascript]
    Root -->|Android / Kotlin| AndDb[bmob-database-android]
    Root -->|Pure Swift SDK| SwiftDb[bmob-database-swift]
    Root -->|Legacy iOS / ObjC| IosDb[bmob-database-ios]
    Root -->|Flutter / Dart| FlutDb[bmob-database-flutter]
    Root -->|curl / Python / Go| RestDb[bmob-database-restful]
    Root -->|error code| Err[bmob-error-codes]
    McpSkill -.get_project_tables.-> JsDb
    McpSkill -.get_project_tables.-> AndDb
    McpSkill -.get_project_tables.-> SwiftDb
    McpSkill -.get_project_tables.-> IosDb
    McpSkill -.get_project_tables.-> FlutDb
    McpSkill -.get_project_tables.-> RestDb

一句話總結

用戶提到 Bmob → 讀本 skill 的 入口決策樹 → 路由決策表 選 sub-skill → shared/operation-routing.md 選 MCP / curl / SDK·REST;端特化程式碼在 sub-skill 的 references/ 與 SKILL.md 裡。

相關技能