Communitygithub.com

bmob/agent-skills

Bmob 后端云のオープンスタンダードなエージェントスキル — Cursor、Claude Code、OpenAI Codex、Gemini CLI、GitHub Copilot など agentskills.io 対応の AI ツールで使用可能。

agent-skills とは?

このスキルは、Bmob バックエンドクラウド(BaaS)を利用するための統合エントリポイントです。NoSQL データベース、ユーザーシステム、ファイルストレージ、クラウド関数、プッシュ通知、SMS、支払い、IM、AI など、すぐに使えるバックエンド機能を提供し、JavaScript、Android、iOS、Swift、Flutter、HarmonyOS、ミニプログラム、Python、Go、PHP、C#、REST API、MCP Server など幅広いプラットフォームと連携します。エージェントは「入口決定木」と「ルーティング決定表」に従って適切なサブスキルを選択し、具体的な操作は `shared/operation-routing.md` で MCP・curl・SDK・REST の3チャネルを参照します。本スキルはマスターキー漏洩の防止、SDK 変更履歴の確認、エラーコードの適切な参照など、セキュアで効率的な開発を支援するベストプラクティスも含まれています。

対応✓Claude Code✓Codex CLI✓Cursor✓Gemini CLI
npx skills add bmob/agent-skills

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

Bmob バックエンドクラウド — 統合エントリ

Bmob は BaaS(Backend as a Service)プラットフォームで、NoSQL データベース、ユーザーシステム、ファイルストレージ、クラウド関数、プッシュ通知、SMS、支払い、IM、AI などすぐに使えるバックエンド機能を提供します。クライアントは JavaScript / Android / iOS / Swift / Flutter / HarmonyOS / ミニプログラム / Python / Go / PHP / C#、および言語非依存の REST API と MCP Server をカバーします。

ルーティング順序:まず下の 入口決定木 → 次に ルーティング決定表(サブスキルを選択)→ 具体的な操作は shared/operation-routing.md(MCP / curl / SDK・REST の3チャネル対応表)を参照。

基本原則

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 スキルの回答に含めないでください。まずユーザーが使用しているプラットフォーム/フレームワークを確認し、対応するサブスキルを読んでください。

2. フロントエンドで Master Key を漏洩しないこと。 Bmob コンソール → アプリケーションキーには4つの値があります。

キーセキュリティレベル使用シナリオ
Application ID公開全エンド
REST API Key準公開ブラウザ / ミニプログラム / モバイル / サーバー
Secret Key中暗号化認証シナリオのクライアント、SecurityCode と併用
Master Key最高サーバー/バックグラウンドスクリプトのみ、フロントエンドバンドルには絶対に含めない

3. コードを書く前に changelog を確認すること。 SDK は進化しており、メソッドシグネチャが変わることがあります。タスクを開始する前に、生の URL で対象プラットフォームの update_log.md(パスはサブスキルの metadata.docs_raw に記載)をフェッチし、破壊的変更がないことを確認してください。

4. エラー時にループリトライしないこと。 2〜3回同じ試行が失敗したら停止し、再評価してください。

  • HTTP 4xx:まずレスポンスボディの code を bmob-error-codes で確認。
  • 権限/ACL エラー(9015、9016 など):下記 P1 一時パス または将来の bmob-acl-and-roles を参照。
  • 「メソッドが見つからない」:SDK バージョンが古いか、ドキュメントと使用中のバージョンが一致していない可能性があります。リポジトリのリリースページで比較してください。

入口決定木(まずここを通過)

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([対応するサブスキルを読んでコードを書く])
    MCP --> OpTable[[shared/operation-routing.md<br/>操作レベル3チャネル表]]

ルーティング決定表(該当したらすぐに対応するサブスキルを読む)

