mcpbeat

RationalBloks MCP Server

io.github.rationalbloks/rationalbloks-mcp
answering

RationalBloks is answering right now. Last checked 4 min ago. 146 installs a week from pypi. It exposes 45 tools. Last commit 30 Jul 2026.

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

Installs per day peak 123 · avg 27 · -48% w/w
a month agotoday
Uptime history 41 hours of history
41 hours agonow
100.0%
Uptime 24h
91 of 91 checks
45
Tools
read from the server
126 ms
Response time
average over 24h
146
Installs / week
npm and PyPI

Connect this server

Endpoint below is the one we actually reach during checks — not the one copied from a README. Last verified 4 min ago.

run in your terminal
claude mcp add rationalbloks-mcp --transport http https://mcp.rationalbloks.com/mcp
~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "rationalbloks-mcp": {
      "url": "https://mcp.rationalbloks.com/mcp"
    }
  }
}
~/.codex/config.toml
[mcp_servers.rationalbloks-mcp]
url = "https://mcp.rationalbloks.com/mcp"
.cursor/mcp.json
{
  "mcpServers": {
    "rationalbloks-mcp": {
      "url": "https://mcp.rationalbloks.com/mcp"
    }
  }
}
.vscode/mcp.json
{
  "mcpServers": {
    "rationalbloks-mcp": {
      "url": "https://mcp.rationalbloks.com/mcp"
    }
  }
}

Available tools 45

Read directly from the server with tools/list, grouped by what they act on. If a tool disappears, we record the date.

graph
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.
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 entities inside parent entities to create type hierarchies. Child entities inherit parent labels automatically. Example: { "nodes": { "Animal": { "description": "Base animal entity", "flat_labels": ["LivingThing"], "schema": { "name": {"type": "string", "required": true}, "habitat": {"type": "string"} }, "Dog": { "description": "A dog (inherits Animal labels)", "flat_labels": ["Pet"], "schema": { "breed": {"type": "string", "required": true}, "trained": {"type": "boolean"} } } } }, "relationships": { "OWNS": { "from": "Person", "to": "Animal", "cardinality": "ONE_TO_MANY" } } } 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 8. Use get_graph_template_schemas FIRST to see valid examples WORKFLOW: 1. Use get_graph_template_schemas to see valid examples 2. Create schema following the rules above 3. Call this tool 4. Monitor with get_job_status (2-5 min deployment) After creation, use get_job_status with returned job_id to monitor deployment.
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.
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).
delete_graph_project
Delete a graph project (removes GitHub repo, K8s deployments, Neo4j database, and credentials)
delete_graph_relationship
Delete a specific relationship by its internal ID. Use get_node_relationships to find relationship IDs.
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.
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.
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.
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.
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.
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.
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: Social Network (users, posts, follows), Knowledge Graph (topics, articles, authors), Product Catalog (products, categories, suppliers). You can use these templates directly with create_graph_project or modify them for your needs. TIP: Study these templates to understand the correct graph schema format before creating custom schemas.
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.
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).
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.
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.
update_graph_schema
Update a graph project's schema (saves to database, does NOT 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. Use get_graph_schema to see current schema 2. Modify following all rules 3. Call update_graph_schema (saves only) 4. Call deploy_graph_staging to apply changes 5. Monitor with get_job_status NOTE: This only saves the schema. You MUST call deploy_graph_staging afterwards to deploy.
project
create_project
Create a new RationalBloks project from a JSON schema. ⚠️ CRITICAL RULES - READ BEFORE CREATING SCHEMA: 1. FLAT FORMAT (REQUIRED): ✅ CORRECT: {users: {email: {type: "string", max_length: 255}}} ❌ WRONG: {users: {fields: {email: {type: "string"}}}} DO NOT nest under 'fields' key! 2. FIELD TYPE REQUIREMENTS: • string: MUST have "max_length" (e.g., max_length: 255) • decimal: MUST have "precision" and "scale" (e.g., precision: 10, scale: 2) • datetime: Use "datetime" NOT "timestamp" • ALL fields: MUST have "type" property 3. AUTOMATIC FIELDS (DON'T define): • id (uuid, primary key) • created_at (datetime) • updated_at (datetime) 4. USER AUTHENTICATION: ❌ NEVER create "users", "customers", "employees" tables with email/password ✅ USE built-in app_users table Example: { "employee_profiles": { "user_id": {type: "uuid", foreign_key: "app_users.id", required: true}, "department": {type: "string", max_length: 100} } } 5. AUTHORIZATION: Add user_id → app_users.id to enable "only see your own data" Example: { "orders": { "user_id": {type: "uuid", foreign_key: "app_users.id"}, "total": {type: "decimal", precision: 10, scale: 2} } } 6. FIELD OPTIONS: • required: true/false • unique: true/false • default: any value • enum: ["val1", "val2"] • foreign_key: "table.id" AVAILABLE TYPES: string, text, integer, decimal, boolean, uuid, date, datetime, json, uuid_array, integer_array, text_array, float_array Array types store PostgreSQL native arrays with automatic GIN indexing: • uuid_array: UUID[] — for sets of references (e.g., tensor coordinates) • integer_array: BIGINT[] — for dimension indices, integer sets • text_array: TEXT[] — for tags, categories, label sets • float_array: DOUBLE PRECISION[] — for weight vectors, scores GIN-indexed operators: @> (contains), <@ (contained_by), && (overlaps) BACKEND ENGINE: • python (default): FastAPI backend — mature, full-featured • rust: Axum backend — faster cold starts, lower memory, high performance WORKFLOW: 1. Use get_template_schemas FIRST to see valid examples 2. Create schema following ALL rules above 3. Call this tool (optionally choose backend_type: "python" or "rust") 4. Monitor with get_job_status (2-5 min deployment) After creation, use get_job_status with returned job_id to monitor deployment.
delete_project
Delete a project (removes GitHub repo, K8s deployments, and database)
get_project
Get detailed information about a specific project
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.
get_project_usage
Get resource usage metrics (CPU, memory) for a project
deploy
deploy_graph_production
Promote graph staging to production. Creates a separate production Neo4j instance with its own credentials and database. Requires paid plan.
deploy_graph_staging
Deploy a graph project 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.
deploy_production
Promote staging to production (requires paid plan)
deploy_staging
Deploy a project 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, 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.
schema
get_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}}}
get_schema_at_version
Get the schema as it was at a specific version/commit
update_schema
Update a project's schema (saves to database, does NOT deploy). ⚠️ CRITICAL: Follow ALL rules from create_project: • FLAT format (no 'fields' nesting) • string: MUST have max_length • decimal: MUST have precision + scale • Use "datetime" NOT "timestamp" • DON'T define: id, created_at, updated_at • 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 • Safe: {new_field: {type: "string", max_length: 100, required: false}} WORKFLOW: 1. Use get_schema to see current schema 2. Modify following ALL rules 3. Call update_schema (saves only) 4. Call deploy_staging to apply changes 5. Monitor with get_job_status NOTE: This only saves the schema. You MUST call deploy_staging afterwards to apply changes.
bulk
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"}} ]
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"}} ]
rollback
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.
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.
clusters
list_clusters
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 (paste kubeconfig / run our bootstrap) — this tool only lists pools you already registered, it never uploads cluster credentials.
fulltext
fulltext_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.
job
get_job_status
Check the status of a deployment job. STATUS VALUES: pending (job queued), running (deployment in progress), completed (success), failed (deployment failed). TIMELINE: Typical deployment takes 2-5 minutes. If status is 'running' for >10 minutes, check get_project_info for detailed pod status. If status is 'failed', use get_project_info to see deployment errors and check schema format (must be FLAT, no 'fields' nesting).
node
get_node_relationships
Get all relationships connected to a specific node. Supports direction filtering (incoming, outgoing, both) and relationship type filtering.
projects
list_projects
List all your RationalBloks projects with their status and URLs
rename
rename_project
Rename a project (changes display name, not project_code)
subscription
get_subscription_status
Get your subscription tier, limits, and usage
template
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: E-commerce (products, orders, customers), Team collaboration (projects, tasks, users), General purpose templates. You can use these templates directly with create_project or modify them for your needs. TIP: Study these templates to understand the correct schema format before creating custom schemas.
traverse
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.
user
get_user_info
Get information about the authenticated user
version
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.

