Skip to content

MCP Tools

These tools are available when connected via MCP. See MCP Setup for connection instructions.

ToolDescription
init_appCreate a new app. Accepts an optional region slug. Returns app_id and API base URL.
list_regionsList the regions an app can be created or moved to.
move_appMove an existing app to another region.
move_app_statusCheck the progress of an app move.
list_appsList all apps with metadata.
delete_appPermanently delete an app. Irreversible.
pause_appKill-switch — pause/resume all data-plane traffic. Returns 503 (APP_PAUSED) on data-plane endpoints while paused.
get_app_configRead app configuration (CORS, JWT, storage limits).
update_corsSet allowed CORS origins.
update_jwt_configConfigure access/refresh token lifetimes.
update_app_access_modeToggle anonymous vs authenticated-only access.
set_visibilityMark an app public or private, optionally setting the templates-browser listed flag.
generate_service_keyGenerate a bb_sk_ API key. Shown only once.
manage_appComprehensive app management: list/delete/pause, configure access/visibility, clone templates, set webhooks. See manage_app actions below.
ActionDescription
find_templatesSearch public, listed app templates. Pass optional q (name prefix), region, sort (recent or popular), limit (max 50), offset. Returns { items: [...], total, limit, offset }.
cloneClone a public app’s repo snapshot into a new app you own. Pass source_app_id and optionally name and region. Returns { job_id, status: "pending" }.
get_clone_jobPoll the status of a clone job by job_id. Returns status (pending, completed, or failed), dest_app_id when completed, and error_message when failed.
set_clone_webhookConfigure a webhook that fires when someone clones this app. Pass webhook_url and webhook_secret, or clear_webhook: true to remove.
ToolDescription
get_schemaRead current database schema.
apply_schemaApply declarative schema. Set dry_run: true to preview.
dry_run_schemaPreview SQL without executing.
list_migrationsView migration history.
ToolDescription
select_rowsQuery rows with filtering, sorting, pagination.
insert_rowInsert a row into a table.
seed_databaseBulk-insert up to 100 rows in one call. Bypasses RLS (uses platform role).
ToolDescription
configure_oauth_providerRegister a social sign-in provider.
get_oauth_configList configured OAuth providers.
update_oauth_providerModify an OAuth provider.
delete_oauth_providerRemove an OAuth provider.
enable_rlsEnable row-level security on a table.
create_policyCreate a custom RLS policy.
create_user_isolation_policyQuick user isolation setup.
get_rls_policiesList active RLS policies.
delete_rls_policyRemove RLS from a table.
query_audit_logsSearch auth audit logs.
update_app_access_modeToggle an app’s data-API access between public and authenticated.
set_visibilityMark an app public or private as a template, optionally setting the templates browser listed flag.
secure_appSet access_mode = "authenticated" and create user-isolation RLS policies on listed tables in one call.
configure_auth_hookConfigure (or remove) the function invoked after every successful auth event.
ToolDescription
manage_repoPush, pull, inspect, or wipe your app’s repo (content-addressed code snapshots). MCP pushes are capped at ~1 MB; for larger snapshots shell out to butterbase repo push.
ToolDescription
generate_upload_urlGet a presigned upload URL.
generate_download_urlGet a presigned download URL.
get_storage_objectsList all files.
delete_storage_objectDelete a file.
update_storage_configToggle app-wide public read access for storage objects.
ToolDescription
deploy_functionDeploy a TypeScript/JavaScript function.
list_functionsList deployed functions.
invoke_functionTest-invoke a function.
delete_functionDelete a function.
update_function_envUpdate environment variables.
get_function_logsView invocation logs.
ToolDescription
create_frontend_deploymentCreate deployment and get upload URL.
start_frontend_deploymentStart deployment after upload.
list_frontend_deploymentsView deployment history.
set_frontend_envConfigure build environment variables.
ToolDescription
configure_realtimeEnable realtime on tables.
get_realtime_configView realtime configuration.