ユーザーの意図プラットフォームの手がかりルーティング先
テーブル構造の新規作成/表示、テストデータ追加、curl サンプル生成、データベース操作の実践—bmob-mcp(前提:ユーザーが MCP を設定済み)
静的サイトのワンクリックデプロイ(HTML や dist を CDN へ)—bmob-mcp → deploy_static_site(または generate_code で curl のみ生成)
NoSQL の CRUD、条件クエリJS / TS / Web / Node / 微信/支付宝/字节/QQ/百度ミニプログラム / クイックアプリ / Cocos Creator JS / Electron / Tauri / ハイブリッドアプリbmob-database-javascript
NoSQL の CRUDAndroid / Kotlin / Javabmob-database-android
NoSQL の CRUDPure Swift SDK / BmobSwiftSDK / SPM / import BmobSDK / async/awaitbmob-database-swift
NoSQL の CRUD旧 iOS SDK / Objective-C / Swift Bridging Header / BmobSDK.xcframework / saveInBackgroundbmob-database-ios
NoSQL の CRUDFlutter / Dart(bmob_plugin)bmob-database-flutter
NoSQL の CRUD / 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、下表参照)
エラーコード 9015 / 101 / 105 などの調査—bmob-error-codes
プッシュ / SMS / 支払い各エンドbmob-push-* / bmob-sms-* / bmob-pay-*(P2)

具体的な操作(CRUD、ログイン、アップロード、デプロイ)にどのチャネルを使うかは、shared/operation-routing.md を参照。

P1 / P2 未公開時の一時パス

専用サブスキルがインストールされていない場合、待たずに以下の表で代替手段を使用してください。

ユーザーの意図対象スキル(未公開)現在利用可能な代替手段
登録 / ログイン / SMS 認証コード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-developmentMCP 設定済み:deploy_cloud_function → invoke_cloud_function;MCP 未設定:BmobDocs + コンソール
ACL / 行レベルの権限 / 9015·9016bmob-acl-and-rolesREST 作成/更新ボディに "ACL":{...};bmob-error-codes
BQL / テーブル間集計bmob-bqlREST GET /1/cloudQuery;bmob-database-restful
プッシュ / SMS / 支払いP2 スキルREST 対応モジュール + BmobDocs mds ディレクトリツリー

汎用セキュリティチェックリスト(全サブスキルで include される)

  • 書き込み操作の対象テーブルには ACL を設定すること。設定しないと任意のユーザーが任意の行を変更可能(P1 一時パスの ACL 行を参照)。
  • ブラウザ / ミニプログラム / モバイル端末では REST API Key(簡易認証 / SDK 方式 B) か Secret Key + セキュリティコード(暗号化認証 / SDK 方式 A) を使用し、Master Key は絶対に使用しない。
  • 暗号化認証シナリオの SecurityCode はネットワークを介して送信しない;フロントエンドバンドルにハードコードせず、環境変数で注入するか BFF に配置する。
  • batch / 全テーブルスキャン / テーブル間クエリは、SDK のループ呼び出しではなく優先的に BQL を使用する。
  • エラー発生時は、レスポンスボディの code フィールドを見て bmob-error-codes を参照し、推測で対応しない。
  • ユーザーパスワードフィールド(password)は Bmob のみが書き込み可能。update は不可。パスワード変更は /1/updateUserPassword/<objectId> を経由すること。

FAQ とアンチパターン

  • クロスプラットフォームのよくある質問(ルーティング、キー、MCP、データ形式):shared/faq.md
  • 典型的なアンチパターン(ACL、Master Key、9015 の誤用など):shared/anti-patterns.md
  • 英語エラーメッセージから数値コードを逆引き:bmob-error-codes 上部の「現象から逆引き」表

アプリケーションシナリオレシピ

エンドツーエンドのシナリオ(テーブル設計 + ACL + フロー)は、各プラットフォームスキルでコードを書く前に参照:

シナリオレシピ
ブログ / 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

ドキュメント検索方法

各サブスキルの references/snippets/(BmobDocs から同期)と手書きの references/*.md で大半の API をカバーしています。それでも不足する場合は、上流ドキュメントを取得してください。

  1. ファイル名で特定:上流ドキュメントツリーは github.com/bmob/BmobDocs/tree/master/mds、<feature>/<platform>/ で構成。

  2. エージェントが直接 fetch(GitHub レンダリング層をスキップ):

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

    WebFetch ツールで純粋なマークダウンとして直接取得可能。

  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 参照)、「実際のテーブル構造を読む / テストデータを書き込む / スキーマを設計する / サンプル curl を生成する / 静的サイトをワンクリックデプロイする」といったタスクは 優先的に MCP を使用し、推測でフィールド名を書かないこと。

  • tools/list は合計10ツール;エージェントは そのうち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;操作レベル3チャネル表は 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 と言及 → 本スキルの 入口決定木 → ルーティング決定表 でサブスキル選択 → shared/operation-routing.md で MCP / curl / SDK・REST 選択;エンド固有のコードはサブスキルの references/ と SKILL.md に記載。

関連スキル