A Model Context Protocol (MCP) server that enables AI assistants to interact with Bubble.io applications through the Data API.
Forked from dorianglz/bubble_mcp (originally nocoderoi/bubble_mcp).
The upstream repo has a URL path construction bug (nocoderoi/bubble_mcp#5) that causes MCP startup failures:
getSchema()andlist()prepended/api/1.1/to paths, but the base URL could also include/api/1.1— resulting in double-path requests (/api/1.1/api/1.1/meta) that return 404.get(),create(),update(),delete(),workflow()used relative paths like/obj/...without/api/1.1/— so they only worked when the base URL already included it.apiClient.tsonly acceptedBUBBLE_API_URL, notBUBBLE_BASE_URL(contradicting the README).
apiClient.ts— Accepts bothBUBBLE_API_URLandBUBBLE_BASE_URL. Normalizes any input to always end with/api/1.1, regardless of whether the user includes it or not.bubbleService.ts— All paths are now relative (/meta,/obj/...,/wf/...). No method prepends/api/1.1/since the base URL already includes it.package.json— Addedpreparescript for auto-build onnpxinstall. Committeddist/for zero-build usage.
- Universal Bubble Support: Works with any Bubble.io application
- Auto-discovery: Automatically discovers your app's data types and structure
- CRUD Operations: Create, Read, Update, and Delete operations for all data types
- Workflow Execution: Execute API workflows defined in your Bubble app
- Privacy Settings Aware: Respects Bubble's privacy rules and constraints
- Read-only/Read-write Modes: Configurable access levels for safety
{
"mcpServers": {
"bubble": {
"command": "npx",
"args": ["-y", "github:D1DX/bubble-mcp"],
"env": {
"BUBBLE_API_URL": "https://your-app.bubbleapps.io",
"BUBBLE_API_TOKEN": "your-token",
"MCP_MODE": "read-write"
}
}
}
}BUBBLE_API_URL can be either https://your-app.bubbleapps.io or https://your-app.bubbleapps.io/api/1.1 — both work.
git clone https://github.com/D1DX/bubble-mcp.git
cd bubble-mcp
npm install
npm run build{
"mcpServers": {
"bubble": {
"command": "node",
"args": ["/path/to/bubble-mcp/dist/mcp-server.js"],
"env": {
"BUBBLE_API_URL": "https://your-app.bubbleapps.io",
"BUBBLE_API_TOKEN": "your-token",
"MCP_MODE": "read-write"
}
}
}
}| Variable | Required | Description |
|---|---|---|
BUBBLE_API_URL |
Yes (or BUBBLE_BASE_URL) |
Your Bubble app URL (with or without /api/1.1) |
BUBBLE_API_TOKEN |
Yes | API token from Bubble Settings > API |
MCP_MODE |
No | read-only (default) or read-write |
| Tool | Description | Mode |
|---|---|---|
bubble_get_schema |
Discover app data types and structure | read-only |
bubble_list |
List records of a data type (with pagination) | read-only |
bubble_get |
Get a specific record by ID | read-only |
bubble_create |
Create a new record | read-write |
bubble_update |
Update an existing record | read-write |
bubble_delete |
Delete a record | read-write |
bubble_workflow |
Execute an API workflow | read-write |
- Go to your Bubble app editor
- Navigate to Settings > API
- Enable "This app exposes a Data API"
- Generate an API token
MIT License — Copyright (c) 2026 Daniel Rudaev @ D1DX
Original project by nocoderoi and dorianglz. Fork maintained by D1DX.