bkend.ai Database Guide
Column Types (7)
| Type |
Description |
Example |
| String |
Text |
name, email |
| Number |
Numeric |
age, price |
| Boolean |
True/false |
isActive |
| Date |
Date/time |
birthDate |
| Array |
Array |
tags: ["a","b"] |
| Object |
Nested object |
address: {city, zip} |
| Mixed |
Any type |
metadata |
Constraints
required: Field must have a value
unique: No duplicate values allowed
default: Default value when not provided
Auto System Fields
| Field |
Type |
Description |
| id |
String |
Auto-generated unique ID |
| createdBy |
String |
Creator user ID |
| createdAt |
Date |
Creation timestamp |
| updatedAt |
Date |
Last update timestamp |
Important: bkend uses id (NOT _id) in all API responses.
MCP Table Management Tools
| Tool |
Purpose |
Scope |
backend_table_create |
Create table |
table:create |
backend_table_list |
List tables |
table:read |
backend_table_get |
Get table detail + schema |
table:read |
backend_table_delete |
Delete table |
table:delete |
backend_field_manage |
Add/modify/delete fields |
table:update |
backend_index_manage |
Manage indexes |
table:update |
backend_schema_version_list |
Schema version history |
table:read |
backend_schema_version_get |
Schema version detail |
table:read |
backend_schema_version_apply |
Apply schema version (rollback) |
table:update |
backend_index_version_list |
Index version history |
table:read |
backend_index_version_get |
Index version detail |
table:read |
MCP Data CRUD Tools
| Tool |
Purpose |
Key Parameters |
backend_data_list |
List records (filter, sort, paginate) |
tableId, page?, limit?, sortBy?, sortDirection?, andFilters?, orFilters? |
backend_data_get |
Get single record |
tableId, recordId |
backend_data_create |
Create record |
tableId, data: { field: value } |
backend_data_update |
Partial update record |
tableId, recordId, data: { field: value } |
backend_data_delete |
Delete record |
tableId, recordId |
All Data CRUD tools require: organizationId, projectId, environmentId (from get_context).
Filter Operators
| Operator |
Meaning |
Example |
$eq |
Equal |
{ "status": { "$eq": "active" } } |
$ne |
Not equal |
{ "role": { "$ne": "admin" } } |
$gt / $gte |
Greater than / >= |
{ "age": { "$gt": 18 } } |
$lt / $lte |
Less than / <= |
{ "price": { "$lt": 100 } } |
$in / $nin |
In / Not in array |
{ "tag": { "$in": ["a","b"] } } |
MCP Guide Docs (via search_docs)
Use search_docs tool to access these guides:
| Doc ID |
Content |
4_howto_implement_data_crud |
CRUD implementation patterns |
7_code_examples_data |
CRUD + file upload code examples |
Use get_operation_schema to get any tool's input/output schema.
REST Data API
| Method |
Endpoint |
Description |
| GET |
/v1/data/{table} |
List (filter, sort, page, limit) |
| POST |
/v1/data/{table} |
Create |
| GET |
/v1/data/{table}/{id} |
Get single |
| PATCH |
/v1/data/{table}/{id} |
Partial update |
| DELETE |
/v1/data/{table}/{id} |
Delete |
Filtering
- Text search:
?search=keyword
- AND filter:
?filter[field1]=value1&filter[field2]=value2
- Comparison operators:
$eq, $ne, $gt, $gte, $lt, $lte, $in, $nin
- Sort:
?sort=field:asc (or desc)
- Pagination:
?page=1&limit=20 (default 20, max 100)
Relations & Joins
- Configure table relationships
- Join queries for related data retrieval
Index Management
- Single/compound index creation
- Manage via MCP
backend_index_manage
- Essential for query performance optimization
Official Documentation (Live Reference)
For the latest database documentation, use WebFetch:
1---2name: bkend-data3description: bkend.ai database — CRUD, column types, filtering, sorting, relations, indexing. Triggers: bkend table, bkend CRUD, bkend column, bkend relation, bkend data4---56# bkend.ai Database Guide78## Column Types (7)910| Type | Description | Example |11|------|-------------|---------|12| String | Text | name, email |13| Number | Numeric | age, price |14| Boolean | True/false | isActive |15| Date | Date/time | birthDate |16| Array | Array | tags: ["a","b"] |17| Object | Nested object | address: {city, zip} |18| Mixed | Any type | metadata |1920## Constraints2122- `required`: Field must have a value23- `unique`: No duplicate values allowed24- `default`: Default value when not provided2526## Auto System Fields2728| Field | Type | Description |29|-------|------|-------------|30| id | String | Auto-generated unique ID |31| createdBy | String | Creator user ID |32| createdAt | Date | Creation timestamp |33| updatedAt | Date | Last update timestamp |3435**Important**: bkend uses `id` (NOT `_id`) in all API responses.3637## MCP Table Management Tools3839| Tool | Purpose | Scope |40|------|---------|-------|41| `backend_table_create` | Create table | table:create |42| `backend_table_list` | List tables | table:read |43| `backend_table_get` | Get table detail + schema | table:read |44| `backend_table_delete` | Delete table | table:delete |45| `backend_field_manage` | Add/modify/delete fields | table:update |46| `backend_index_manage` | Manage indexes | table:update |47| `backend_schema_version_list` | Schema version history | table:read |48| `backend_schema_version_get` | Schema version detail | table:read |49| `backend_schema_version_apply` | Apply schema version (rollback) | table:update |50| `backend_index_version_list` | Index version history | table:read |51| `backend_index_version_get` | Index version detail | table:read |5253## MCP Data CRUD Tools5455| Tool | Purpose | Key Parameters |56|------|---------|----------------|57| `backend_data_list` | List records (filter, sort, paginate) | tableId, page?, limit?, sortBy?, sortDirection?, andFilters?, orFilters? |58| `backend_data_get` | Get single record | tableId, recordId |59| `backend_data_create` | Create record | tableId, data: { field: value } |60| `backend_data_update` | Partial update record | tableId, recordId, data: { field: value } |61| `backend_data_delete` | Delete record | tableId, recordId |6263All Data CRUD tools require: organizationId, projectId, environmentId (from `get_context`).6465### Filter Operators6667| Operator | Meaning | Example |68|----------|---------|---------|69| `$eq` | Equal | `{ "status": { "$eq": "active" } }` |70| `$ne` | Not equal | `{ "role": { "$ne": "admin" } }` |71| `$gt` / `$gte` | Greater than / >= | `{ "age": { "$gt": 18 } }` |72| `$lt` / `$lte` | Less than / <= | `{ "price": { "$lt": 100 } }` |73| `$in` / `$nin` | In / Not in array | `{ "tag": { "$in": ["a","b"] } }` |7475## MCP Guide Docs (via search_docs)7677Use `search_docs` tool to access these guides:7879| Doc ID | Content |80|--------|---------|81| `4_howto_implement_data_crud` | CRUD implementation patterns |82| `7_code_examples_data` | CRUD + file upload code examples |8384Use `get_operation_schema` to get any tool's input/output schema.8586## REST Data API8788| Method | Endpoint | Description |89|--------|----------|-------------|90| GET | /v1/data/{table} | List (filter, sort, page, limit) |91| POST | /v1/data/{table} | Create |92| GET | /v1/data/{table}/{id} | Get single |93| PATCH | /v1/data/{table}/{id} | Partial update |94| DELETE | /v1/data/{table}/{id} | Delete |9596## Filtering9798- Text search: `?search=keyword`99- AND filter: `?filter[field1]=value1&filter[field2]=value2`100- Comparison operators: `$eq`, `$ne`, `$gt`, `$gte`, `$lt`, `$lte`, `$in`, `$nin`101- Sort: `?sort=field:asc` (or desc)102- Pagination: `?page=1&limit=20` (default 20, max 100)103104## Relations & Joins105106- Configure table relationships107- Join queries for related data retrieval108109## Index Management110111- Single/compound index creation112- Manage via MCP `backend_index_manage`113- Essential for query performance optimization114115## Official Documentation (Live Reference)116117For the latest database documentation, use WebFetch:118- MCP Data Tools: https://raw.githubusercontent.com/popup-studio-ai/bkend-docs/main/en/mcp/05-data-tools.md119- MCP Table Tools: https://raw.githubusercontent.com/popup-studio-ai/bkend-docs/main/en/mcp/04-table-tools.md120- Database Guide: https://raw.githubusercontent.com/popup-studio-ai/bkend-docs/main/en/database/01-overview.md121- Full TOC: https://raw.githubusercontent.com/popup-studio-ai/bkend-docs/main/SUMMARY.md