RationalBloks

DevOps

by rationalbloks

Deploy production REST APIs from JSON schemas in seconds. Manage projects, schemas, and deployments.

什么是 RationalBloks?

Deploy production REST APIs from JSON schemas in seconds. Manage projects, schemas, and deployments.

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.

code
"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)

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), audit trails, and the generated API's scoped deletes.


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.

<!-- mcp-name: com.rationalbloks/mcp -->

常见问题

RationalBloks 是什么?

Deploy production REST APIs from JSON schemas in seconds. Manage projects, schemas, and deployments.

相关 Skills

更新日志

by alirezarezvani

Universal
热门

基于 Conventional Commits 自动解析提交记录、判断语义化版本升级并生成规范 changelog,适合在 CI、发版前检查提交格式并批量输出可审计发布说明。

✎ 自动生成和管理更新日志与发布说明,帮团队把版本变更说清楚;聚焦版本化与流程自动化,省时又更规范。

DevOps
未扫描26.0k

可观测性设计

by alirezarezvani

Universal
热门

面向生产系统规划可落地的可观测性体系,串起指标、日志、链路追踪与 SLI/SLO、错误预算、告警和仪表盘设计,适合搭建监控平台与优化故障响应。

✎ 把监控、日志、链路追踪串起来,帮助团队从设计阶段构建可观测性,排障更快、系统演进更稳。

DevOps
未扫描26.0k

环境密钥管理

by alirezarezvani

Universal
热门

统一梳理dev/staging/prod的.env和密钥流程,自动生成.env.example、校验必填变量、扫描Git历史泄漏,并联动Vault、AWS SSM、1Password、Doppler完成轮换。

✎ 统一管理环境变量、密钥与配置,减少泄露和部署混乱,安全治理与团队协作一起做好,DevOps 场景很省心。

DevOps
未扫描26.0k

相关 MCP Server

kubefwd

编辑精选

by txn2

热门

kubefwd 是让 AI 帮你批量转发 Kubernetes 服务到本地的开发神器。

✎ 微服务开发者最头疼的本地调试问题,它一键搞定——自动分配 IP 避免端口冲突,还能用自然语言查询状态。但依赖 AI 工作流,纯命令行爱好者可能觉得不够直接。

DevOps
4.2k

Cloudflare

编辑精选

by Cloudflare

热门

Cloudflare MCP Server 是让你用自然语言管理 Workers、KV 和 R2 等云资源的工具。

✎ 这个工具解决了开发者频繁切换控制台和文档的痛点,特别适合那些在 Cloudflare 上部署无服务器应用、需要快速调试或管理配置的团队。不过,由于它依赖多个子服务器,初次设置可能有点繁琐,建议先从 Workers Bindings 这类核心功能入手。

DevOps
4.1k

Terraform

编辑精选

by hashicorp

热门

Terraform MCP Server 是让 AI 助手直接操作 Terraform Registry 和 HCP Terraform 的桥梁。

✎ 如果你经常在 Terraform 里翻文档找模块配置,这个服务器能省不少时间——直接问 Claude 就能生成准确的代码片段。最适合管理多云基础设施的团队,但注意它目前只适合本地使用,别在生产环境里暴露 HTTP 端点。

DevOps
1.5k

评论