mcpField
R
RationalBloks

RationalBloks

远程服务
github.com/rationalbloks开发工具12 周前更新
代码仓库

关于 RationalBloks

RationalBloks MCP 让 AI Agent 在用户或组织自有基础设施上创建和管理关系型或图项目、模式、部署及模块。工具区分读取、写入和破坏性操作,并由 API 密钥范围控制可用工具。

主要功能

  1. 01根据 JSON 模式创建项目
  2. 02管理关系型和图模式
  3. 03部署到 staging 和 production
  4. 04检查迁移计划及数据删除项
  5. 05操作图数据和模块
  6. 06区分读取、写入和破坏性工具权限

适用场景

  1. 01根据模式生成 API 项目
  2. 02部署前检查模式迁移影响
  3. 03将项目从 staging 发布到 production
  4. 04搜索或更新图数据与模块

MCP 相关

将 RationalBloks 项目、模式、部署、图数据和模块操作作为 MCP 工具提供。MCP 客户端可连接远程 Streamable HTTP 端点或运行本地服务;API 密钥范围决定可用工具。

配置

远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。

服务地址https://mcp.rationalbloks.com/mcp
一键复制安装命令
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。

安装包
pypirationalbloks-mcp0.6.1

工具

64

此工具无需参数。

详细介绍

RationalBloks MCP 服务

几分钟内即可部署生产级 API。 提供项目、架构、部署、模块、对象存储和图数据工具,并运行在您自己的基础设施上(自托管或使用您自己的 BYOC 集群)。

许可证 Python PyPI

这是什么?

RationalBloks MCP 让 AI Agent(Claude Code、Claude Desktop、Cursor、VS Code 等)能够根据 JSON 架构部署生产级 API,并部署和运行基于这些 API 构建的前端和后端。无需编写后端代码,无需管理基础设施。

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

安装

# 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

快速开始

1. 获取 API 密钥

访问 rationalbloks.com/settings 并创建 API 密钥。密钥包含作用域:只读密钥只能使用读取工具,读写密钥可以使用所有工具。服务只会列出您的密钥可以调用的工具。

2. 配置您的 AI Agent

Claude Code — 远程服务(无需安装):

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

或使用本地服务:

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

--scope project 会将服务写入仓库的 .mcp.json,以便团队共享。使用 "Authorization": "Bearer ${RATIONALBLOKS_API_KEY}" 将密钥保留在文件之外:Claude Code 会从每位开发者的环境中展开该变量。

VS Code — 添加到 .vscode/mcp.json(Cursor:使用 mcpServers 键添加到 .cursor/mcp.json):

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

Claude Desktop — 添加到 claude_desktop_config.json:

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

**其他客户端:**将其指向 https://mcp.rationalbloks.com/mcp(Streamable HTTP),并设置 Authorization: Bearer rb_sk_...。

3. Claude Code 权限

每个可能导致数据丢失的工具都带有 destructiveHint: true,其他工具则不会导致数据丢失。一条允许规则即可覆盖此服务,并通过询问规则让可能导致数据丢失的工具在执行前提示确认。Claude Code 会先评估询问规则,再评估允许规则,因此即使服务已获允许,这些工具仍会提示确认;在自动模式下也仍会提示,因为询问规则会在分类器之前运行。将以下内容添加到 .claude/settings.json(项目级)或 ~/.claude/settings.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"
    ]
  }
}

将 "mcp__rationalbloks__deploy_production" 添加到 ask,即可在每次生产发布前自行批准。

**每次更改前都询问:**改为只允许读取工具。这些规则匹配所有读取工具,不匹配其他工具:

{
  "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"
    ]
  }
}

**只读服务:**使用只读密钥注册第二个服务。它只会列出读取工具,且平台会拒绝所有其他调用,因此一条规则即可允许所有读取工具:

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

自动模式只会从 ~/.claude/settings.json、托管设置或 --settings 读取 autoMode,不会从项目的 .claude/settings.json 读取。如果其分类器阻止了常规的 RationalBloks 调用,请在此处描述您的项目,并保留 $defaults(将 MyProject 和 apps.yourdomain.com 替换为您的项目名称和集群域名):

{
  "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"
    ]
  }
}

运行 claude auto-mode config 查看生效的规则,或在 /permissions 中编辑规则(Auto mode 标签页)。


工具

读取工具只负责读取。写入工具会修改内容,但不会丢失数据。破坏性工具可能导致数据丢失,并带有 destructiveHint: true:它们会替换整个架构(update_schema、update_graph_schema)、删除、回滚、部署会删除数据的计划(deploy_destructive),或覆盖模块的环境(set_module_env)。

如果计划会删除表或字段,或更改字段类型导致其存储值被舍入或截断(例如,缩小小数位数或将小数改为整数、将日期时间改为日期),则该计划会删除数据。部署工具会拒绝此类计划并列出每项删除操作;deploy_destructive 会应用该计划。

长时间运行的操作(创建、部署、回滚、删除、模块操作)会作为作业运行:工具会返回一个 job_id,然后可通过 get_job_status 查询作业结果。

