butterbase-ai/mcp
Butterbase MCP server — manage your backend: schemas, auth, functions, storage, RAG, deploys.
Connector by butterbase-ai · GitHub account verified by the MCP Registry
Install
Works with Claude Code, VS Code, Codex, Cursor, Windsurf, Claude Desktop. Read the repository before you give any tool access to your data.
npx agentmarket install connector/butterbase-ai-mcp
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Remote endpoint
https://api.butterbase.ai/mcpRemote (HTTP)
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: backend-development, database-access
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this server can do and what it asks for, from its tool list and install config. Checked Oct 25, 2026.
- Tools
- 6 read · 20 write · 12 delete
- Secrets
- 2 (API keys, tokens or passwords)
- Install scripts
- Not scanned yet
- Runs as
- Node.js package
Tools by what they do 38
Read from the source code; the running server may list different tools.
Read 6 · Look things up without changing anything.
butterbase_docslist_partner_apislist_regionsquery_audit_logsrag_queryselect_rows
Write 20 · Create, change, send or run things.
create_frontend_deploymentdeploy_functioninit_appinsert_rowinvoke_functionmanage_aimanage_auth_configmanage_billingmanage_edge_ssrmanage_frontendmanage_integrationsmanage_kv
Show 8 more tools
manage_peoplemanage_rag_contentmanage_realtimemanage_repomanage_schemaprep_and_submit_hackathon_entryseed_databasesubmit_suggestion
Delete 12 · Delete, drop, revoke or wipe things.
manage_agentsmanage_api_keysmanage_appmanage_auth_usersmanage_durable_objectsmanage_functionmanage_migrationsmanage_oauthmanage_previewmanage_rlsmanage_storagepromote_preview
Secrets and settings it asks for
Secrets: values you paste in that let it act as you.
AuthorizationBUTTERBASE_API_KEY
Network hosts it talks to 1
api.butterbase.ai· found in remote endpoint, install command
Files it touches
- Any path the agent passes to its tools
Tools (38)
Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].
butterbase_docsButterbase Docsread-onlyRead comprehensive Butterbase documentation (local, no API calls). Available topics: - all: Complete documentation (default) - overview: Platform introduction and key features - mcp: MCP tool reference and examples - rest: HTTP data API (auto-generated REST endpoints) - auth: End-user authentication (OAuth, JWT) - storage: File upload/download with S3 - functions: Serverless functions (triggers, context) - frontend: Static frontend deployment (upload zip, deploy to live URL) - ai: AI model gateway (chat completions, BYOK, usage) - meetings: Meeting bots that join Zoom/Meet…
create_frontend_deploymentCreate Frontend DeploymentCreate a frontend deployment and get an upload URL. Upload your built frontend as a zip file to the returned URL, then use manage_frontend (action: "start_deployment") to trigger the deploy. Steps: 1. Call this tool to get an upload URL 2. Upload your zip file to the URL (e.g. curl -X PUT "{uploadUrl}" -H "Content-Type: application/zip" --data-binary @frontend.zip) 3. Call manage_frontend (action: "start_deployment") with the returned deployment_id Example: Input: { app_id: "app_abc123", framework: "react-vite" } Output: { deployment_id: "uuid-1234", uploadUrl: "https://...…
deploy_functionDeploy FunctionDeploy or update a serverless function with custom business logic. Example: Input: { app_id: "app_abc123", name: "send-welcome-email", code: "export async function handler(req, ctx) { ... }", trigger: { type: "http", config: { method: "POST", path: "/welcome", auth: "required" } } } Output: { function_id: "fn_xyz789", name: "send-welcome-email", url: "https://api.butterbase.ai/v1/app_abc123/fn/send-welcome-email", status: "deployed" } Function signature: export async function handler(request: Request, context: { db: PostgresClient…
init_appInitialize AppCreate a new backend app with isolated database and API endpoints. Returns: app_id, api_url, url (frontend URL), and provisioning status. Example: Input: { name: "my-blog" } Output: { app_id: "app_abc123", api_url: "https://api.butterbase.dev/v1/app_abc123", url: "https://my-blog.butterbase.dev", _meta: { next_actions: [...] } } URL guide: - api_url: Your API endpoint for database queries, auth, and functions (e.g. https://api.butterbase.dev/v1/app_abc123) - url: Your frontend URL where your deployed site is served (e.g. https://my-blog.butterbase.dev) - These ar…
insert_rowInsert RowInsert a new row into a table using the auto-generated REST API. By default, this tool authenticates with the platform API key (butterbase_service role), which bypasses Row-Level Security. Inserts via this tool are not subject to RLS policies. To test RLS enforcement on writes, use the as_role and as_user parameters: - as_role: "anon" — simulate an anonymous insert (butterbase_anon role) - as_role: "user", as_user: "<user-uuid>" — simulate a specific end-user (butterbase_user role) Without as_role, this tool always runs as butterbase_service (full access, bypasses RLS). Use this to: …
invoke_functionInvoke FunctionInvoke a deployed function and return its full HTTP response. Example — POST with body: Input: { app_id: "app_abc123", function_name: "submit-inquiry", body: { email: "user@example.com", message: "hello" } } Output: { status: 200, headers: { "content-type": "application/json" }, body: { id: "uuid-1234" }, duration_ms: 47 } Example — GET (no body): Input: { app_id: "app_abc123", function_name: "public-catalog", method: "GET" } Parameters: - method defaults to POST. The function's trigger config determines which methods are valid. - body…
list_partner_apisList Partner APIsread-onlyList third-party partner APIs (Seedance, Z.AI / 智谱, Qingyun, etc.) configured for a specific Butterbase hackathon. Multiple hackathons can be open at once, so the caller MUST name which one with hackathon_slug. Each entry returns: - slug: identifier used in the proxy URL. - display_name + description. - proxy_url_template: full URL with "{path}" placeholder. Substitute "{path}" with the path you'd hit on the partner directly (e.g. "/v1/chat/completions"), set Authorization to your bb_sk_ project key, and send the request body unchanged. Butterbase handles the partner-side au…
list_regionsList Regionsread-onlyList the regions an app can be created or moved to. Returns the live set of supported regions. Use this before calling init_app or manage_app (action: "move") to validate a region slug, or to present region choices to a user. Returns: { regions: string[] } e.g. { regions: ["us-east-1", "us-west-2"] } Idempotency: Safe to call anytime (read-only operation).
manage_agentsManage Agentscan change or delete dataManage agents for a Butterbase app: list, get, create, update, delete, and validate specs. Actions: - "list": List all agents defined for an app. - "get": Get a single agent by name (full record incl. graph_spec). - "create": Create a new agent. Requires name + graph_spec. - "update": Patch an existing agent (partial update). Requires name. - "delete": Permanently delete an agent and all its runs. Requires name. - "validate": Validate a graph_spec without creating an agent. Requires graph_spec. Parameters by action: list: { action: "list", app_id } get: …
manage_aiManage AIUse the app's AI gateway: chat, embeddings, list models, read/update config, read usage. Actions: - chat { app_id, messages, model?, temperature?, max_tokens? } Synchronous (no streaming). Returns the full assistant response. Default model is the app's configured default, or "openai/gpt-4o-mini". - embed { app_id, input (string | string[]), model?, encoding_format? } Returns OpenAI-shaped embedding response. - decide { app_id, questions, state?, model? } Typed …
manage_api_keysManage API Keyscan change or delete dataList and revoke API keys (service keys) for the Butterbase platform account. This is a platform-scoped tool — it operates on the authenticated account, not on a specific app. To generate a new API key, use manage_auth_config (action: "generate_service_key"). Actions: - "list": List all active API keys on the account (key secrets are NOT returned — only metadata) - "revoke": Permanently revoke a specific key by its ID Parameters by action: list: { action: "list" } revoke: { action: "revoke", key_id: "<uuid>" } Examples: List all keys: Input: { action: "list" } Output…
manage_appManage AppManage app lifecycle: list, delete, pause/resume, get config, update access mode, secure, update CORS, clone, find templates, and migrate regions. Actions: - "list": List all backend apps with basic metadata (no app_id needed) - "delete": Delete an app and ALL its resources permanently (IRREVERSIBLE) - "pause": Pause or resume all data-plane traffic for an app (kill-switch) - "get_config": Get detailed configuration for an app including CORS, storage settings, and metadata - "set_visibility": Toggle the app'…
manage_auth_configManage Auth ConfigManage authentication configuration for an app. Actions: - "configure_auth_hook": Configure a post-authentication hook function - "update_jwt": Update JWT token expiration times - "generate_service_key": Generate a new API key (service key) Parameters by action: configure_auth_hook: { app_id, action: "configure_auth_hook", post_auth_function } update_jwt: { app_id, action: "update_jwt", accessTokenTtl?, refreshTokenTtlDays? } generate_service_key: { action: "generate_service_key", name } --- ### configure_auth_hook Configure a post-authentication hook functi…
manage_auth_usersManage Auth Userscan change or delete dataManage end-user auth records for an app. Actions: - "list": Paginated list of app_users (id, email, provider, provider_uid, email_verified, last_sign_in_at, created_at). Pass the next_cursor from a prior response to page. - "delete": Hard-delete an app user by id. Cascades to refresh tokens and verification codes. Use this to unblock OAuth migrations when an existing email/password row collides. Parameters by action: list: { app_id, action: "list", limit?, cursor? } delete: { app_id, action: "delete", user_id } Tips: - Looking for a user by email? C…
manage_billingManage BillingManage billing, plans, usage, and spending caps for the Butterbase platform account. This is a platform-scoped tool — it operates on the authenticated account, not on a specific app. Actions: - "status": Get current plan, usage summary, and spending cap in one call - "portal": Generate a Stripe billing portal URL for payment method / invoice management - "topup": Add credit to the account balance (prepaid top-up) - "cap_get": Retrieve the current monthly spending cap - "cap_raise": Raise the monthly spending cap by a given amount - "plans": List all available subs…
Show 23 more tools
manage_durable_objectsManage Durable ObjectsManage Durable Object (DO) classes for an app: register/update code, list/get/delete, view usage, and manage shared env vars. DOs are stateful per-key actors that persist state in memory and built-in storage. Use them when you need state for a single room/user/agent across requests (multiplayer games, chat rooms, rate limiters, long-running agents). For stateless work, use a Function instead. Actions: - "deploy": Register or update a DO class (single TypeScript file, one exported class) - "list": List all DO classes for the app - "get": Get a single DO class — includes…
manage_edge_ssrManage Edge SSR DeploymentsManage Edge SSR (Cloudflare Workers) deployments: prebuilt-zip flow, server-side build flow, list history. Actions: - "create": Create a deployment from a locally-built zip; returns upload URL + deployment_id - "start": Start the deployment after the zip is uploaded; polls until READY/ERROR (≤60s) - "create_from_source": Server-side build — Mode 1: create deployment + return upload_url - "start_from_source": Server-side build — Mode 2: kick off the build after source upload - "list": List recent deployments (status, URL, sizes) Two flows (pic…
manage_frontendManage FrontendManage frontend deployments, environment variables, and custom domains for a Butterbase app. Actions: - "start_deployment": Start a frontend deployment after uploading your zip file. Call after uploading zip to the URL returned by create_frontend_deployment. Polls until complete (up to 5 minutes). - "list_deployments": List frontend deployment history for an app (read-only). - "create_from_source": Create a source-based deployment and get a presigned upload URL (Mode 1). Upload your source zip to the URL via HTTP PUT with Content-Type: application/zip (max 50 MB). - "s…
manage_functionManage FunctionManage function lifecycle: list, get source, delete, get logs, and update environment variables. Actions: - "list": List all deployed functions with status, metrics, and invocation URLs - "get": Retrieve a single function's full detail including its deployed source code - "delete": Delete a deployed function permanently (IRREVERSIBLE) - "get_logs": Retrieve recent invocation logs for debugging and monitoring - "update_env": Update environment variables for a deployed function without redeploying code - "update_settings": Toggle per-function settings (currently: …
manage_integrationsManage IntegrationsManage third-party integrations for a Butterbase app (e.g., Gmail, Slack, Google Calendar). Actions: - "configure": Enable or manage a third-party integration toolkit for an app - "rotate_credentials": Swap in new BYO OAuth client_id/client_secret without dropping connected accounts - "disable": Disable a configured integration toolkit - "list_available": List available integrations that can be enabled (curated or full catalog) - "list_connected": List connected integration accounts for an app - "list_tools": List available tool actions for conn…
manage_kvManage KVManage app KV store: config rules (expose/unexpose namespaces) and data-plane operations (get/set/del/incr etc). Actions — Config: - "list_rules": List all KV namespace exposure rules for the app - "expose": Expose a key pattern with read/write role access control - "unexpose": Remove an exposure rule by pattern - "stats": Get KV usage stats (key count, memory, etc.) - "scan": Scan keys by prefix (cursor-based, params: prefix, limit, cursor) - "flush": Delete ALL keys in the KV store (requires confirm: true; include_config?: true also wipes rules) Acti…
manage_migrationsManage Migrationscan change or delete dataRead and control in-flight app migrations. This complements manage_app (actions: move / move_status / teardown_source_replica) with the four operational routes those actions don't cover. Actions: - get_active : { app_id, action: "get_active" } Returns the running migration for this app, or { migration: null }. - abort : { app_id, migration_id, action: "abort" } Cancel a migration that has NOT yet reached "flipping_routing". Returns 409 if already past cutover; use "reverse"…
manage_oauthManage OAuth ProvidersManage OAuth providers for end-user authentication (configure, get, update, delete). Actions: - "configure": Set up a new OAuth provider (idempotent upsert) - "get": Read provider config (single provider or all). client_secret is redacted. - "update": Patch existing provider — only supplied fields change - "delete": Remove a provider. Existing sessions remain valid until expiry. Built-in providers (URLs/scopes auto-filled — only client_id, client_secret, redirect_uris required): google, github, discord, facebook, linkedin, microsoft, apple, x For any other provider name…
manage_peopleManage PeopleUse the app's People integration: search person/company, fetch profiles, queue email lookups, manage credits and BYOK keys. Actions: - search_person { app_id, current_role_title?, past_role_title?, current_company_name?, current_company_industry?, country?, region?, city?, education_school_name?, education_degree_name?, education_field_of_study?, page_size?, next_token?, enrich_profiles? } Structured-filter search for a person. Boolean syntax works inside any field, e.g. current_role_title: '(VP OR "Vice President") AND NOT assistant…
manage_previewManage Preview Deploymentcan change or delete dataCreate, inspect, or re-copy an app's preview deployment. A preview deployment is a copy of the live app that the user can safely break. It is a separate app with its own database, its own files and its own sign-ups, so nothing done in it reaches the app real users are on. Note this is a whole second app, not a frontend deploy. WHAT IT CONTAINS. A preview starts as a copy of the live app: its tables, its functions, its access rules, and the live app's DATA — every table's rows, every signed-up account (with password hashes, so people sign in with the passwords they already have), and every up…
manage_rag_contentManage RAG ContentManage RAG (Retrieval-Augmented Generation) collections and documents. Collections are named containers for documents that are chunked, embedded, and indexed for semantic search. Actions: Collection actions: - "create_collection": Create a new collection - "list_collections": List all collections in an app - "get_collection": Get details for a specific collection (includes document counts by status) - "delete_collection": Permanently delete a collection and all its documents/embeddings Document actions: - "ingest_document": Add a document (raw text or uploaded file) to …
manage_realtimeManage RealtimeManage realtime WebSocket notifications for database tables. Actions: - "configure": Enable realtime broadcasts (INSERT/UPDATE/DELETE) on the given tables. Idempotent — already-enabled tables are skipped. - "get": Return current realtime config (which tables, active LISTEN connection, websocket URL). Parameters by action: configure: { app_id, action: "configure", tables: [...] } get: { app_id, action: "get" } After configuring, clients connect via WebSocket: ws://api.butterbase.local/v1/{app_id}/realtime Client sends: { "type": "subscribe", "table":…
manage_repoManage RepoManage an app's repo (content-addressed code snapshots). Actions: - "push": Push a small set of files (≤1 MB total over MCP — for larger repos shell out to `butterbase repo push`). Files are { path, content_base64 } pairs. Server computes sha and runs prepare → upload → commit. - "pull_latest": Fetch the latest snapshot's manifest (does not write files locally). Returns { snapshot_id, files: [{ path, sha256, size, downloadUrl }] } — agents fetch each downloadUrl directly. - "pull_snapshot": Fetch a SPECIFIC snapshot's manifest by snapshot_id (does not write files loc…
manage_rlsManage RLSManage Row-Level Security (RLS): enable on tables, create/update/delete policies, list, and one-shot user isolation setup. Actions: - "enable": Enable RLS on a table (foundation — no policies yet) - "create_policy": Create a custom RLS policy with USING / WITH CHECK expressions - "update_policy": Atomically update an existing policy (drops and re-creates in one tx) - "create_user_isolation": One-shot — enable RLS, create policy so users see only their rows, install auto-populate trigger - "list": List all RLS policies for the app (and tabl…
manage_schemaManage SchemaManage the database schema: read current schema, apply changes, preview changes, and audit migration history. Actions: - "get": Get the current schema (tables, columns, indexes) and api_base - "apply": Apply a declarative schema. Diffs against current and runs the safe DDL. - "dry_run": Preview the SQL that "apply" would run, without executing - "list_migrations": List applied migrations (most recent first) Parameters by action: get: { app_id, action: "get" } apply: { app_id, action: "apply", schema, name? } dry_run: …
manage_storageManage StorageManage app storage: presigned upload/download URLs, list/delete objects, update config. Actions: - "upload_url": Get a presigned PUT URL to upload a file (expires in 15 min) - "download_url": Get a presigned GET URL for a stored file (expires in 1 hour) - "list": List all objects in app storage with metadata - "delete": Permanently delete an object from S3 + database - "update_config": Update storage config (publicReadEnabled, per-app storage cap, per-file size cap) Parameters by action: upload_url: { app_id, action: "upload_url", filename, content_type, si…
prep_and_submit_hackathon_entryPrep and Submit Hackathon EntryPrep and submit your project to a Butterbase hackathon. Two-step flow. The tool resolves which hackathon you mean from your submission_code (or, if you've already submitted before, your existing binding). You do NOT pass a slug — that's figured out for you. If resolution is ambiguous (no code, not yet bound, and multiple hackathons are open), the tool returns the list of open hackathons; ask the user which one they mean and re-run with a code. STEP 1 — action: "prep" Resolves the hackathon and returns its field_schema if exactly one is identified. Pass submission_code when you have…
promote_previewPush Preview Deployment Livecan change or delete dataPush a preview deployment's changes onto the live app. Copies the preview's STRUCTURE onto its live app — tables, access rules, functions, Durable Objects, config, the code snapshot — AND DEPLOYS THE FRONTEND. This is a real deploy to the app real users are on. Data is never pushed. The live app's rows are never overwritten and never removed. Only the shape of the database and the application code change. A table added in the preview is created on the live app EMPTY. Anything that would throw away live data is refused outright: if pushing would require deleting a field, deleting a table, ch…
query_audit_logsQuery Audit Logsread-onlyQuery audit events for an app — authentication, admin mutations, and function invocations. Returns a unified event stream. Each event has: category 'auth' | 'admin' | 'function' event_type e.g. 'login', 'schema.apply', 'function.deploy', 'function.invoke' action 'create' | 'update' | 'delete' | 'invoke' | 'enable' | 'disable' | null resource_type which resource the event acted on resource_id the resource identifier (function name, policy name, deployment id, etc.) actor_type 'platform_user' | 'app_user' | 'api_key' | 'system' | 'anonymous' actor_id …
rag_queryQuery RAG Collectionread-onlyQuery a RAG collection using natural language to retrieve relevant document chunks. Performs semantic search over the collection's indexed documents and returns the most relevant chunks ranked by similarity. Optionally synthesizes an AI-generated answer using the retrieved context. Parameters: - query: Natural language question or search phrase - top_k: Number of chunks to retrieve (default 5, max 20) - threshold: Minimum similarity score 0-1 (only return chunks above this score) - synthesize: If true, uses an LLM to generate a natural language answer from the retrieved chunks (d…
seed_databaseSeed DatabaseInsert multiple rows into a table in a single call. Useful for seeding sample data, bootstrapping test fixtures, or populating lookup tables. IMPORTANT: This tool authenticates with the platform API key (butterbase_service role), which bypasses Row-Level Security. Inserts via this tool are not subject to RLS policies. Rows are inserted sequentially. If a row fails (e.g., duplicate key, constraint violation), the tool skips it and continues with the remaining rows. The response reports how many rows were inserted vs failed, with error details for each failure. Example: Input: { app_id:…
select_rowsSelect Rowsread-onlyQuery rows from a table using the auto-generated REST API. By default, this tool authenticates with the platform API key (butterbase_service role), which bypasses Row-Level Security and returns ALL rows regardless of RLS policies. To test RLS enforcement from this tool, use the as_role and as_user parameters: - as_role: "anon" — simulate an anonymous request (butterbase_anon role) - as_role: "user", as_user: "<user-uuid>" — simulate a specific end-user (butterbase_user role) Without as_role, this tool always runs as butterbase_service (full access). Use this to: - Fetch data from tab…
submit_suggestionSubmit SuggestionSubmit feedback, bug reports, or feature suggestions to the Butterbase platform team. Use this tool when you encounter issues with Butterbase tools, want to suggest improvements, or when a user asks you to report something to the Butterbase team. Categories: - bug_report: Something isn't working as expected or documented. Example: "apply_schema fails silently when adding an enum column with a default value" - feature_request: A capability that doesn't exist yet but would be useful. Example: "Support for composite unique constraints across multiple columns" - improvement: An…
Compare and alternatives
Featured in
Signals
- Stars
- 3,031
- Forks
- 166
- Open issues
- 8
- Weekly downloads
- 19
- Last commit (this folder)
- Oct 19, 2026 (9 days ago)
- Last release
- Jun 1, 2026 (4 months ago)
- Last package publish
- Jun 2, 2026 (4 months ago)
From GitHub (fetched Oct 24, 2026) and the package registry.
Details
- Registry name
io.github.butterbase-ai/mcp- Version
- 1.0.0
- Auth
- Bearer token, API key
- Packages
- npm @butterbase/mcp
- License
- Apache-2.0
- Repository
- github.com/butterbase-ai/butterbase-oss
- Website
- butterbase.ai
- First seen
- Oct 24, 2026
- Last checked
- Oct 25, 2026
Cite this page
butterbase-ai/mcp. Agent Mart. https://agentmart.dev/connectors/butterbase-ai-mcp (last updated 2026-10-25)