Skip to main content
Glama

Create Project

create_project

Create a new RationalBloks project (a PostgreSQL REST API) from a JSON schema, on one of your resource pools.

⚠️ CRITICAL RULES - READ BEFORE CREATING SCHEMA:

  1. FLAT FORMAT (REQUIRED): ✅ CORRECT: {"orders": {"total": {"type": "decimal", "precision": 10, "scale": 2}}} ❌ WRONG: {"orders": {"fields": {...}}} — never nest under 'fields'

  2. EVERY field has a "type": string (MUST have max_length), text, integer, decimal (precision, scale), boolean, uuid, date, datetime (NOT "timestamp"), json, and the PostgreSQL arrays uuid_array, integer_array, text_array, float_array (GIN-indexed: @> contains, <@ contained_by, && overlaps)

  3. AUTOMATIC FIELDS (DON'T define): id, created_at, updated_at, row_version

  4. USERS: NEVER create users/customers/employees tables with email or password. Link to the built-in app_users table: {"user_id": {"type": "uuid", "foreign_key": "app_users.id"}}. A table with such a field is owner-scoped: each user sees their own rows.

  5. FIELD OPTIONS: required, unique, default, enum, foreign_key ("table.id"), on_delete (cascade, set_null, restrict, no_action), nullable, index, description, write_only, computed. Advanced features (policy, computed columns, constraints, audit): get_schema_reference.

BACKEND ENGINE (backend_type): "python" (FastAPI, default) or "rust" (Axum: faster cold starts, lower memory).

WORKFLOW:

  1. get_template_schemas FIRST to see valid examples

  2. create_project with a cluster_id from list_clusters

  3. Poll get_job_status with the returned job_id (2-5 minutes)

  4. get_project_info gives the live URL While RationalBloks is being updated, the call is refused with 'RationalBloks is being updated': call it again in a few minutes.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameYesProject name
schemaYesJSON schema in FLAT format (table_name → field_name → properties). Every field MUST have a 'type' property. Use get_template_schemas to see valid examples.
cluster_idYesREQUIRED — BYOC resource pool ID (from list_clusters) to deploy this project onto your own cluster. Owned hosting is retired: a project we operate must run on your own infrastructure. Register a pool via the Resource Pools UI first, then pass its id here.
backend_typeNoBackend engine: 'python' (FastAPI, default) or 'rust' (Axum, faster). Default: python

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • removedInput schema / properties / description
      Removed value: -{
      -  "description": "Optional project description",
      -  "type": "string"
      -}
  2. Changed2 schema fields changed
    • changedInput schema / properties / cluster_id / description
      Previous value: -"Optional BYOC resource pool ID (from list_clusters) to deploy this project onto your own cluster. Omit to deploy on RationalBloks-hosted infrastructure."New value: +"REQUIRED — BYOC resource pool ID (from list_clusters) to deploy this project onto your own cluster. Owned hosting is retired: a project we operate must run on your own infrastructure. Register a pool via the Resource Pools UI first, then pass its id here."
    • changedInput schema / required
      Previous value: -[
      -  "name",
      -  "schema"
      -]New value: +[
      +  "name",
      +  "schema",
      +  "cluster_id"
      +]
  3. Changed1 schema field changed
    • addedInput schema / properties / cluster_id
      Added value: +{
      +  "description": "Optional BYOC resource pool ID (from list_clusters) to deploy this project onto your own cluster. Omit to deploy on RationalBloks-hosted infrastructure.",
      +  "type": "string"
      +}
  4. Changed1 schema field changed
    • addedInput schema / properties / backend_type
      Added value: +{
      +  "description": "Backend engine: 'python' (FastAPI, default) or 'rust' (Axum, faster). Default: python",
      +  "enum": [
      +    "python",
      +    "rust"
      +  ],
      +  "type": "string"
      +}
  5. First observed

TDQS

Score is being calculated.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.