All AI actions are routed through the single manage_ai MCP tool. Pass { app_id, action, ... } where action selects the operation.

ActionDescription
chatSynchronous chat completion (OpenAI-compatible). Pass messages, optional model, temperature, max_tokens.
embedGenerate vector embeddings. Pass input (string or array), optional model, encoding_format.
list_modelsList models available through the app’s gateway (chat, embedding, and video).
get_configRead the app’s AI configuration (default model, allowed models, max tokens).
update_configUpdate AI configuration. Can rotate BYOK keys, set default model, set allowed models.
get_usageAggregate token counts and credit spend over a date window.
submit_videoSubmit an async video generation job. Pass model, prompt, optional duration, resolution, aspect_ratio, generate_audio, seed. Returns { job_id, status, polling_url }.
poll_videoPoll a video job’s status. Pass job_id. Returns the current job state including content_urls (absolute) and charged_credits_usd when status === 'completed'.

For the full HTTP request/response shapes and end-to-end video example, see the AI API reference.

ToolDescription
rag_create_collectionCreate a named collection for storing and querying documents.
rag_list_collectionsList all RAG collections with document counts.
rag_delete_collectionDelete a collection and all its documents, chunks, and embeddings.
rag_ingestIngest raw text or an uploaded file into a collection. Returns a document ID; processing is async.
rag_ingest_statusPoll ingestion status (pendingprocessingready / failed).
rag_querySemantic search over a collection. Returns ranked chunks; optionally synthesizes an AI answer.
rag_list_documentsList all documents in a collection with status and metadata.
rag_delete_documentDelete a document and all its vector chunks.
ToolDescription
configure_integrationEnable a toolkit (Gmail, Slack, etc.) for an app.
list_available_integrationsList curated toolkits or search the full catalog.
list_integration_toolsList executable tools for a connected toolkit.
execute_integration_actionExecute a tool on behalf of a user.
list_connected_accountsList all users with connected accounts for an app.
ToolDescription
manage_kvManage app KV store: config rules (expose/unexpose namespaces) and data-plane operations (get/set/del/incr/etc).
ActionDescription
list_rulesList all KV namespace exposure rules for the app
exposeExpose a key pattern with read/write role access control
unexposeRemove an exposure rule by pattern
statsGet KV usage stats (key count, memory, etc.)
scanScan keys by prefix (cursor-based pagination)
flushDelete all keys in the KV store (requires confirm: true)
getGet the value of a key
setSet a key to a value with optional TTL or ephemeral flag
delDelete one key
incrIncrement a key’s integer value
decrDecrement a key’s integer value
setnxSet a key only if it does not already exist
setexSet a key with an explicit TTL in seconds
casCompare-and-swap: atomically set next only if current value matches expected
existsCheck if a key exists
ttlGet remaining TTL of a key in seconds
expireSet a TTL on an existing key
mgetGet values of multiple keys at once
msetSet multiple key-value pairs at once
{
"action": "manage_kv",
"app_id": "app_abc123",
"action": "set",
"key": "counter:requests",
"value": 42,
"ttl": 3600
}
ToolDescription
configure_custom_domainAdd, list, check status, verify, or remove custom domains. Actions: add, list, status, verify, remove.

These tools are listed whenever any hackathon’s submission window is open. Multiple hackathons can be open simultaneously; tools that target one require an explicit hackathon_slug. See Hackathon.

ToolDescription
prep_and_submit_hackathon_entryTwo-step flow. action: "prep" resolves the hackathon from your submission_code and returns its field_schema plus a next_call template — a fully-formed example submit invocation with a placeholder per field. action: "submit" sends the confirmed data (use matched.slug from prep as hackathon_slug). First submission also needs submission_code. Pass app_id (from manage_app list) so automated scoring can award feature points and judges can verify your app.
ToolDescription
submit_suggestionSubmit feedback, bug reports, or feature requests.
butterbase_docsRead documentation by topic.