Baasix MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| BAASIX_URL | Yes | Baasix server URL | http://localhost:8056 |
| BAASIX_EMAIL | No | Email for auto-authentication | |
| BAASIX_PASSWORD | No | Password for auto-authentication | |
| BAASIX_AUTH_TOKEN | No | Pre-obtained JWT token |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| baasix_list_schemasA | Get all available collections/schemas in Baasix with optional search and pagination |
| baasix_get_schemaB | Get detailed schema information for a specific collection |
| baasix_create_schemaA | Create a new collection schema in Baasix. FIELD TYPES:
DEFAULT VALUE TYPES:
VALIDATION RULES:
SCHEMA OPTIONS:
EXAMPLE: { "name": "Product", "timestamps": true, "fields": { "id": {"type": "UUID", "primaryKey": true, "defaultValue": {"type": "UUIDV4"}}, "sku": {"type": "SUID", "unique": true, "defaultValue": {"type": "SUID"}}, "name": {"type": "String", "allowNull": false, "values": {"length": 255}, "validate": {"notEmpty": true}}, "price": {"type": "Decimal", "values": {"precision": 10, "scale": 2}, "validate": {"min": 0}}, "email": {"type": "String", "validate": {"isEmail": true}}, "quantity": {"type": "Integer", "defaultValue": 0, "validate": {"isInt": true, "min": 0}} } } |
| baasix_update_schemaC | Update an existing collection schema |
| baasix_delete_schemaB | Delete a collection schema |
| baasix_add_indexB | Add an index to a collection schema |
| baasix_remove_indexB | Remove an index from a collection schema |
| baasix_create_relationshipA | Create a relationship between collections. RELATIONSHIP TYPES:
AUTO-INDEXING: All foreign key columns are automatically indexed for better query performance:
JUNCTION TABLES (M2M/M2A):
EXAMPLE M2O: { "name": "category", // Creates category_Id field + index "type": "M2O", "target": "categories", "alias": "products", // Reverse relation name "onDelete": "CASCADE" // CASCADE, RESTRICT, SET NULL } EXAMPLE M2M: { "name": "tags", "type": "M2M", "target": "tags", "alias": "products" } EXAMPLE M2M with custom junction table: { "name": "tags", "type": "M2M", "target": "tags", "alias": "products", "through": "product_tag_mapping" // Custom junction table name } |
| baasix_update_relationshipD | Update an existing relationship |
| baasix_delete_relationshipC | Delete a relationship |
| baasix_export_schemasA | Export all schemas as JSON |
| baasix_import_schemasC | Import schemas from JSON data |
| baasix_list_itemsA | Query items from a collection with powerful filtering, sorting, pagination, relations, and aggregation. FILTER OPERATORS (50+):
DYNAMIC VARIABLES:
FILTER EXAMPLES:
|
| baasix_get_itemA | Get a specific item by ID from a collection, optionally including related data |
| baasix_create_itemC | Create a new item in a collection |
| baasix_update_itemC | Update an existing item in a collection |
| baasix_delete_itemC | Delete an item from a collection |
| baasix_list_filesC | List files with metadata and optional filtering |
| baasix_get_file_infoB | Get detailed information about a specific file |
| baasix_delete_fileB | Delete a file |
| baasix_auth_statusA | Check the current authentication status and token validity |
| baasix_refresh_authA | Force refresh the authentication token (only works for email/password auth) |
| baasix_generate_reportC | Generate reports with grouping and aggregation for a collection |
| baasix_collection_statsC | Get collection statistics and analytics |
| baasix_list_notificationsA | List notifications for the authenticated user |
| baasix_send_notificationC | Send a notification to specified users |
| baasix_mark_notification_seenC | Mark a notification as seen |
| baasix_get_settingsC | Get application settings |
| baasix_update_settingsC | Update application settings |
| baasix_list_templatesA | List all email templates with optional filtering |
| baasix_get_templateA | Get a specific email template by ID |
| baasix_update_templateA | Update an email template's subject, description, or body content. TEMPLATE TYPES:
AVAILABLE VARIABLES:
|
| baasix_list_rolesA | List all available roles |
| baasix_list_permissionsC | List all permissions with optional filtering |
| baasix_get_permissionB | Get a specific permission by ID |
| baasix_get_permissionsA | Get permissions for a specific role |
| baasix_create_permissionA | Create a new permission for role-based access control. ACTIONS: create, read, update, delete FIELDS:
CONDITIONS (Row-level security):
RELCONDITIONS (Filter related data):
EXAMPLE: { "role_Id": "uuid", "collection": "products", "action": "read", "fields": ["*"], "conditions": {"published": {"eq": true}} } |
| baasix_update_permissionC | Update an existing permission |
| baasix_delete_permissionC | Delete a permission |
| baasix_reload_permissionsB | Reload the permission cache |
| baasix_update_permissionsC | Update permissions for a role |
| baasix_realtime_statusA | Get the status of the realtime service including WAL configuration. Returns information about:
|
| baasix_realtime_configA | Check PostgreSQL replication configuration for WAL-based realtime. Returns:
|
| baasix_realtime_collectionsA | Get list of collections with realtime enabled and their action configurations |
| baasix_realtime_enableB | Enable realtime for a collection. Changes will be broadcast via WebSocket when data is modified. The realtime config is stored in the schema definition and can include specific actions to broadcast. |
| baasix_realtime_disableB | Disable realtime for a collection |
| baasix_server_infoA | Get Baasix server information and health status |
| baasix_sort_itemsA | Sort items within a collection (move item before/after another) |
| baasix_register_userC | Register a new user |
| baasix_loginB | Login user with email and password |
| baasix_send_inviteC | Send an invitation to a user |
| baasix_verify_inviteC | Verify an invitation token |
| baasix_send_magic_linkC | Send magic link or code for authentication |
| baasix_get_user_tenantsA | Get available tenants for the current user |
| baasix_switch_tenantC | Switch to a different tenant context |
| baasix_logoutA | Logout the current user |
| baasix_get_current_userB | Get current user information with role and permissions |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 57 tools
Most tools target distinct resources and actions, but several clusters are easy to confuse: list_permissions/get_permission/get_permissions, update_permission/update_permissions, and realtime_status/realtime_config/realtime_collections overlap in name and output. Detailed descriptions reduce but do not eliminate the risk of misselection.
Tool names consistently follow a baasix_ verb_noun pattern, such as create_schema, update_item, and delete_relationship. A few exceptions like login/logout, auth_status, and realtime_enable deviate slightly, but the overall convention is predictable.
With 57 tools, this is a very large MCP surface that will overwhelm context windows and make tool selection costly. Even for a broad BaaS domain, this count exceeds a manageable tool set.
The set covers CRUD well for schemas, items, relationships, permissions, notifications, settings, and templates. However, notable lifecycle gaps exist: no password reset or email verification trigger despite template support, no file upload/create, and no user list/update/delete. These create dead ends for common backend workflows.