Skip to main content
Glama
tspvivek
by tspvivek

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
BAASIX_URLYesBaasix server URLhttp://localhost:8056
BAASIX_EMAILNoEmail for auto-authentication
BAASIX_PASSWORDNoPassword for auto-authentication
BAASIX_AUTH_TOKENNoPre-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

CapabilityDetails
tools
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
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:

  • String: VARCHAR with values.length (e.g., 255)

  • Text: Unlimited text

  • Integer, BigInt: Whole numbers

  • Decimal: values.precision & values.scale

  • Float, Real, Double: Floating point

  • Boolean: true/false

  • Date, DateTime, Time: Date/time

  • UUID: With defaultValue.type: "UUIDV4"

  • SUID: Short unique ID with defaultValue.type: "SUID"

  • JSONB: JSON with indexing

  • Array: values.type specifies element type

  • Geometry, Geography: PostGIS spatial

  • Enum: values.values array

DEFAULT VALUE TYPES:

  • { type: "UUIDV4" } - Random UUID v4

  • { type: "SUID" } - Short unique ID

  • { type: "NOW" } - Current timestamp

  • { type: "AUTOINCREMENT" } - Auto-incrementing integer

  • { type: "SQL", value: "..." } - Custom SQL expression

  • Static values: "active", false, 0, etc.

VALIDATION RULES:

  • min: number - Minimum value (numeric fields)

  • max: number - Maximum value (numeric fields)

  • isInt: true - Must be integer

  • notEmpty: true - String cannot be empty

  • isEmail: true - Valid email format

  • isUrl: true - Valid URL format

  • len: [min, max] - String length range

  • is/matches: "regex" - Pattern matching

SCHEMA OPTIONS:

  • timestamps: true adds createdAt/updatedAt

  • paranoid: true enables soft deletes (deletedAt)

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:

  • M2O (Many-to-One): Creates foreign key with auto-index. products.category → categories

  • O2M (One-to-Many): Virtual reverse of M2O. categories.products → products

  • O2O (One-to-One): Creates foreign key with auto-index. user.profile → profiles

  • M2M (Many-to-Many): Creates junction table with auto-indexed FKs. products ↔ tags

  • M2A (Many-to-Any): Polymorphic junction table. comments → posts OR products

AUTO-INDEXING: All foreign key columns are automatically indexed for better query performance:

  • M2O/O2O: Index on the FK column (e.g., category_Id)

  • M2M/M2A: Indexes on both FK columns in junction tables

JUNCTION TABLES (M2M/M2A):

  • Auto-generated name: {source}{target}{name}_junction

  • Custom name: Use "through" property (max 63 chars for PostgreSQL)

  • Junction tables are marked with isJunction: true in schema

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+):

  • Comparison: eq, neq, gt, gte, lt, lte

  • String: contains, icontains, startswith, endswith, like, ilike, regex

  • Null: isNull (true/false), empty (true/false)

  • List: in, nin, between, nbetween

  • Array: arraycontains, arraycontainsany, arraylength, arrayempty

  • JSONB: jsoncontains, jsonhaskey, jsonhasanykeys, jsonhasallkeys, jsonpath

  • Geospatial: dwithin, intersects, contains, within, overlaps

  • Logical: AND, OR, NOT

DYNAMIC VARIABLES:

  • $CURRENT_USER: Current user's ID

  • $NOW: Current timestamp

  • $NOW-DAYS_7: 7 days ago

  • $NOW+MONTHS_1: 1 month from now

FILTER EXAMPLES:

  • {"status": {"eq": "active"}}

  • {"AND": [{"price": {"gte": 10}}, {"price": {"lte": 100}}]}

  • {"tags": {"arraycontains": ["featured"]}}

  • {"author_Id": {"eq": "$CURRENT_USER"}}

  • {"category.name": {"eq": "Electronics"}} (relation filter)

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:

  • magic_link: Magic link authentication emails

  • invite: User invitation emails

  • password_reset: Password reset emails

  • welcome: Welcome emails

  • verification: Email verification emails

AVAILABLE VARIABLES:

  • User: {{user.firstName}}, {{user.lastName}}, {{user.fullName}}, {{user.email}}

  • Tenant: {{tenant.name}}, {{tenant.logo}}, {{tenant.website}}

  • Auth: {{magicLink}}, {{magicCode}}, {{resetPasswordLink}}, {{inviteLink}}

  • DateTime: {{currentDate}}, {{currentTime}}, {{currentYear}}

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:

  • ["*"] for all fields

  • ["name", "price"] for specific fields

CONDITIONS (Row-level security):

  • Uses same filter operators as queries

  • {"published": {"eq": true}} - only published records

  • {"author_Id": {"eq": "$CURRENT_USER"}} - only own records

RELCONDITIONS (Filter related data):

  • {"reviews": {"approved": {"eq": true}}} - only approved reviews in response

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:

  • Whether realtime is initialized and consuming WAL

  • PostgreSQL replication configuration (wal_level, max_replication_slots)

  • Publication and replication slot status

  • Collections with realtime enabled

baasix_realtime_configA

Check PostgreSQL replication configuration for WAL-based realtime.

Returns:

  • walLevel: Should be 'logical' for realtime to work

  • maxReplicationSlots: Number of available replication slots

  • maxWalSenders: Number of WAL sender processes

  • replicationSlotExists: Whether the baasix slot exists

  • publicationExists: Whether the baasix publication exists

  • tablesInPublication: List of tables currently in the publication

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

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

C2.7/5.0

Scored across 57 tools

Disambiguation3/5

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.

Naming Consistency4/5

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.

Tool Count1/5

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.

Completeness3/5

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.

Maintenance

ActivityInactive
ResponsivenessNo issues