# Bubble.io MCP

> Bubble.io (No-code Application Platform API) lets your AI agent read, write, and modify data in your entire Bubble application. You can perform deep database operations—like creating thousands of records or running complex backend workflows—all using natural language commands.

## Overview
- **Category:** developer-tools
- **Price:** Free
- **Tags:** no-code, bubble-io, api-integration, database-crud, workflow-automation

## Description

You can treat your no-code app's database like a terminal window. This MCP lets your AI agent interact with the core logic and data behind your Bubble application, going way beyond simple chat inputs. Need to update 100 user records? Done. Triggering a complex payment workflow for a new customer is routine. The system handles full CRUD operations on every exposed data type, letting you search using advanced constraints or run massive bulk updates in one go. When your agent completes these actions, it's routed through the Vinkius catalog, making sure your entire team—from developers debugging code to ops staff running maintenance routines—gets a single point of access for everything the app does.

## Tools

### bulk_create_things
Creates multiple data records in your Bubble database from a single request.

### create_thing
Adds one new data record into the Bubble database using specific fields.

### delete_thing
Permanently removes an existing data record from the Bubble database.

### get_thing
Retrieves all detailed information for a specific data record using its unique ID.

### replace_thing
Overwrites an existing data record completely, resetting any fields that aren't provided.

### search_things
Searches your database by applying filters, sorting rules, and handling large result sets.

### trigger_workflow
Manually starts a specific backend business process defined within Bubble.

### update_thing
Saves changes to an existing data record without overwriting all its original fields.

## Prompt Examples

**Prompt:** 
```
Search for all 'rentalunit' records where the price is less than 500.
```

**Response:** 
```
I've searched the 'rentalunit' table. I found 3 matches: 'Cozy Studio' (UID: 123), 'Urban Loft' (UID: 456), and 'Garden Room' (UID: 789). Would you like the full details for any of these?
```

**Prompt:** 
```
Create a new 'customer' record with the name 'John Doe' and email 'john@example.com'.
```

**Response:** 
```
Successfully created a new 'customer' record. The Unique ID (UID) for John Doe is 1715829304123x456. Is there anything else you'd like to add to this profile?
```

**Prompt:** 
```
Trigger the 'process_refund' workflow for transaction UID 987654321.
```

**Response:** 
```
The 'process_refund' backend workflow has been triggered for UID 987654321. The Bubble server has acknowledged the request and is processing the logic now.
```

## Capabilities

### Manage all application data records
Create, read, update, or delete individual data entries (Things) within your Bubble database.

### Query specific record details
Fetch the full metadata for any single item by its unique ID.

### Perform high-volume data creation
Build hundreds of records simultaneously using a bulk operation endpoint.

### Search and filter complex datasets
Find exactly what you need by applying filters, sorting rules, or pagination to large tables.

### Execute business logic workflows
Trigger specific backend processes, like sending emails or processing payments, without needing manual clicks in the Bubble editor.

## Use Cases

### Auditing a user account
A PM wants to see every record associated with 'Widget X' that was modified last week. They ask their agent to run a query, and the agent uses `search_things` to find all matching records, returning only those within the specified date range.

### Processing large data imports
An ops team receives 800 new product listings that need to be entered into Bubble. Instead of running 800 separate calls, they use `bulk_create_things` to ingest the entire dataset in one transaction.

### Automating payment failure handling
A system detects a failed payment. The agent is instructed to find the related transaction using its UID (`get_thing`), and then immediately uses `trigger_workflow` to initiate a manual investigation process for human review.

## Benefits

- Stop clicking through multiple dashboards to get a report. Use `search_things` to query complex constraints, letting your agent find data across massive datasets in one chat command.
- Need to onboard 50 new users? Instead of running fifty individual API calls, use `bulk_create_things` to inject hundreds of records into the database instantly.
- When a customer needs special handling, don't manually trigger processes. Use `trigger_workflow` to execute complex business logic, like processing refunds or sending alerts, on demand.
- Updating data shouldn't mean deleting and recreating it. With `update_thing`, you only send the fields that changed, preserving data integrity while making modifications.
- The ability to use `get_thing` means your agent always knows exactly which unique ID (UID) it's talking about, preventing ambiguous or incorrect operations.

## How It Works

The bottom line is you talk to your app like it's a command-line tool, and the MCP handles the rest of the plumbing.

1. Subscribe to this MCP and provide your Bubble App URL along with an API Token.
2. Your AI client uses that token to authenticate against your app's backend services.
3. The agent then executes natural language requests, which translate into specific database calls or workflow triggers.

## Frequently Asked Questions

**Can I search for records with specific filters?**
Yes! Use the `search_things` tool. You can provide a `constraints` JSON array to filter by fields (e.g., `equals`, `greater than`). You can also control the `limit` and `sort_field` to refine your results.

**How do I trigger a backend workflow?**
Simply use the `trigger_workflow` tool by providing the `workflow_name` (the URL-friendly name defined in your Bubble API settings). This allows your AI to execute complex logic defined in your Bubble backend.

**Is it possible to create many records at once?**
Yes, the `bulk_create_things` tool allows you to create up to 1,000 records in a single call. You should provide the data in NDJSON format (one JSON object per line) for high-performance data ingestion.

**How do I use the `get_thing` tool to retrieve detailed metadata for a specific Bubble item?**
You provide the Unique ID (UID) of the record you need. The MCP returns all associated fields and their current values, allowing your agent to inspect every detail about that 'Thing' without needing to run a full search.

**What is the difference between using `update_thing` versus `replace_thing` when I modify existing data?**
Use `update_thing` (Patch) when you only want to change specific fields, leaving all other data intact. If you use `replace_thing` (Put), be careful because any field you omit will reset to its default value or get cleared.

**If my `create_thing` call fails, what kind of error message should I expect from the MCP?**
The response payload includes specific error codes and a clear message detailing why the operation failed. This helps you instantly figure out if it was due to invalid data types or missing required fields.

**When calling `create_thing`, how can I ensure that all required fields for a Bubble database type are included?**
You must include every field marked as mandatory in the JSON object you send. The MCP enforces schema validation, so if any required data is missing, the operation will fail before writing anything to the database.

**If I run a massive search using `search_things`, what should I do if I hit rate limits?**
The MCP response will signal a rate limit error. You need to implement exponential backoff in your agent logic, pausing and retrying the request after an increasing delay until the operation succeeds.