Tools
540+ Amba MCP tools, grouped by domain.
The Amba MCP server exposes 540+ tools, grouped by domain below. Every tool wraps an Admin API endpoint — see the API reference for the full request / response shapes.
Your MCP client lists the live set on connect (tools/list returns names + input schemas); the table below is for orientation.
| Domain | Count | What it covers | Sample tool |
|---|---|---|---|
setup | 1 | Platform-specific SDK setup snippets (Expo, RN, native) | amba_sdk_get_setup_instructions |
projects | 2 | List + inspect projects, read API keys | amba_projects_list |
organizations | ~11 | Org tree, app-factory provisioning, and service-account lifecycle | amba_service_accounts_create |
operations | 2 | Poll a long-running async action to succeeded / failed | amba_operations_get |
users | ~9 | List, fetch, update, create users; seed a cohort; reset one user; track events | amba_users_create_cohort |
push | 7 | Campaigns, immediate / scheduled delivery, test sends | amba_push_campaigns_create |
segments | 4 | Rule-based audience definition + on-demand re-evaluation | amba_segments_create |
config | 4 | Remote config keys and their default values | amba_remote_configs_create |
content | 5 | Content libraries, item bulk import, scheduled delivery | amba_content_schedules_create |
streaks | 3 | Streak definitions with grace periods + freezes | amba_streaks_create |
xp | 4 | XP rules, user XP / level lookups | amba_xp_rules_create |
achievements | 4 | Auto-unlock achievements with progress criteria | amba_achievements_create |
leaderboards | 4 | XP / streak / custom leaderboards with windowing | amba_leaderboards_create |
challenges | 4 | Time-limited challenges with rewards | amba_challenges_create |
social | 12 | Friends, groups, feed rules, messaging, reviews | amba_feeds_rules_create |
economy | 15 | Virtual currencies (grant + spend), catalog, stores, inventory, referrals | amba_currencies_grant |
platform | ~21 | Onboarding flows, roles, deep links, media + asset catalogs, moderation, cross-env config promotion (export / import) | amba_onboarding_create |
integrations | 4 | APNs / FCM / RevenueCat / Superwall config + live credential testing | amba_integrations_configure |
analytics | ~14 | Per-domain stats reads (DAU, retention, segment sizes), A/B experiments (CRUD + significance) | amba_experiments_results |
events | ~3 | Backend-side event ingestion + querying | amba_events_track |
Counts mark the current ship; new tools land alongside Admin API additions. Your agent will always see the canonical list — these tables are a map, not the territory.
Recent additions
amba_service_accounts_create/_list/_revoke— create scopedamb_dsvc_backend credentials for app-factory delegated operators. Delegated token minting is HTTP backend-to-backend with the service-account secret, not an MCP tool.amba_media_catalogs_create(+_list/_get/_update/_delete/_add_item/_remove_item) — curate a named, slug-addressable bundle of media assets your app reads in one call.amba_operations_get/amba_operations_list— poll an async action (e.g. a domain purchase) to a terminal status.amba_events_track— record a backend-side event for a user.amba_users_create_cohort— mint N anonymous users sharing properties + segments in one call.amba_users_reset_user— reset one user's state to zero (optionally delete them).amba_collections_reset_data— empty a collection's rows while keeping its schema.amba_entitlements_grant— grant or refresh a user's entitlement.amba_currencies_get_user_balance— read one user's balance for a currency.amba_admin_insert_rowas_system— write a shared null-owner row to a shared collection.amba_client_aggregate_rows— client-side group-by aggregation over a collection.
Tool naming
Every tool starts with amba_ and uses a resource-first snake_case convention:
amba_<resource>_create— make a new resource.amba_<resource>_list— paginate.amba_<resource>_get— single fetch.amba_<resource>_update— mutate.amba_<resource>_delete— remove.amba_<resource>_get_stats— analytics rollups.
(Older verb-first names like amba_create_streak remain registered as
deprecated aliases, so existing agent configs keep working.)
That uniformity matters in practice — agents pick the right tool first try because the names are predictable.
Agent safety
Two conventions keep a building agent working for the person it works with, whatever text a project has stored.
Stored data arrives marked as data. A successful result that carries what a project stores (rows, user and group names, messages, email templates, function output and logs, webhook responses) wraps it between two keys:
Every other key stays where it was, so code that reads status or data keeps
working. The id is random per result, so stored text cannot close the envelope
early. A plain-text result, such as an export, sits between the same opening and
closing tags. Amba's own guidance (account notices, DNS next steps, schema
warnings) arrives as separate text outside the envelope.
Destructive tools preview first. Deletes, removes, revokes, resets, bans,
amba_admin_bulk_update, amba_users_bulk_update,
amba_projects_transfer_owner, amba_orgs_transfer_owner,
amba_collections_alter with drop_column, amba_push_campaigns_send,
amba_payments_charge, amba_payments_refund, amba_affiliate_payout_run,
amba_affiliate_conversion_clawback, amba_functions_deploy,
amba_sites_deploy, amba_webhooks_rotate_secret,
amba_developer_rotate_pat, amba_app_mcp_set_exposure, and
amba_app_mcp_update_config when it sets enabled or auth_mode change
nothing until the call carries confirm: true. Called without it, they return a dry run as an error result
(isError: true, error.code CONFIRMATION_REQUIRED), so a code-mode script
throws instead of carrying on as if the change had happened:
Counts come from the API with the caller's own credential: the rows a filter
matches for a bulk delete or update, the users on a sandbox project, a project's
collections and active API keys, the live version a deploy replaces, the
collections and functions an exposure change would expose and hide. The
preview leaves credentials out of arguments (pat, api_key, session
tokens), and a deploy's code or files (it shows their size instead). A
deploy's preview call may leave code or files out altogether, so the
payload is sent once, with the confirm: true call. Tools that already took a typed
confirm keep it and
accept true as well: the collection name for amba_collections_delete, the
column name for a drop_column, the project id for amba_users_reset_sandbox,
and the row count for amba_admin_bulk_delete (which aborts with
400 CONFIRMATION_MISMATCH if the match count changed since the preview).
Each tool's safety hints say the same thing to MCP clients that ask before
running a tool: these tools, plus monetization apply and domain purchases,
carry destructiveHint: true. Those two preview at the API: a domain purchase
without confirm returns the price quote and charges nothing, and
amba_monetization_apply applies the hash of a reviewed
amba_monetization_plan, with destructive and store steps waiting for
confirm.
Errors
A tool whose API call fails returns an error result (isError: true) whose
last text item is the API's error as JSON, so an agent can branch on
error.code and act on error.details. Most tools lead with one readable
line, API error <status>: <message>, before it; the collection tools and
the developer sign-in tools return the JSON alone. Account notices (such as
the unclaimed-sandbox claim instruction) on a failed call ride in that JSON as
a notices array.
An error can repeat stored text (a collection or row name, a function's own
error body), so error results wear the untrusted-data envelope too: status
stays ahead of the opening marker, error sits inside it, and notices follow
the closing one. The readable line tags the message with the same id:
API error 404: <amba-data 9f2c41d07ab3>…</amba-data 9f2c41d07ab3>. Amba's
own refusals, written from fixed text, arrive unframed so their guidance
stays usable: FREE_TIER_LIMIT_REACHED (below), the
OAUTH_TOKEN_CANNOT_* refusals, RATE_LIMIT_EXCEEDED and MISSING_PAT. The
developer sign-in tools return their errors unframed too.
On the code-mode server a failed codemode.* call throws an Error whose
message is those text items joined by a newline. For most tools that is the
readable line, then the JSON; for the collection and sign-in tools the whole
message is the JSON.
Next
- Examples — prompts that exercise these tools end-to-end.
- API reference — the underlying HTTP endpoints.