npm @butterbase/mcpstreamable-httpupdated 3mo ago
AI-native, open-source backend-as-a-service. Postgres Β· Auth Β· Storage Β· Functions Β· AI Gateway Β· MCP server
ΒΏQuΓ© puedes hacer con butterbase ai?
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) 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 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). A plain clone leaves packages/plugin/ empty and npm install silently skips that workspace.
git clone --recurse-submodules https://github.com/butterbase-ai/butterbase.git
cd butterbase
If you already cloned without submodules:
git submodule update --init --recursive
Optional β keep submodules updated on every pull:
git config --global submodule.recurse true
2. Install dependencies and configure env
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.
docker compose -f docker-compose.local.yml up -d
Wait until control-api is healthy:
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):
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):
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):
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.
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. |
@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/βpgbouncerandtraefikconfigs 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 for the scope rules.
Documentation
SETUP.mdβ self-host and local development guideCHANGELOG.mdβ release notes (latest: v0.2.0, 2026-05-25 β KV store)ROADMAP.mdβ what's nextCONTRIBUTING.mdβ contributor workflow and OSS scopeSUBDOMAIN_IMPLEMENTATION.mdβ tenant subdomain routingdocs/runbooks/local-e2e.mdβ multi-region E2E stackdocs/runbooksβ operational runbooksExamples/β example apps (todo, grocery list)- Docs site (local):
http://localhost:4321afterdocker 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 for the full history.
Community & support
- Discord β chat with the team and other builders
- LinkedIn β follow us for product updates and announcements
- GitHub Issues β bug reports, feature requests
- Email β yuki@butterbase.ai for direct contact
Contributing
See 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. Report vulnerabilities to security@butterbase.ai.
License
Apache-2.0. Copyright 2026 NetGPT Inc.
Contributors
Star history
InstalaciΓ³n
AΓ±ade butterbase ai a tu cliente. Elige el que uses.
{
"servers": {
"mcp": {
"type": "http",
"url": "https://api.butterbase.ai/mcp"
}
}
}Add to `.vscode/mcp.json` in your workspace.
claude mcp add mcp -- npx -y @butterbase/mcpcodex mcp add mcp -- npx -y @butterbase/mcpamp mcp add mcp -- npx -y @butterbase/mcp{
"mcpServers": {
"mcp": {
"command": "npx",
"args": [
"-y",
"@butterbase/mcp"
]
}
}
}Add to `claude_desktop_config.json`, then restart Claude Desktop.
{
"mcpServers": {
"mcp": {
"command": "npx",
"args": [
"-y",
"@butterbase/mcp"
]
}
}
}Add to `~/.cursor/mcp.json`, or `.cursor/mcp.json` for a single project.
{
"mcpServers": {
"mcp": {
"command": "npx",
"args": [
"-y",
"@butterbase/mcp"
]
}
}
}Add to `~/.codeium/windsurf/mcp_config.json`.
{
"mcpServers": {
"mcp": {
"command": "npx",
"args": [
"-y",
"@butterbase/mcp"
]
}
}
}Add to `cline_mcp_settings.json` via the MCP Servers panel.
{
"mcpServers": {
"mcp": {
"command": "npx",
"args": [
"-y",
"@butterbase/mcp"
]
}
}
}Add to `~/.gemini/settings.json`.
{
"mcpServers": {
"mcp": {
"type": "local",
"command": "npx",
"args": [
"-y",
"@butterbase/mcp"
],
"tools": [
"*"
]
}
}
}Add to `~/.copilot/mcp-config.json`, or run `/mcp add` inside the CLI.
{
"context_servers": {
"mcp": {
"command": {
"path": "npx",
"args": [
"-y",
"@butterbase/mcp"
]
}
}
}
}Add to your Zed `settings.json`.
npx -y @butterbase/mcpRun `goose configure`, choose **Add Extension β Command-line Extension**, and paste this command.
PuntuaciΓ³n
39 / 100
Incompleta
- DocumentaciΓ³n25/25
- Mantenimiento13/25
- Confianza6/20
- Capacidad0/15
- InstalaciΓ³n15/15
- Documents what it does and how to connect
- Has a resolvable package or endpoint
- Exposes at least one tool, prompt or resource
- README has substantive content
- Includes a code example
- Documents its configuration
- Mentions credentials or security posture
- Last commit 92 days ago
- Has a release history
- Repository is not archived
- No licence detected
- Namespace verified in the official MCP registry
- Claimed by its owner
- Published under an organisation
- 0 tool(s) documented
- Provides prompt templates
- Provides resources
- 18 documented install method(s)
- Published to a package registry
- Offers a hosted endpoint β no local install
Historial de versiones
| Versiones | Publicada |
|---|---|
| 1.0.0Γltima | 1 jun 2026 |