# Butterbase

> Open-source backend-as-a-service. Postgres, auth, storage, functions, AI gateway, MCP.

- **Type:** MCP server
- **Install:** `agentstack add mcp-butterbase-ai-butterbase`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [butterbase-ai](https://agentstack.voostack.com/s/butterbase-ai)
- **Installs:** 0
- **Category:** [Databases](https://agentstack.voostack.com/c/databases)
- **Latest version:** 0.1.0
- **License:** Apache-2.0
- **Upstream author:** [butterbase-ai](https://github.com/butterbase-ai)
- **Source:** https://github.com/butterbase-ai/butterbase

## Install

```sh
agentstack add mcp-butterbase-ai-butterbase
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

AI-native, open-source backend-as-a-service.Postgres · Auth · Storage · Functions · AI Gateway · MCP server

  
  
  
  
  
  
  
  
  

  Website ·
  Discord ·
  LinkedIn ·
  Self-host ·
  Docs ·
  Roadmap ·
  Examples ·
  Contributing

---

Butterbase gives you the building blocks for AI-driven applications without lock-in: a Postgres-backed backend with row-level security, serverless functions, an LLM gateway, realtime subscriptions, key-value store, file storage, RAG, durable per-key actors, and a built-in **Model Context Protocol (MCP) server** so agents can operate your backend with tools instead of glue code.

## Features

**Data**
- **Postgres data plane** — per-app databases with declarative schema (`/schema`), automatic REST endpoints (`/auto-api`), and migrations.
- **Row-Level Security** — first-class RLS policy management with user-isolation helpers (`/rls`).
- **Key-Value store** — regional, quota-protected KV with TTL, audit trail, and dashboard expose rules (`/v1/:app/kv/*`). *New in v0.2.0.*
- **File storage** — S3/R2-backed object storage with presigned URLs, ACLs, and async indexing (`/storage`).

**Compute**
- **Serverless functions** — TypeScript functions executed on the Deno runtime (`/functions`).
- **Durable Objects** — stateful per-key actors for chat rooms, multiplayer, rate limiters, long-running agents (`/durable-objects`).
- **Realtime** — WebSocket subscriptions to table changes for live UIs and presence (`/realtime`).
- **Edge SSR** — deploy Next.js / Remix / Astro edge handlers from source (`/edge-ssr`, `/edge-ssr-from-source`).
- **Frontend hosting** — zip or build-from-source static / SPA deploys with custom domains (`/frontend`, `/custom-domains`).

**AI**
- **AI gateway** — single endpoint for chat, embeddings, model listing; pluggable router adapters (`/gateway`, `/ai-config`).
- **RAG** — managed collections, document ingestion, semantic search and synthesized answers (`/rag`).
- **Integrations** — third-party tool access via Composio (`/integrations`).

**Identity & ops**
- **Auth** — email + OAuth (Google, GitHub, Apple, X, …), JWT tuning, post-login hooks, service keys (`/auth`, `/oauth-config`, `/api-keys`).
- **Audit logs** — structured request audit trail across KV and other surfaces (`/audit-logs`).
- **Webhooks** — outbound webhooks for app events (`/webhooks`).
- **Multi-region app moves** — relocate an app across regions with retained source replicas (`scripts/move-app/`).

**Agent surface**
- **MCP server** — every capability above is exposed as MCP tools at `/mcp` (HTTP) or via stdio (`@butterbase/mcp` — `npx @butterbase/mcp`).
- **Claude Code plugin** — `packages/plugin` (submodule of [butterbase-skills](https://github.com/butterbase-ai/butterbase-skills)) ships 30+ guided skills (idea → plan → schema → auth → functions → deploy → submit) for agentic app building.

## Open-source vs. managed

This repo ships the **runtime data plane** — everything required to self-host a fully featured Butterbase instance. The **managed offering** at [butterbase.ai](https://butterbase.ai) adds multi-region orchestration, billing, upstream AI router adapters, lease-based quota enforcement, and ops dashboards (those live in a private repo that consumes this one as a submodule).

When you self-host, the AI gateway runs without upstream router adapters, billing uses a no-op provider, and quotas are unlimited. Wire your own implementations via the `BillingProvider`, `QuotaEnforcer`, and `RouterAdapter` interfaces in `packages/shared`.

## Quickstart (self-host)

**Requirements:** Docker, Node 22+, npm.

### 1. Clone (with submodules)

The Claude Code plugin containing skills (`packages/plugin`) is a git submodule ([butterbase-skills](https://github.com/butterbase-ai/butterbase-skills)). A plain clone leaves `packages/plugin/` empty and `npm install` silently skips that workspace.

```bash
git clone --recurse-submodules https://github.com/butterbase-ai/butterbase.git
cd butterbase
```

If you already cloned without submodules:

```bash
git submodule update --init --recursive
```

Optional — keep submodules updated on every pull:

```bash
git config --global submodule.recurse true
```

### 2. Install dependencies and configure env

```bash
npm ci
cp .env.example .env
```

`docker-compose.local.yml` sets `KV_REDIS_URL_US_EAST_1` for you. Edit `.env` only if you override defaults (e.g. run control-api on the host — use `redis://localhost:6379`).

### 3. Start the stack

First run builds images and can take several minutes.

```bash
docker compose -f docker-compose.local.yml up -d
```

Wait until control-api is healthy:

```bash
curl -sf http://localhost:4000/health/ready
```

### 4. Run database migrations

Schema is **not** applied automatically on container start. From the repo root (with the stack running):

```bash
export NEON_PLATFORM_PRIMARY_URL=postgresql://butterbase:butterbase_dev@localhost:5433/butterbase_control
export NEON_RUNTIME_PROJECT_ID_US_EAST_1=postgresql://butterbase:butterbase_dev@localhost:5437/butterbase_runtime_us
export BUTTERBASE_REGIONS=us-east-1

npm run migrate:all
```

### 5. Seed the local dev user

With `AUTH_ENABLED=false`, the API uses `DEV_OWNER_ID` from compose. That user must exist in `platform_users` (fresh volumes start empty):

```bash
export NEON_PLATFORM_PRIMARY_URL=postgresql://butterbase:butterbase_dev@localhost:5433/butterbase_control
npm run seed:dev
```

### 6. Smoke test

Auth is disabled in the local compose profile (`AUTH_ENABLED=false`):

```bash
curl -X POST http://localhost:4000/init \
  -H "Content-Type: application/json" \
  -d '{"name": "my-app"}'

curl http://localhost:4000/apps
```

### Local endpoints

| Service | URL / port |
|---------|------------|
| Control API | http://localhost:4000 |
| MCP (HTTP, via control-api) | http://localhost:4000/mcp |
| Deno runtime | http://localhost:7133 |
| Docs site | http://localhost:4321 |
| Control plane Postgres | `localhost:5433` |
| Data plane Postgres | `localhost:5435` |
| Runtime plane Postgres | `localhost:5437` |
| LocalStack (S3) | http://localhost:4566 |

Full setup (auth, MCP clients, troubleshooting, production notes): **[`SETUP.md`](./SETUP.md)**.

## Architecture

```
              ┌──────────────────────────────────────────┐
              │    Your app · agent · MCP client · CLI   │
              └──────────────────────┬───────────────────┘
                                     │  REST · WebSocket · MCP
              ┌──────────────────────▼───────────────────┐
              │            control-api (Fastify)         │
              │   apps · auth · schema · auto-api · RLS  │
              │   storage · functions · KV · realtime    │
              │   AI gateway · RAG · DOs · MCP at /mcp   │
              └──┬──────┬───────┬───────┬────────┬───────┘
                 │      │       │       │        │
        ┌────────▼─┐ ┌──▼───┐ ┌─▼──┐ ┌──▼─────┐ ┌▼─────────────┐
        │ Postgres │ │ S3 / │ │Redis│ │ Deno   │ │ Python agent │
        │ 3 planes │ │ R2   │ │ KV  │ │runtime │ │   runtime    │
        └──────────┘ └──────┘ └────┘ └────────┘ └──────────────┘
                                              ┌──────────────────┐
                                              │ Cloudflare:      │
                                              │ build-runner ·   │
                                              │ dispatch-worker  │
                                              └──────────────────┘
```

**Three Postgres planes:**
- **control-plane** (`db/control-plane/`) — platform metadata: users, apps, billing, audit.
- **runtime-plane** (`db/runtime-plane/`) — hot-path runtime tables (KV expose rules, realtime channels, sessions).
- **data-plane** (`db/data-plane/`) — per-app user data; each app gets isolated schemas with RLS.

## Repo layout

**Services** (`services/`)

| Service | Language | What it does |
|---|---|---|
| `control-api` | Node.js / Fastify | Main entry point. All public APIs, embeds MCP at `/mcp`. |
| `mcp-server` | Node.js | MCP tool implementations (built into control-api; also ships as `butterbase-mcp` stdio binary). |
| `deno-runtime` | Deno | Executes user serverless functions in isolates. |
| `agent-runtime` | Python (uv) | Long-running agent executor for `manage_ai` / agent tasks. |
| `build-runner` | Cloudflare Worker | Builds frontends and edge-SSR bundles from source. |
| `storage-indexer` | Node.js | Async indexer for uploaded objects. |
| `docs` | Astro | Public documentation site (also served locally at `:4321`). |

**Packages** (`packages/`)

| Package | Description |
|---|---|
| `@butterbase/sdk` | Universal TypeScript SDK (browser + server). |
| `@butterbase/cli` | `butterbase` CLI for scaffolding and backend management. |
| `@butterbase/plugin` | Claude Code plugin — 30+ guided skills for AI-driven app building. Git submodule of [butterbase-skills](https://github.com/butterbase-ai/butterbase-skills). |
| `@butterbase/shared` | Shared types, constants, and pluggable interfaces (`BillingProvider`, `QuotaEnforcer`, `RouterAdapter`). |

**Other top-level pieces**
- `dispatch-worker/` — Cloudflare Worker that routes per-app subdomain traffic.
- `bb-placeholder/` — placeholder origin for unprovisioned subdomains.
- `infra/` — `pgbouncer` and `traefik` configs for self-host.
- `db/` — SQL migrations for the three Postgres planes.
- `Examples/` — `todo-2026-04-02`, `grocery-list-2026-04-03`.

## What's *not* in this repo

The OSS / managed boundary is intentional. The following are private to the managed offering:

- Multi-region orchestration and the cross-region scheduler.
- Billing logic, lease-based quota math, and Stripe wire-up beyond the no-op provider.
- Upstream AI router adapters (OpenAI / Anthropic / Bedrock provider integrations beyond the gateway interface).
- Customer / admin dashboards, hackathon-host dashboards, and ops tooling.

If you need these for self-host, implement against the interfaces in `packages/shared` — see [`CONTRIBUTING.md`](./CONTRIBUTING.md) for the scope rules.

## Documentation

- [`SETUP.md`](./SETUP.md) — self-host and local development guide
- [`CHANGELOG.md`](./CHANGELOG.md) — release notes (latest: **v0.2.0**, 2026-05-25 — KV store)
- [`ROADMAP.md`](./ROADMAP.md) — what's next
- [`CONTRIBUTING.md`](./CONTRIBUTING.md) — contributor workflow and OSS scope
- [`SUBDOMAIN_IMPLEMENTATION.md`](./SUBDOMAIN_IMPLEMENTATION.md) — tenant subdomain routing
- [`docs/runbooks/local-e2e.md`](./docs/runbooks/local-e2e.md) — multi-region E2E stack
- [`docs/runbooks`](./docs/runbooks) — operational runbooks
- [`Examples/`](./Examples) — example apps (todo, grocery list)
- Docs site (local): `http://localhost:4321` after `docker compose up`

## Project status

Latest release: **v0.2.0** (2026-05-25) — adds the KV store across SDK / REST / CLI / MCP. The data plane is production-tested by the managed offering; the OSS distribution is young — please file self-host issues and we'll tighten docs and defaults from feedback. See [`CHANGELOG.md`](./CHANGELOG.md) for the full history.

## Community & support

- **[Discord](https://discord.gg/RHxRUJXuu2)** — chat with the team and other builders
- **[LinkedIn](https://www.linkedin.com/company/butterbase/?trk=public_profile_following-company_profile-result-card_result-card_title)** — follow us for product updates and announcements
- **[GitHub Issues](https://github.com/butterbase-ai/butterbase/issues)** — bug reports, feature requests
- **Email** — [yuki@butterbase.ai](mailto:yuki@butterbase.ai) for direct contact

## Contributing

See [`CONTRIBUTING.md`](./CONTRIBUTING.md). The boundary between OSS and the managed offering is intentional — please read the scope section before opening a PR that touches billing, quota math, or upstream router adapters.

## Security

See [`SECURITY.md`](./SECURITY.md). Report vulnerabilities to `security@butterbase.ai`.

## License

[Apache-2.0](./LICENSE). Copyright 2026 NetGPT Inc.

## Contributors

  

## Star history

## Source & license

This open-source MCP server is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [butterbase-ai](https://github.com/butterbase-ai)
- **Source:** [butterbase-ai/butterbase](https://github.com/butterbase-ai/butterbase)
- **License:** Apache-2.0

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** yes
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** yes
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/mcp-butterbase-ai-butterbase
- Seller: https://agentstack.voostack.com/s/butterbase-ai
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