关系型项目
工具类型描述
list_projects读取列出你的所有项目
get_project读取获取项目详情
get_schema读取获取当前 JSON 架构(可选择仅查看部分表或字段)
get_user_info读取获取已验证用户的信息
list_clusters读取列出你的 BYOC 资源池(客户端自有集群)
get_job_status读取查询作业(创建、部署、晋级、回滚、删除、模块操作)的结果
list_project_jobs读取列出项目的作业,按时间从新到旧排序,并显示每项作业的结果
get_project_info读取获取包含 K8s 状态的详细项目信息
get_version_history读取获取 Git 提交历史
get_template_schemas读取获取预构建的架构模板
get_schema_reference读取获取高级架构功能参考(__policy__、computed、__constraints__、__audit__)
get_subscription_status读取获取套餐和用量限制
get_project_usage读取获取 CPU/内存指标
get_project_storage_usage读取获取对象存储的文件数和已用字节数,以及对应限额
list_project_files读取列出已上传的文件(元数据和公开 URL)
get_schema_at_version读取获取指定提交中的架构
preview_schema_change读取预览更改(补丁操作或完整架构):迁移计划及所有删除操作,不保存任何内容
create_project写入根据架构创建项目(cluster_id 为你的某个 BYOC 资源池;backend_type 为 python 或 rust)
patch_schema写入修改部分架构:添加、重命名和设置表及字段。不会删除任何内容
deploy_staging写入将已保存的架构部署到预发布环境。若计划会删除数据,则拒绝部署
deploy_production写入将预发布环境晋级到生产环境。若计划会删除数据,则拒绝部署
redeploy_project写入根据项目正在运行的架构重建并推出预发布环境,不更改架构
rename_project写入重命名项目
update_schema破坏性替换整个架构:未保留的表或字段会在下次部署时被删除
drop_schema_items破坏性从已保存的架构中删除表或字段
deploy_destructive破坏性将会删除数据的计划部署到预发布或生产环境(关系型或图)
rollback_project破坏性将架构和代码回滚到先前版本
delete_project破坏性永久删除项目
图谱项目
工具类型描述
get_graph_schema读取获取图谱项目的架构
get_graph_template_schemas读取预置的图谱架构模板
get_graph_version_history读取图谱架构版本历史
get_graph_schema_at_version读取获取特定版本的架构
get_graph_project_info读取获取包含 K8s/Neo4j 状态的图谱项目信息
create_graph_project写入创建 Neo4j 图谱项目
deploy_graph_staging写入将已保存的图谱架构部署到预发布环境。若部署计划会删除数据,则拒绝执行
deploy_graph_production写入将图谱预发布环境提升至生产环境。若部署计划会删除数据,则拒绝执行
update_graph_schema破坏性操作替换整个图谱架构:未包含的内容会在下次部署时被删除
rollback_graph_project破坏性操作将图谱项目回滚到先前版本
delete_graph_project破坏性操作删除图谱项目
图谱数据
工具类型描述
get_graph_node读取按 ID 获取节点
list_graph_nodes读取按实体类型列出节点
get_node_relationships读取获取节点的关系
search_graph_nodes读取按属性筛选条件搜索节点
fulltext_search_graph读取跨所有字段进行全文搜索
traverse_graph读取从某个节点遍历图谱
get_graph_statistics读取图谱统计信息(计数)
get_graph_data_schema读取已部署的数据架构
create_graph_node写入创建节点
update_graph_node写入更新节点属性
create_graph_relationship写入创建关系
bulk_create_graph_nodes写入创建最多 500 个节点
bulk_create_graph_relationships写入创建最多 500 个关系
delete_graph_node破坏性操作删除节点及其关系
delete_graph_relationship破坏性操作删除关系
模块

模块是项目自有的前端(frontblok)或后端(logicblok),基于 GitHub 仓库构建,并与项目一同运行。

工具类型描述
list_modules读取项目的模块:ID、类型、仓库、URL、状态、Pod、资源以及最近构建的镜像
deploy_module写入从 GitHub 仓库部署新模块
redeploy_module写入根据模块仓库默认分支的最新提交重新构建模块并发布
update_module写入重命名模块或将其指向其他仓库
freeze_module写入停止模块的 Pod,并记录其运行数量
unfreeze_module写入重新启动已冻结模块的 Pod
scale_module写入运行 1 或 2 个模块 Pod
set_module_resources写入设置模块的 CPU 和内存,并重新构建
set_module_env破坏性操作设置或移除环境变量(合并操作:未指定的变量会保留);变量值不会被读回
delete_module破坏性操作移除模块

架构格式

架构必须采用 FLAT 格式:

{
  "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}
  }
}
字段类型
类型必需属性
stringmax_length
text无
integer无
decimalprecision、scale
boolean无
uuid无
date无
datetime无
json无
自动生成的字段

以下字段会自动生成,请勿定义:

  • id(UUID 主键)
  • created_at(datetime)
  • updated_at(datetime)
  • row_version(integer:行的版本号,插入时为 1,每次更新时递增 1)
用户身份验证

使用内置的 app_users 表:

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

get_schema_reference 涵盖高级功能:行策略、计算字段、唯一组(对包含可空列的组使用 nulls_not_distinct,对在提交时检查的组使用 deferrable)、审计跟踪、生成的 API 的范围限定删除,以及声明所读取 row_version 的写入(If-Match、if_version)。


前端

进行前端开发时,请使用我们的 NPM 包:

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

这些包提供:

  • frontblok-auth:身份验证、登录、令牌、用户上下文
  • frontblok-crud:通过 getApi().getAll()、getApi().create() 等执行通用 CRUD 操作

环境变量

变量说明默认值
RATIONALBLOKS_API_KEY您的 API 密钥(stdio;HTTP 客户端会在每个请求中将其作为 Bearer 令牌发送)。如果未设置,服务会列出其工具,并在每次调用时说明如何设置该密钥-
TRANSPORTstdio 或 httpstdio
HOST / PORTTRANSPORT=http 时的绑定地址0.0.0.0 / 8000
LOGICBLOK_URLLogicBlok 网关基础 URLhttps://logicblok.rationalbloks.com
RATIONALBLOKS_DEBUG在启动错误时输出完整回溯信息未设置

支持

许可证

专有 - 版权所有 2026 RationalBloks。保留所有权利。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。