RationalBloks

com.rationalbloksPublished by rationalbloks.comOfficial publisherv0.16.1Updated Oct 24, 2026

Deploy production REST and Neo4j Graph APIs from JSON schemas in seconds.

VerifiedStreamable HTTPWeb executableDatabasesCloud & InfrastructureDeveloper Tools

Overview

AI-generated overview

RationalBloks lets an assistant create, deploy and manage production REST and Neo4j graph APIs from JSON schemas, plus modules and graph data.

What you can do
  • Inspect projects, schemas, templates, version history, jobs, usage and subscription limits
  • Create and change relational or graph schemas, preview changes, and deploy to staging or production
  • Roll back, rename or delete projects and follow long-running jobs to completion
  • Read and write graph data: nodes, relationships, bulk creation, search and traversal
  • Deploy and manage modules (frontends and backends) from GitHub repositories, including scaling and environment variables
When to use it
Useful when you want an assistant to turn a JSON schema into a running API on Kubernetes without writing backend code, or to operate existing RationalBloks projects, deployments and graph data from a chat client.
Requirements
A RationalBloks account and API key, supplied as RATIONALBLOKS_API_KEY for the local stdio package (uvx or pip) or as a Bearer token for the remote HTTP endpoint. Projects deploy onto your own registered BYOC Kubernetes cluster, and production promotion requires a paid plan.
Before you install
The key carries scopes: a read key reaches only read tools, a read+write key reaches every tool. Many tools change or destroy data: whole-schema replacement, drops, rollbacks, project and module deletion, and deploy_destructive can lose stored data, and rollback does not restore database data. Production promotion requires a paid plan. Module environment variables are set but never read back.

Installation

In SourceWeft

  1. Open RationalBloks in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/com.rationalbloks%2Fmcp/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "rationalbloks": {
      "type": "http",
      "url": "https://mcp.rationalbloks.com/"
    }
  }
}

README

RationalBloks MCP Server

Deploy production APIs in minutes. Tools for projects, schemas, deployments, modules, object storage, and graph data — delivered on infrastructure you own (self-host or your own BYOC cluster).

[License] [Python] [PyPI]

What Is This?

RationalBloks MCP lets AI agents (Claude Code, Claude Desktop, Cursor, VS Code, etc.) deploy production APIs from a JSON schema, and deploy and run the frontends and backends built on them. No backend code to write. No infrastructure to manage.

"Create a task management API with tasks, projects, and users"
→ 2 minutes later: Production API running on Kubernetes

Installation

bash
# recommended — no install step; @latest checks for a new release at every start
uvx rationalbloks-mcp@latest

# or install into an environment
pip install rationalbloks-mcp

Quick Start

1. Get Your API Key

Visit rationalbloks.com/settings and create an API key. A key carries scopes: a read key reaches only the read tools, a read + write key reaches every tool. The server lists only the tools your key may call.

2. Configure Your AI Agent

Claude Code — remote server (no install):

bash
claude mcp add --transport http rationalbloks https://mcp.rationalbloks.com/mcp \
  --header "Authorization: Bearer rb_sk_your_key_here"

or the local server:

bash
claude mcp add --env RATIONALBLOKS_API_KEY=rb_sk_your_key_here rationalbloks \
  -- uvx rationalbloks-mcp@latest

--scope project writes the server to the repository's .mcp.json instead, to share it with a team. Keep the key out of the file with "Authorization": "Bearer ${RATIONALBLOKS_API_KEY}": Claude Code expands the variable from each developer's environment.

VS Code — add to .vscode/mcp.json (Cursor: .cursor/mcp.json with a mcpServers key):

json
{
  "servers": {
    "rationalbloks": {
      "command": "uvx",
      "args": ["rationalbloks-mcp@latest"],
      "env": {
        "RATIONALBLOKS_API_KEY": "rb_sk_your_key_here"
      }
    }
  }
}

Claude Desktop — add to claude_desktop_config.json:

json
{
  "mcpServers": {
    "rationalbloks": {
      "command": "uvx",
      "args": ["rationalbloks-mcp@latest"],
      "env": {
        "RATIONALBLOKS_API_KEY": "rb_sk_your_key_here"
      }
    }
  }
}

Any other client: point it at https://mcp.rationalbloks.com/mcp (Streamable HTTP) with Authorization: Bearer rb_sk_....

3. Claude Code Permissions

Every tool that can lose data carries destructiveHint: true, and no other tool can lose data. One allow rule covers the server, and ask rules keep a prompt on the tools that can lose data. Claude Code evaluates ask rules before allow rules, so they prompt even though the server is allowed, and in auto mode they still prompt, because they run before the classifier. Add this to .claude/settings.json (the project) or ~/.claude/settings.json (every project):

json
{
  "permissions": {
    "allow": ["mcp__rationalbloks"],
    "ask": [
      "mcp__rationalbloks__update_schema",
      "mcp__rationalbloks__drop_schema_items",
      "mcp__rationalbloks__deploy_destructive",
      "mcp__rationalbloks__rollback_project",
      "mcp__rationalbloks__delete_project",
      "mcp__rationalbloks__update_graph_schema",
      "mcp__rationalbloks__rollback_graph_project",
      "mcp__rationalbloks__delete_graph_project",
      "mcp__rationalbloks__delete_graph_node",
      "mcp__rationalbloks__delete_graph_relationship",
      "mcp__rationalbloks__set_module_env",
      "mcp__rationalbloks__delete_module"
    ]
  }
}

Add "mcp__rationalbloks__deploy_production" to ask to approve each production release yourself.

Asked before every change: allow only the read tools instead. These rules match every read tool and no other:

json
{
  "permissions": {
    "allow": [
      "mcp__rationalbloks__get_*",
      "mcp__rationalbloks__list_*",
      "mcp__rationalbloks__search_graph_nodes",
      "mcp__rationalbloks__fulltext_search_graph",
      "mcp__rationalbloks__traverse_graph",
      "mcp__rationalbloks__preview_schema_change"
    ]
  }
}

Read-only server: register a second server with a read key. It lists only the read tools and the platform refuses every other call, so one rule allows all of it:

bash
claude mcp add --transport http rationalbloks-read https://mcp.rationalbloks.com/mcp \
  --header "Authorization: Bearer rb_sk_your_read_key"
json
{ "permissions": { "allow": ["mcp__rationalbloks-read"] } }

Auto mode reads autoMode only from ~/.claude/settings.json, managed settings or --settings, never from a project's .claude/settings.json. If its classifier blocks routine RationalBloks calls, describe your project there, keeping $defaults (replace MyProject and apps.yourdomain.com with your project's name and your cluster's domain):

json
{
  "autoMode": {
    "environment": [
      "$defaults",
      "Key internal services: RationalBloks (MCP server rationalbloks, https://mcp.rationalbloks.com), where our project MyProject runs; its staging environment is for development",
      "Trusted internal domains: rationalbloks.com and *.rationalbloks.com; *.apps.yourdomain.com, where MyProject's APIs and modules are served",
      "Sensitive remote targets: MyProject's production environment"
    ]
  }
}

Run claude auto-mode config to see the rules in effect, or edit them in /permissions (Auto mode tab).


Tools

Read tools only read. Write tools change something, and never lose data. Destructive tools can lose data, and carry destructiveHint: true: they replace a whole schema (update_schema, update_graph_schema), drop, delete, roll back, deploy a plan that drops data (deploy_destructive), or overwrite a module's environment (set_module_env).

A plan drops data when it drops a table or field, or changes a field's type in a way that rounds or cuts its stored values (a decimal given a smaller scale or turned integer, a datetime turned date). The deploy tools refuse such a plan and name each drop; deploy_destructive applies it.

A long operation (create, deploy, rollback, delete, module operations) runs as a job: the tool answers a job_id, and get_job_status follows it to its result.

Relational Projects

ToolKindDescription
list_projectsreadList all your projects
get_projectreadGet project details
get_schemareadGet the current JSON schema (optionally only some tables or fields)
get_user_inforeadGet authenticated user info
list_clustersreadList your BYOC resource pools (client-owned clusters)
get_job_statusreadFollow a job (create, deploy, promotion, rollback, deletion, module operation) to its result
list_project_jobsreadA project's jobs, newest first, each with its outcome
get_project_inforeadDetailed project info with K8s status
get_version_historyreadGit commit history
get_template_schemasreadPre-built schema templates
get_schema_referencereadAdvanced schema features reference (__policy__, computed, __constraints__, __audit__)
get_subscription_statusreadPlan and usage limits
get_project_usagereadCPU/memory metrics
get_project_storage_usagereadObject-storage file count and bytes used vs limits
list_project_filesreadList uploaded files (metadata + public URLs)
get_schema_at_versionreadSchema at a specific commit
preview_schema_changereadPreview a change (patch operations or a whole schema): the migration plan and every drop, saving nothing
create_projectwriteCreate a project from a schema (cluster_id of one of your BYOC pools; backend_type python or rust)
patch_schemawriteChange part of the schema: add, rename and set tables and fields. Never drops
deploy_stagingwriteDeploy the saved schema to staging. Refuses a plan that drops data
deploy_productionwritePromote staging to production. Refuses a plan that drops data
redeploy_projectwriteRebuild and roll out staging from the schema it runs, with no schema change
rename_projectwriteRename a project
update_schemadestructiveReplace the whole schema: a table or field it leaves out is dropped by the next deploy
drop_schema_itemsdestructiveDrop tables or fields from the saved schema
deploy_destructivedestructiveDeploy a plan that drops data, to staging or production (relational or graph)
rollback_projectdestructiveRoll schema and code back to a previous version
delete_projectdestructiveDelete a project permanently

Graph Projects

ToolKindDescription
get_graph_schemareadGet a graph project's schema
get_graph_template_schemasreadPre-built graph schema templates
get_graph_version_historyreadGraph schema version history
get_graph_schema_at_versionreadSchema at a specific version
get_graph_project_inforeadGraph project info with K8s/Neo4j status
create_graph_projectwriteCreate a Neo4j graph project
deploy_graph_stagingwriteDeploy the saved graph schema to staging. Refuses a plan that drops data
deploy_graph_productionwritePromote graph staging to production. Refuses a plan that drops data
update_graph_schemadestructiveReplace the whole graph schema: what it leaves out is dropped by the next deploy
rollback_graph_projectdestructiveRoll a graph project back to a previous version
delete_graph_projectdestructiveDelete a graph project

Graph Data

ToolKindDescription
get_graph_nodereadGet a node by ID
list_graph_nodesreadList nodes by entity type
get_node_relationshipsreadGet a node's relationships
search_graph_nodesreadSearch nodes by property filters
fulltext_search_graphreadFull-text search across all fields
traverse_graphreadTraverse the graph from a node
get_graph_statisticsreadGraph statistics (counts)
get_graph_data_schemareadThe deployed data schema
create_graph_nodewriteCreate a node
update_graph_nodewriteUpdate node properties
create_graph_relationshipwriteCreate a relationship
bulk_create_graph_nodeswriteCreate up to 500 nodes
bulk_create_graph_relationshipswriteCreate up to 500 relationships
delete_graph_nodedestructiveDelete a node and its relationships
delete_graph_relationshipdestructiveDelete a relationship

Modules

A module is one of a project's own frontends (frontblok) or backends (logicblok), built from a GitHub repository and run beside the project.

ToolKindDescription
list_modulesreadA project's modules: id, type, repository, URL, status, pods, resources, the image last built
deploy_modulewriteDeploy a new module from a GitHub repository
redeploy_modulewriteRebuild a module from its repository's default branch head and roll it out
update_modulewriteRename a module or point it at another repository
freeze_modulewriteStop a module's pods, remembering how many it ran
unfreeze_modulewriteStart a frozen module's pods again
scale_modulewriteRun 1 or 2 pods of a module
set_module_resourceswriteSet a module's CPU and memory, and rebuild it
set_module_envdestructiveSet or remove environment variables (merged: variables not named are kept); values are never read back
delete_moduledestructiveRemove a module

Schema Format

Schemas must be in FLAT format:

json
{
  "tasks": {
    "title": {"type": "string", "max_length": 200, "required": true},
    "status": {"type": "string", "max_length": 50, "enum": ["pending", "done"]},
    "due_date": {"type": "date", "required": false}
  },
  "projects": {
    "name": {"type": "string", "max_length": 100, "required": true}
  }
}

Field Types

TypeRequired Properties
stringmax_length
textNone
integerNone
decimalprecision, scale
booleanNone
uuidNone
dateNone
datetimeNone
jsonNone

Auto-Generated Fields

These are automatic - don't define them:

  • id (UUID primary key)
  • created_at (datetime)
  • updated_at (datetime)
  • row_version (integer: the row's version, 1 on insert and one more on every update)

User Authentication

Use the built-in app_users table:

json
{
  "employee_profiles": {
    "user_id": {"type": "uuid", "foreign_key": "app_users.id", "required": true},
    "department": {"type": "string", "max_length": 100}
  }
}

get_schema_reference covers the advanced features: row policies, computed fields, unique groups (nulls_not_distinct for groups with nullable columns, deferrable for groups checked at commit), audit trails, the generated API's scoped deletes, and writes that state the row_version they read (If-Match, if_version).


Frontend

For frontend development, use our NPM packages:

bash
npm install @rationalbloks/frontblok-auth @rationalbloks/frontblok-crud

These provide:

  • frontblok-auth: Authentication, login, tokens, user context
  • frontblok-crud: Generic CRUD via getApi().getAll(), getApi().create(), etc.

Environment Variables

VariableDescriptionDefault
RATIONALBLOKS_API_KEYYour API key (stdio; HTTP clients send it as a Bearer token per request). Without it the server lists its tools and every call answers how to set it-
TRANSPORTstdio or httpstdio
HOST / PORTBind address for TRANSPORT=http0.0.0.0 / 8000
LOGICBLOK_URLLogicBlok gateway base URLhttps://logicblok.rationalbloks.com
RATIONALBLOKS_DEBUGPrint full tracebacks on startup errorsunset

Support

License

Proprietary - Copyright 2026 RationalBloks. All Rights Reserved.

Source: README.md at commit d5acaa2

Tools

64

list_projects

List Projects

List all your RationalBloks projects with their status and URLs

Takes no parameters.

get_project

Get Project Details

Get detailed information about a specific project

Parametersproject_idrequired

get_schema

Get Project Schema

Get the JSON schema definition of a project in FLAT format. Returns the schema structure where each table name maps directly to field definitions. This is the same format required for create_project and update_schema. USE CASES: Review current schema before making updates, copy schema as template for new projects, verify schema structure after deployment, learn the correct schema format by example. The returned schema will be in FLAT format: {table_name: {field_name: {type, properties}}}. The response also says whether this saved schema is the deployed one: saved_schema_deployed is true when the last deploy applied it, false when it was saved after the last deploy (undeployed_changes then lists what deploying it would change), and null when no deployed schema is on record. A LARGE SCHEMA: pass tables or fields to read only the part you are about to change — the answer's 'version' is the whole schema's either way, so a slice is enough to patch it with patch_schema(expected_version=...).

Parametersfieldstablesproject_idrequired

get_user_info

Get User Info

Get information about the authenticated user

Takes no parameters.

list_clusters

List Resource Pools

List your registered BYOC resource pools (client-owned Kubernetes clusters). Each returned cluster has an 'id' you MUST pass as create_project's cluster_id to deploy a project onto your own infrastructure — owned hosting is retired, so every project we operate runs on your own cluster. Registering a pool is a UI action (create a bare Ubuntu box, authorise the key we generate, then we provision it into a cluster automatically) — this tool only lists pools you already registered, it never handles cluster credentials.

Takes no parameters.

get_job_status

Get Job Status

Check the status of a job (a create, deploy, promotion, rollback, deletion or module operation). STATUS VALUES: pending (queued), processing (in progress), completed (success), failed. Call it until the status is completed or failed: every job ends, since a job whose server stopped is failed within about three minutes, and a deploy can take up to 15 minutes. A module job names its module_code, and a completed module build's result names the image it built (its commit). If status is 'failed', read failure_side and error: 'customer' means the project's input is proven the cause (an invalid schema, data the new schema does not fit, a change the resource pool cannot hold), and error says what to change; 'platform' means no input of the project is known to cause it: report it to RationalBloks rather than changing the schema.

Parametersjob_idrequired

list_project_jobs

List Project Jobs

List a project's jobs, newest first: every create, deploy, promotion, rollback, resource change and module operation, each with its status, error, failure_side and when it started and ended. A job's record is kept for the life of the project, so this is how to find out what an operation did when you no longer have its job_id (after an interruption, or in a later session): the first job of the job_type you want is the latest. Read older jobs a page at a time with offset; a page shorter than limit is the last.

Parameterslimitoffsetproject_idrequired

get_project_info

Get Project Info

Get detailed project info including deployment status and resource usage. DEPLOYMENT STATUS: Running (healthy), Pending (starting), CrashLoopBackOff (init container failed - usually schema format error), ImagePullBackOff (image build failed). TROUBLESHOOTING: If status is CrashLoopBackOff, the schema is likely in wrong format (nested 'fields' key or missing 'type' properties). Use get_schema to review current schema. If replicas show 0/2, the init container (migration runner) is failing. This is almost always a schema format issue. RETURNS THE LIVE API URL: staging.url and production.url carry the deployed base URL for each environment (append /docs for the interactive OpenAPI docs); github.url is the generated repository. create_project does NOT return a URL, so this is the tool to call once get_job_status reports the deployment finished.

Parametersproject_idrequired

get_version_history

Get Version History

Get the deployment and version history (git commits) for a project. Shows all schema changes with commit SHA, timestamp, and message. USE CASES: Review what changed between deployments, find the last working version before issues started, get commit SHA for rollback_project.

Parametersproject_idrequired

get_template_schemas

Get Template Schemas

Get pre-built template schemas for common use cases. ⭐ USE THIS FIRST when creating a new project! Templates show the CORRECT schema format with: proper FLAT structure (no 'fields' nesting), every field has a 'type' property, foreign key relationships configured correctly, best practices for field naming and types. Available templates: Start from Scratch (every field type), Team Collaboration (workspaces, channels, messages, tasks), E-Commerce Store (customer profiles, products, orders and their line items, reviews, shipments). Each entry's 'schema' goes to create_project as is or adapted; its 'tables' notes say how each table is authorized. TIP: Study these templates to understand the correct schema format before creating custom schemas.

Takes no parameters.

get_schema_reference

Get Schema Features Reference

Get the reference for ADVANCED schema features the templates do not show — read this before adding authorization or derived fields to a schema. Covers: __policy__ (relationship-based read/write authorization with single- and multi-hop membership paths, and the rules that decide whether adopting it is safe — it replaces creator-ownership per table and fails closed on a null link), computed columns (read-only values derived from other columns), __constraints__ (composite uniqueness, checked at commit when deferrable), __audit__ (append-only audit log), __admin_write__ (a table only admins write), how user foreign keys are attributed on create, reading many rows in one request with <field>__in=a,b,c (the values separated by commas only), deleting the rows a filter names with expected_count, and writes that state the row_version they read (If-Match on a route, if_version in a batch).

Takes no parameters.

get_subscription_status

Get Subscription Status

Get your subscription tier, limits, and usage

Takes no parameters.

get_project_usage

Get Project Usage

Get resource usage metrics (CPU, memory) for a project

Parametersproject_idrequired

get_project_storage_usage

Get Project Storage Usage

Get object-storage usage for a project: file count and bytes used against the plan limits.

Parametersproject_idrequiredenvironment

list_project_files

List Project Files

List a project's uploaded files (metadata + public URLs), most recent first. Inspection only — files are not streamed through MCP.

Parameterslimitoffsetproject_idrequiredenvironment

get_schema_at_version

Get Schema at Version

Get the schema as it was at a specific version/commit

Parametersversionrequiredproject_idrequired

preview_schema_change

Preview Schema Change

Preview a schema change, saving nothing: the one way to see what a change would do before it is saved. Pass ONE of: • operations: the operations patch_schema or drop_schema_items would apply (relational projects) • schema: a whole schema in place of the saved one (relational or graph projects) ANSWER: 'applied' (for operations), 'diff' (every property saving it would change, by path), 'summary' and 'plan' (the migration the next deploy would then run, every table, field, entity or relationship it drops named), and 'version' (the saved schema's: pass it as expected_version to the save that follows, so it is refused if someone saved meanwhile). A relational schema the deploy would refuse is refused here, with the reason.

Parametersschemaoperationsproject_idrequired

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.

Parametersnamerequiredschemarequiredcluster_idrequiredbackend_type

update_schema

Update Schema

Replace a project's WHOLE schema (saves to database, does NOT deploy). DESTRUCTIVE: a table or field the schema leaves out is dropped by the next deploy. For a new data model or a template. To change part of a schema use patch_schema, and drop_schema_items to drop; sending back a large schema to change one field risks changing something else on the way. ⚠️ Follow ALL rules from create_project: • FLAT format (no 'fields' nesting) • string: max_length (default 255) • decimal: precision + scale (default 10, 2) • Use "datetime" NOT "timestamp" • DON'T define: id, created_at, updated_at, row_version • NEVER create users/customers/employees tables (use app_users) ⚠️ MIGRATION RULES: • New fields MUST be "required": false OR have "default" value • Cannot add required field without default to existing tables WORKFLOW: 1. get_schema to see the current schema (its 'version' pins the save) 2. preview_schema_change with the new schema: check 'diff' and 'plan' 3. update_schema (pass expected_version to be refused if someone else saved meanwhile) 4. deploy_staging, then get_job_status A schema the deploy would refuse is refused here, and nothing is saved. The answer carries 'diff', 'plan' and the new 'version'.

Parametersschemarequiredproject_idrequiredexpected_version

patch_schema

Patch Schema

Change PART of a project's schema without dropping any of it (saves to database, does NOT deploy). Send only the change. The server applies it to the saved schema, in order and all together, and keeps every table and field it does not touch — including their identity, so a rename stays a rename and the column keeps its data. OPERATIONS (each one small object, applied in the order given): • {"op": "add_table", "table": "clocks", "definition": {...}} new table, same FLAT rules as create_project • {"op": "rename_table", "table": "clocks", "to": "timers"} • {"op": "add_field", "table": "assets", "field": "serial", "definition": {"type": "string", "max_length": 64}} • {"op": "rename_field", "table": "parameters", "field": "is_clock", "to": "clock_kind"} • {"op": "set_field", "table": "assets", "field": "name", "properties": {"max_length": 300}} merges; a property set to null is removed • {"op": "set_table", "table": "assets", "properties": {"__audit__": true}} __policy__, __constraints__, __audit__, __admin_write__ Dropping a table or field is drop_schema_items, a tool of its own. ALL OR NOTHING: an operation that cannot be applied — a table or field that is not there, a name already taken, a schema the deploy would refuse — refuses the whole patch, naming the operation, and nothing is saved. EVERY ANSWER IS A DIFF: 'applied' (what each operation did), 'diff' (every changed property by path), 'summary' and 'plan' (the migration a deploy would then run), and 'version' (the schema's version after the change). WORKFLOW: 1. get_schema with tables/fields to read the part you are changing (its 'version' is the whole schema's) 2. preview_schema_change with the operations: check 'diff' and 'plan' 3. patch_schema with the same operations (pass expected_version to be refused if someone else saved meanwhile) 4. deploy_staging, then get_job_status

Parametersoperationsrequiredproject_idrequiredexpected_version

drop_schema_items

Drop Tables or Fields

Drop tables or fields from a project's saved schema (saves to database, does NOT deploy). DESTRUCTIVE: the next deploy drops their data. OPERATIONS (applied in order and all together): • {"op": "drop_table", "table": "clocks"} • {"op": "drop_field", "table": "parameters", "field": "is_clock"} A drop that cannot be applied (a table or field that is not there, a schema the deploy would refuse, such as a field another reads) refuses them all, naming it, and nothing is saved. The answer carries 'applied', 'diff', 'plan' and the new 'version'. WORKFLOW: 1. preview_schema_change with the same operations: check 'diff' and 'plan' 2. drop_schema_items (pass expected_version to be refused if someone else saved meanwhile) 3. deploy_staging refuses the plan and names its drops; deploy_destructive applies it, then get_job_status

Parametersoperationsrequiredproject_idrequiredexpected_version

deploy_staging

Deploy to Staging

Deploy a project's saved schema to the staging environment. This triggers: (1) Schema validation, (2) Docker image build, (3) GitHub commit, (4) Kubernetes deployment, (5) Database migrations. The operation is ASYNCHRONOUS - it returns immediately with a job_id. Use get_job_status with the job_id to monitor progress. Deployment typically takes 2-5 minutes depending on schema complexity. If deployment fails, read the job's error first: one that starts with 'RationalBloks platform error' is the platform's, not the schema's. Otherwise check: (1) Schema format is FLAT (no 'fields' nesting), (2) Every field has a 'type' property, (3) Foreign keys reference existing tables, (4) No PostgreSQL reserved words in table/field names. Use get_project_info to see if the deployment succeeded. A plan that drops data is refused, naming every table, field, entity or relationship it would drop, and every field whose type change rounds or cuts its values (a decimal with a smaller scale or turned integer, a datetime turned date): deploy_destructive applies it, a tool of its own so a client asks before it runs. One operation runs on a project at a time: while another runs, the call is refused and the refusal names the running job; wait for it with get_job_status, then call again. While RationalBloks is being updated, the call is refused with 'RationalBloks is being updated': call it again in a few minutes.

Parametersproject_idrequired

deploy_production

Deploy to Production

Promote staging to production (requires a paid plan): production's database migrates from the schema it runs to the one staging runs, and production runs staging's build. With staging unchanged since the last promotion, it rebuilds production with no schema change. The operation is ASYNCHRONOUS: poll the returned job_id with get_job_status. A plan that drops data is refused, naming every table, field, entity or relationship it would drop, and every field whose type change rounds or cuts its values (a decimal with a smaller scale or turned integer, a datetime turned date): deploy_destructive applies it, a tool of its own so a client asks before it runs. One operation runs on a project at a time: while another runs, the call is refused and the refusal names the running job; wait for it with get_job_status, then call again. While RationalBloks is being updated, the call is refused with 'RationalBloks is being updated': call it again in a few minutes.

Parametersproject_idrequired

deploy_destructive

Deploy a Plan That Drops Data

Deploy a plan that drops data, of a relational or a graph project. DESTRUCTIVE: the tables, fields, entities or relationships the plan drops lose their data. environment 'staging' deploys the saved schema, 'production' promotes staging. Use it only after a deploy tool (deploy_staging, deploy_production, deploy_graph_staging, deploy_graph_production) refused the plan, naming its drops, and those drops are intended. The operation is ASYNCHRONOUS: poll the returned job_id with get_job_status. One operation runs on a project at a time: while another runs, the call is refused and the refusal names the running job; wait for it with get_job_status, then call again. While RationalBloks is being updated, the call is refused with 'RationalBloks is being updated': call it again in a few minutes.

Parametersproject_idrequiredenvironmentrequired

redeploy_project

Redeploy Project

Rebuild and roll out a project's staging environment from the schema it runs, with NO schema change, for a relational or a graph project: the current platform release, the project's settings (email, admin users) and its environment take effect. Refused (409) when the saved schema holds changes the last deploy did not apply (deploy_staging deploys those) or when nothing was deployed yet; a save that lands meanwhile is refused rather than deployed. deploy_production rebuilds production the same way when staging runs what production runs. The operation is ASYNCHRONOUS: poll the returned job_id with get_job_status. One operation runs on a project at a time: while another runs, the call is refused and the refusal names the running job; wait for it with get_job_status, then call again. While RationalBloks is being updated, the call is refused with 'RationalBloks is being updated': call it again in a few minutes.

Parametersproject_idrequired

delete_project

Delete Project

Delete a project (removes GitHub repo, K8s deployments, and database). It runs as a job: poll the returned job_id with get_job_status until it is completed. One operation runs on a project at a time: while another runs, the call is refused and the refusal names the running job; wait for it with get_job_status, then call again. While RationalBloks is being updated, the call is refused with 'RationalBloks is being updated': call it again in a few minutes.

Parametersproject_idrequired

rollback_project

Rollback Project

Rollback a project to a previous version. ⚠️ WARNING: This reverts schema AND code to the specified commit. Database data is NOT rolled back. Use get_version_history to find the commit SHA of the version you want to rollback to. After rollback, use get_job_status to monitor the redeployment. Rollback is useful when a schema change breaks deployment. One operation runs on a project at a time: while another runs, the call is refused and the refusal names the running job; wait for it with get_job_status, then call again. While RationalBloks is being updated, the call is refused with 'RationalBloks is being updated': call it again in a few minutes.

Parametersversionrequiredproject_idrequiredenvironment

rename_project

Rename Project

Rename a project (changes display name, not project_code)

Parametersnamerequiredproject_idrequired

get_graph_schema

Get Graph Schema

Get the graph schema definition of a project. Returns the hierarchical schema with nodes (entities) and relationships. Graph schemas define entity hierarchies and typed relationships — a different format than relational flat-table schemas. The response also says whether this saved schema is the deployed one: saved_schema_deployed is true when the last deploy applied it, false when it was saved after the last deploy (undeployed_changes then lists what deploying it would change), and null when no deployed schema is on record.

Parametersproject_idrequired

get_graph_template_schemas

Get Graph Template Schemas

Get pre-built graph template schemas for common use cases. ⭐ USE THIS FIRST when creating a new graph project! Templates show the CORRECT graph schema format with: proper node definitions (description, flat_labels, schema with flat field definitions), relationship configurations (from, to, cardinality, data_schema), and hierarchical entity nesting. Available templates: Start from Scratch (hierarchy, flat labels, every field type), Social Network (people, organizations, content, follows), Knowledge Graph (topic hierarchy, articles, authors, concepts), Product Catalog (products, categories, suppliers, reviews). Each entry's 'schema' goes to create_graph_project as is or adapted. TIP: Study these templates to understand the correct graph schema format before creating custom schemas.

Takes no parameters.

get_graph_version_history

Get Graph Version History

Get the deployment and version history for a graph project. Shows all schema changes with commit SHAs, timestamps, version numbers, and messages. Use this to find a specific version for rollback operations.

Parametersproject_idrequired

get_graph_schema_at_version

Get Graph Schema at Version

Get the graph schema as it existed at a specific version/commit. Use get_graph_version_history to find commit SHAs. Useful for comparing schemas across versions or auditing changes.

Parametersversionrequiredproject_idrequired

get_graph_project_info

Get Graph Project Info

Get detailed graph project information including Kubernetes deployment status, Neo4j database health, pod status, and resource usage. Use this after deployment to verify the graph project is running correctly.

Parametersproject_idrequired

create_graph_project

Create Graph Project

Create a new Neo4j graph database project from a hierarchical JSON schema. ⚠️ GRAPH SCHEMA FORMAT — READ BEFORE CREATING: Graph schemas define nodes (entities) and relationships, NOT flat database tables. Each field is a dict with "type" and optional "required": true (defaults to false). SCHEMA STRUCTURE: { "nodes": { "EntityName": { "description": "What this entity represents", "flat_labels": ["AdditionalLabel"], "schema": { "field_name": {"type": "string", "required": true}, "other_field": {"type": "integer"} } } }, "relationships": { "RELATIONSHIP_TYPE": { "from": "EntityName", "to": "OtherEntity", "cardinality": "MANY_TO_MANY", "data_schema": { "field_name": {"type": "date"} } } } } FIELD TYPES: string, integer, float, boolean, date, json CARDINALITY OPTIONS: ONE_TO_ONE, ONE_TO_MANY, MANY_TO_ONE, MANY_TO_MANY HIERARCHICAL NODES: nest an entity inside its parent entity (beside "description", "flat_labels" and "schema") to create a type hierarchy; the child inherits the parent's labels: "Animal": {"description": "...", "schema": {...}, "Dog": {"description": "...", "schema": {...}}} RULES: 1. "nodes" key is REQUIRED — must contain at least one entity 2. Each entity needs "description" and "schema" with field definitions 3. Each field is {"type": "...", "required": true/false} — required defaults to false 4. Relationship "from"/"to" must reference defined node names 5. Relationship types should be UPPER_SNAKE_CASE 6. Entity names should be PascalCase 7. Automatic fields (id, created_at, updated_at) are NOT needed WORKFLOW: 1. get_graph_template_schemas FIRST to see valid examples 2. create_graph_project with a cluster_id from list_clusters 3. Poll get_job_status with the returned job_id (2-5 minutes) While RationalBloks is being updated, the call is refused with 'RationalBloks is being updated': call it again in a few minutes.

Parametersnamerequiredschemarequiredcluster_idrequired

update_graph_schema

Update Graph Schema

Replace a graph project's WHOLE schema (saves to database, does NOT deploy). DESTRUCTIVE: an entity, relationship or field the schema leaves out is deleted by the next deploy. ⚠️ Follow ALL rules from create_graph_project: • Must have "nodes" key with at least one entity • Each entity needs "description" and "schema" with field definitions • Each field is {"type": "...", "required": true/false} — required defaults to false • Relationships need "from", "to", and "cardinality" • Field types: string, integer, float, boolean, date, json • Relationship types should be UPPER_SNAKE_CASE • Entity names should be PascalCase WORKFLOW: 1. get_graph_schema to see the current schema (its 'version' pins the save) 2. preview_schema_change with the new schema: check 'diff' and 'plan' 3. update_graph_schema (pass expected_version to be refused if someone else saved meanwhile) 4. deploy_graph_staging, then get_job_status

Parametersschemarequiredproject_idrequiredexpected_version

deploy_graph_staging

Deploy Graph to Staging

Deploy a graph project's saved schema to the staging environment. This triggers: (1) Schema validation, (2) Neo4j entity code generation, (3) Docker image build, (4) GitHub commit, (5) Kubernetes deployment with Neo4j instance. The operation is ASYNCHRONOUS — returns immediately with a job_id. Use get_job_status to monitor progress. Deployment typically takes 2-5 minutes. Use get_graph_project_info to verify deployment succeeded. A plan that drops data is refused, naming every table, field, entity or relationship it would drop, and every field whose type change rounds or cuts its values (a decimal with a smaller scale or turned integer, a datetime turned date): deploy_destructive applies it, a tool of its own so a client asks before it runs. One operation runs on a project at a time: while another runs, the call is refused and the refusal names the running job; wait for it with get_job_status, then call again. While RationalBloks is being updated, the call is refused with 'RationalBloks is being updated': call it again in a few minutes.

Parametersproject_idrequired

deploy_graph_production

Deploy Graph to Production

Promote graph staging to production. Creates a separate production Neo4j instance with its own credentials and database. Requires paid plan. A plan that drops data is refused, naming every table, field, entity or relationship it would drop, and every field whose type change rounds or cuts its values (a decimal with a smaller scale or turned integer, a datetime turned date): deploy_destructive applies it, a tool of its own so a client asks before it runs. One operation runs on a project at a time: while another runs, the call is refused and the refusal names the running job; wait for it with get_job_status, then call again. While RationalBloks is being updated, the call is refused with 'RationalBloks is being updated': call it again in a few minutes.

Parametersproject_idrequired

delete_graph_project

Delete Graph Project

Delete a graph project (removes GitHub repo, K8s deployments, Neo4j database, and credentials). It runs as a job: poll the returned job_id with get_job_status until it is completed. One operation runs on a project at a time: while another runs, the call is refused and the refusal names the running job; wait for it with get_job_status, then call again. While RationalBloks is being updated, the call is refused with 'RationalBloks is being updated': call it again in a few minutes.

Parametersproject_idrequired

rollback_graph_project

Rollback Graph Project

Rollback a graph project to a previous version. ⚠️ WARNING: This reverts schema AND code to the specified commit. Neo4j data is NOT rolled back. Use get_graph_version_history to find the commit SHA of the version you want to rollback to. After rollback, the graph API will be redeployed with the old schema. One operation runs on a project at a time: while another runs, the call is refused and the refusal names the running job; wait for it with get_job_status, then call again. While RationalBloks is being updated, the call is refused with 'RationalBloks is being updated': call it again in a few minutes.

Parametersversionrequiredproject_idrequiredenvironment

create_graph_node

Create Graph Node

Create a single node in a deployed graph project. REQUIRES: Project must be deployed (use deploy_graph_staging first). The entity_type must match an entity key from the project schema. Use get_graph_data_schema to see available entity types and their fields. Example: entity_type: "person" entity_id: "alan-turing-001" data: {"name": "Alan Turing", "birth_year": 1912, "field": "Computer Science"} The entity_id is your unique identifier — use meaningful IDs for knowledge graphs.

Parametersdatarequiredentity_idrequiredproject_idrequiredentity_typerequiredenvironment

get_graph_node

Get Graph Node

Get a specific node by its entity_id from a deployed graph project. Returns all node properties including created_at and updated_at timestamps.

Parametersentity_idrequiredproject_idrequiredentity_typerequiredenvironment

list_graph_nodes

List Graph Nodes

List nodes of a specific entity type from a deployed graph project. Supports pagination with limit/offset. Returns nodes ordered by creation date (newest first).

Parameterslimitoffsetproject_idrequiredentity_typerequiredenvironment

update_graph_node

Update Graph Node

Update properties of an existing node in a deployed graph project. Only send the fields you want to change — unspecified fields remain unchanged.

Parametersdatarequiredentity_idrequiredproject_idrequiredentity_typerequiredenvironment

delete_graph_node

Delete Graph Node

Delete a node and all its relationships from a deployed graph project. ⚠️ This also removes all relationships connected to this node (DETACH DELETE).

Parametersentity_idrequiredproject_idrequiredentity_typerequiredenvironment

create_graph_relationship

Create Graph Relationship

Create a relationship between two nodes in a deployed graph project. The rel_type must match a relationship key from the project schema. Use get_graph_data_schema to see available relationship types. Example: rel_type: "authored" from_id: "alan-turing-001" to_id: "on-computable-numbers-001" data: {"year": 1936} The from_id and to_id must be entity_ids of existing nodes.

Parametersdatato_idrequiredfrom_idrequiredrel_typerequiredproject_idrequiredenvironment

get_node_relationships

Get Node Relationships

Get all relationships connected to a specific node. Supports direction filtering (incoming, outgoing, both) and relationship type filtering.

Parametersdirectionentity_idrequiredproject_idrequiredentity_typerequiredenvironmentrel_type_filter

delete_graph_relationship

Delete Graph Relationship

Delete a specific relationship by its internal ID. Use get_node_relationships to find relationship IDs.

Parametersrel_idrequiredrel_typerequiredproject_idrequiredenvironment

bulk_create_graph_nodes

Bulk Create Graph Nodes

Create multiple nodes at once (up to 500 per call). Uses Neo4j UNWIND for high performance. Essential for knowledge graph population — create hundreds of entities from a single book chapter or article. Each node needs: entity_id (unique string) and data (properties dict). Example: entity_type: "concept" nodes: [ {"entity_id": "quantum-mechanics-001", "data": {"name": "Quantum Mechanics", "field": "Physics"}}, {"entity_id": "wave-function-001", "data": {"name": "Wave Function", "field": "Physics"}}, {"entity_id": "superposition-001", "data": {"name": "Superposition", "field": "Physics"}} ]

Parametersnodesrequiredproject_idrequiredentity_typerequiredenvironment

bulk_create_graph_relationships

Bulk Create Graph Relationships

Create multiple relationships at once (up to 500 per call). Uses Neo4j UNWIND for high performance. Essential for connecting knowledge — link hundreds of concepts, people, and events in one operation. Each relationship needs: from_id, to_id, and optional data (properties). Example: rel_type: "related_to" relationships: [ {"from_id": "quantum-mechanics-001", "to_id": "wave-function-001", "data": {"strength": "strong"}}, {"from_id": "quantum-mechanics-001", "to_id": "superposition-001", "data": {"strength": "strong"}} ]

Parametersrel_typerequiredproject_idrequiredenvironmentrelationshipsrequired

search_graph_nodes

Search Graph Nodes

Search for nodes by property values in a deployed graph project. Supports exact match and contains search (prefix value with ~ for contains). Examples: Exact: filters: {"name": "Alan Turing"} Contains: filters: {"name": "~turing"} (case-insensitive) Combined: entity_type: "person", filters: {"field": "~physics"} Without entity_type, searches ALL node types.

Parameterslimitoffsetfiltersrequiredproject_idrequiredentity_typeenvironment

fulltext_search_graph

Full-Text Search Graph

Search across ALL string properties of ALL nodes in a deployed graph using free-text queries. Unlike search_graph_nodes (which filters by specific property), this searches every text field at once. Perfect for finding knowledge when you don't know which property contains the answer. Example: query "quantum" searches name, description, summary, notes, and all other string fields. Returns nodes with _match_fields showing which properties matched. Optionally filter by entity_type to narrow results.

Parameterslimitqueryrequiredoffsetproject_idrequiredentity_typeenvironment

traverse_graph

Traverse Graph

Walk the graph from a starting node, discovering connected knowledge. Returns all nodes reachable within max_depth hops, with their distance from the start. Essential for exploring knowledge graphs — find related concepts, trace connections, discover clusters. Example: Start from "Alan Turing", traverse outgoing relationships up to 3 hops deep: start_entity_type: "person" start_entity_id: "alan-turing-001" max_depth: 3 direction: "outgoing" Supports filtering by relationship types and direction.

Parameterslimitdirectionmax_depthproject_idrequiredenvironmentstart_entity_idrequiredstart_entity_typerequiredrelationship_types

get_graph_statistics

Get Graph Statistics

Get statistics about a deployed graph: total node count, total relationship count, counts per entity type, counts per relationship type. Essential for understanding the current state of a knowledge graph before adding more data.

Parametersproject_idrequiredenvironment

get_graph_data_schema

Get Graph Data Schema

Get the runtime schema of a DEPLOYED graph project — shows the actual entity types and relationship types available for data operations. Returns: Available entity keys (for create_graph_node, list_graph_nodes, etc.) and relationship keys (for create_graph_relationship, etc.). ⭐ USE THIS FIRST before creating nodes/relationships to know what entity_type and rel_type values are valid.

Parametersproject_idrequiredenvironment

list_modules

List Modules

List a project's modules and what each runs: module_id (what every module tool takes), name, type (frontblok or logicblok), repository, url, staging_status (not_deployed, deploying, deployed, failed), deployed_at, image (the image of its last successful build, named by the commit it built: <name>:<short sha>-<build time>), replicas (live pods: 0 when frozen, null while the pool is not reporting), CPU and memory, and env_var_names (the names of its environment variables, never their values).

Parametersproject_idrequired

deploy_module

Deploy Module

Deploy a new module from a GitHub repository onto the project's resource pool: a frontblok module is a Vite frontend, a logicblok module a backend built from its Dockerfile that serves port 8000 with GET /health. Its job clones the repository (the default branch head, or git_ref), builds it and serves it at the module_url the answer names; the project's CORS origins take the module in. A private repository needs the RationalBloks GitHub App installed on it. The operation is ASYNCHRONOUS: poll the returned job_id with get_job_status. While RationalBloks is being updated, the call is refused with 'RationalBloks is being updated': call it again in a few minutes.

Parametersgit_refenv_varsmemory_mbproject_idrequiredmodule_namerequiredmodule_typerequiredcpu_millicoresdockerfile_pathgithub_repo_urlrequired

redeploy_module

Redeploy Module

Rebuild a module from its repository's default branch head and roll it out, keeping its pod count. Its data and settings are untouched; the project's API (staging and production) and its backend modules restart to take the module's CORS origin. The operation is ASYNCHRONOUS: poll the returned job_id with get_job_status, whose result names the image built (its commit); list_modules shows it once done. One operation runs on a module at a time, and none beside an operation on its project: the refusal names the running job; wait for it with get_job_status, then call again. While RationalBloks is being updated, the call is refused with 'RationalBloks is being updated': call it again in a few minutes.

Parametersmodule_idrequired

update_module

Update Module

Rename a module, or point it at another GitHub repository, which its next redeploy builds. Pass module_name, github_repo_url or both. One operation runs on a module at a time, and none beside an operation on its project: the refusal names the running job; wait for it with get_job_status, then call again. While RationalBloks is being updated, the call is refused with 'RationalBloks is being updated': call it again in a few minutes.

Parametersmodule_idrequiredmodule_namegithub_repo_url

delete_module

Delete Module

Remove a module: its pods stop and it leaves the project and its CORS origins. DESTRUCTIVE. One operation runs on a module at a time, and none beside an operation on its project: the refusal names the running job; wait for it with get_job_status, then call again. While RationalBloks is being updated, the call is refused with 'RationalBloks is being updated': call it again in a few minutes.

Parametersmodule_idrequired

set_module_env

Set Module Environment

Set a module's environment variables: {NAME: value} sets one, {NAME: null} removes one, and every variable not named is kept. A backend module restarts to take them; a frontend module rebuilds (they are build arguments). Values are stored encrypted and never returned: the answer and list_modules name the variables only. DESTRUCTIVE: a value replaced or removed cannot be read back. CORS_ORIGINS, DEPLOY_* and GITHUB_TOKEN are the platform's. The operation is a job: poll the returned job_id with get_job_status. One operation runs on a module at a time, and none beside an operation on its project: the refusal names the running job; wait for it with get_job_status, then call again. While RationalBloks is being updated, the call is refused with 'RationalBloks is being updated': call it again in a few minutes.

Parametersenv_varsrequiredmodule_idrequired

freeze_module

Freeze Module

Stop a module's pods (scale to 0), remembering how many it ran; unfreeze_module starts them again. Freezing a frozen module changes nothing. One operation runs on a module at a time, and none beside an operation on its project: the refusal names the running job; wait for it with get_job_status, then call again. While RationalBloks is being updated, the call is refused with 'RationalBloks is being updated': call it again in a few minutes.

Parametersmodule_idrequired

unfreeze_module

Unfreeze Module

Start a frozen module's pods again, as many as it ran before the freeze. A running module is left as it is. One operation runs on a module at a time, and none beside an operation on its project: the refusal names the running job; wait for it with get_job_status, then call again. While RationalBloks is being updated, the call is refused with 'RationalBloks is being updated': call it again in a few minutes.

Parametersmodule_idrequired

scale_module

Scale Module

Run 1 or 2 pods of a module (freeze_module stops it). One operation runs on a module at a time, and none beside an operation on its project: the refusal names the running job; wait for it with get_job_status, then call again. While RationalBloks is being updated, the call is refused with 'RationalBloks is being updated': call it again in a few minutes.

Parametersreplicasrequiredmodule_idrequired

set_module_resources

Set Module Resources

Set a module's CPU and memory and rebuild it so its pods take them. The allocation is checked against the resource pool's capacity first; a refused one is restored. The operation is ASYNCHRONOUS: poll the returned job_id with get_job_status. One operation runs on a module at a time, and none beside an operation on its project: the refusal names the running job; wait for it with get_job_status, then call again. While RationalBloks is being updated, the call is refused with 'RationalBloks is being updated': call it again in a few minutes.

Parametersmemory_mbrequiredmodule_idrequiredcpu_millicoresrequired

Version history

9
  1. v0.16.1LatestOct 14, 2026
  2. v0.16.0Oct 8, 2026
  3. v0.15.0Sep 25, 2026
  4. v0.14.1Sep 22, 2026
  5. v0.14.0Sep 18, 2026
  6. v0.13.5Sep 17, 2026
  7. v0.13.4Sep 16, 2026
  8. v0.13.3Sep 16, 2026
  9. v0.13.0Sep 16, 2026

Score

90% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts

    Declare a license in the repository or the registry entry.

Other Rationalbloks integrations