Endpoints

URLTransportStateLatencyChecked
https://mcp.rationalbloks.com/mcp streamable-http answering 124 ms 4 min ago

RationalBloks — questions

Answers built from our own checks of this server.

What can RationalBloks do?
It exposes 45 tools, read directly from the server on our last check. Among them: bulk_create_graph_nodes, bulk_create_graph_relationships, create_graph_node, create_graph_project, create_graph_relationship, create_project and 39 more. The full list with descriptions is on this page — we take it from the server itself via tools/list, not from a README. How MCP servers expose tools in the first place →
What is RationalBloks mostly used for?
Its tools cluster around graph, project and deploy. That is what this server is built to work with — the grouping comes from the actual tool names, not from a category we assigned.
Is RationalBloks working right now?
We send a real MCP handshake every 15 minutes. Over the last 24 hours 91 of 91 checks got a reply (100.0%), average response time 126 ms. The bar chart above shows every period we have measured.
How do I connect RationalBloks?
Copy the ready config from this page — we generate it for Claude Code, Claude Desktop, Codex, Cursor and VS Code, each with the file path that client actually reads. It is a remote server, so there is nothing to install — the client connects to the address.
Does RationalBloks need an API key?
No. RationalBloks completed a full MCP handshake with us as an anonymous client and listed its tools without asking for anything. All 45 of them are readable on this page. This is what we observed, not what the docs claim.
How fast is RationalBloks?
It answers our handshake in 126 ms on average, which is faster than 78% of all working MCP servers we measure. That puts it in the quick quarter of the ecosystem. The comparison comes from our own checks across the whole registry, every 15 minutes.
How many people use RationalBloks?
The pypi package rationalbloks-mcp was installed 146 times in the last week. Week over week that is -48%. We show installs rather than GitHub stars on purpose: a star is a bookmark, an install is someone actually running it.
Is RationalBloks open source?
Yes — it is published under the NOASSERTION licence, written in Python and 1 stars on GitHub. The source link is on this page, so you can read exactly what it does with your data before you connect it.