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

What Is This?
RationalBloks MCP lets AI agents (Claude, Cursor, etc.) deploy production APIs from a JSON schema. 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
uvx rationalbloks-mcp@latest
pip install rationalbloks-mcp
Quick Start
1. Get Your API Key
Visit rationalbloks.com/settings and create an API key.
VS Code - Add to .vscode/mcp.json (Cursor: .cursor/mcp.json with a mcpServers key):
{
"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:
{
"mcpServers": {
"rationalbloks": {
"command": "uvx",
"args": ["rationalbloks-mcp@latest"],
"env": {
"RATIONALBLOKS_API_KEY": "rb_sk_your_key_here"
}
}
}
}
Remote (no install): point any MCP client at https://mcp.rationalbloks.com/mcp (Streamable HTTP) with Authorization: Bearer rb_sk_....
| Tool | Description |
|---|
list_projects | List all your projects |
get_project | Get project details |
get_schema | Get current JSON schema |
get_user_info | Get authenticated user info |
get_job_status | Check deployment job status |
list_project_jobs | A project's jobs, newest first, each with its outcome (kept for the life of the project) |
get_project_info | Detailed project info with K8s status |
get_version_history | Git commit history |
get_template_schemas | Pre-built schema templates |
get_schema_reference | Advanced schema features reference (__policy__, computed, __constraints__, __audit__) |
get_subscription_status | Plan and usage limits |
get_project_usage | CPU/memory metrics |
get_project_storage_usage | Object-storage file count and bytes used vs limits |
list_project_files | List uploaded files (metadata + public URLs) |
get_schema_at_version | Schema at specific commit |
list_clusters | List your BYOC resource pools (client-owned clusters) |
| Tool | Description |
|---|
create_project | Create new project from schema (cluster_id of one of your BYOC pools is required; backend_type python or rust) |
update_schema | Update project schema (dry_run: true previews the migration plan without saving) |
deploy_staging | Deploy to staging environment |
deploy_production | Deploy to production |
delete_project | Delete project permanently |
rollback_project | Rollback to previous version |
rename_project | Rename project |
| Tool | Description |
|---|
get_graph_schema | Get graph project schema |
get_graph_template_schemas | Pre-built graph schema templates |
get_graph_version_history | Graph schema version history |
get_graph_schema_at_version | Schema at specific version |
get_graph_project_info | Graph project info with K8s/Neo4j status |
create_graph_project | Create Neo4j graph project |
update_graph_schema | Update graph schema |
deploy_graph_staging | Deploy graph to staging |
deploy_graph_production | Deploy graph to production |
delete_graph_project | Delete graph project |
rollback_graph_project | Rollback graph to previous version |
| Tool | Description |
|---|
create_graph_node | Create a single node |
get_graph_node | Get node by ID |
list_graph_nodes | List nodes by entity type |
update_graph_node | Update node properties |
delete_graph_node | Delete a node |
create_graph_relationship | Create a relationship |
get_node_relationships | Get node's relationships |
delete_graph_relationship | Delete a relationship |
bulk_create_graph_nodes | Bulk create nodes |
bulk_create_graph_relationships | Bulk create relationships |
search_graph_nodes | Search nodes by property filters |
fulltext_search_graph | Full-text search across all fields |
traverse_graph | Traverse graph from a node |
get_graph_statistics | Get graph statistics (counts) |
get_graph_data_schema | Get deployed data schema |
Schemas must be in FLAT format:
{
"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
| Type | Required Properties |
|---|
string | max_length |
text | None |
integer | None |
decimal | precision, scale |
boolean | None |
uuid | None |
date | None |
datetime | None |
json | None |
Auto-Generated Fields
These are automatic - don't define them:
id (UUID primary key)
created_at (datetime)
updated_at (datetime)
User Authentication
Use the built-in app_users table:
{
"employee_profiles": {
"user_id": {"type": "uuid", "foreign_key": "app_users.id", "required": true},
"department": {"type": "string", "max_length": 100}
}
}
Frontend
For frontend development, use our NPM packages:
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
| Variable | Description | Default |
|---|
RATIONALBLOKS_API_KEY | Your API key (required for stdio; HTTP clients send it as a Bearer token per request) | - |
TRANSPORT | stdio or http | stdio |
HOST / PORT | Bind address for TRANSPORT=http | 0.0.0.0 / 8000 |
LOGICBLOK_URL | LogicBlok gateway base URL | https://logicblok.rationalbloks.com |
RATIONALBLOKS_DEBUG | Print full tracebacks on startup errors | unset |
Support
License
Proprietary - Copyright 2026 RationalBloks. All Rights Reserved.