# RationalBloks (remote · mcp.rationalbloks.com)

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

- Trust score: 62/100 (medium)
- Change this week: +1
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-03

## Components

- remote · `mcp.rationalbloks.com`: 62/100 (this document), [markdown](https://verifymcp.io/servers/rationalbloks-rationalbloks-mcp/mcp.md), [page](https://verifymcp.io/servers/rationalbloks-rationalbloks-mcp/mcp)
- pypi · `rationalbloks-mcp`: 10/100, [markdown](https://verifymcp.io/servers/rationalbloks-rationalbloks-mcp/rationalbloks-mcp.md), [page](https://verifymcp.io/servers/rationalbloks-rationalbloks-mcp/rationalbloks-mcp)

## Channel facts

- Endpoint: `https://mcp.rationalbloks.com/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `0.6.1`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-03.

- **Endpoint Security**: 46/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - Authorisation check failed: no authorisation is required to call this server, and it exposes a tool marked destructive (delete_project).
  - HTTPS not yet verified: we couldn't determine whether a plaintext access path exists.
  - HSTS check failed: the Strict-Transport-Security header is absent.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 76/100
  - 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).
  - AI-judged instruction clarity (good).
  - Context-footprint check failed: tool/resource definitions use about 7106 tokens (~148/item across 48 items; 45 tools + 3 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 24/100
  - Stability check failed: schema churn in the 8 days we've observed: 0 tool removals, 2 breaking changes, 0 auth/transport breaks, 1 additions.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### Claude

```bash
claude mcp add --transport http rationalbloks-rationalbloks-mcp https://mcp.rationalbloks.com/mcp
```

### Codex

```toml
[mcp_servers.rationalbloks-rationalbloks-mcp]
url = "https://mcp.rationalbloks.com/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "rationalbloks-rationalbloks-mcp": {
      "type": "remote",
      "url": "https://mcp.rationalbloks.com/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add rationalbloks-rationalbloks-mcp --url https://mcp.rationalbloks.com/mcp --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  rationalbloks-rationalbloks-mcp:
    url: "https://mcp.rationalbloks.com/mcp"
```

### Other

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

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-02 (score 62, +1)

No change was recorded against any check on this day. Stability & Change Management went from 17 to 21.

### 2026-07-31 (score 61, −2)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-30 (score 63, 0)

- [security regression] Stability: 0.10 → fail
- [security regression] A breaking change shipped without a version bump: still 0.10.2
- [security] Tool “list_clusters” rewrote its description, which is the text the model reads
- [functional regression] “create_project” made “cluster_id” required, so existing callers break
- [functional regression] “create_graph_project” made “cluster_id” required, so existing callers break
- [cosmetic] “create_project” reworded the description of “cluster_id”
- [cosmetic] “create_graph_project” reworded the description of “cluster_id”

### 2026-07-29 (score 63, +1)

No change was recorded against any check on this day. Stability & Change Management went from 7 to 10. That category is still filling its 30-day observation window: 2 days of observed history at the previous scan, 3 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-07-28 (score 62, +1)

No change was recorded against any check on this day. Stability & Change Management went from 3 to 7. That category is still filling its 30-day observation window: 1 days of observed history at the previous scan, 2 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-07-27 (score 61, 0)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-26 (score 61)

First indexed and scored.

## MCP tools (45)

### `list_projects` (~21 tokens)

List Projects

List all your RationalBloks projects with their status and URLs

### `get_project` (~28 tokens)

Get Project Details

Get detailed information about a specific project

Input parameters:

- `project_id` (string, required): Project ID (UUID)

### `get_schema` (~117 tokens)

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}}}

Input parameters:

- `project_id` (string, required): Project ID (UUID)

### `get_user_info` (~16 tokens)

Get User Info

Get information about the authenticated user

### `list_clusters` (~96 tokens)

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 (paste kubeconfig / run our bootstrap) — this tool only lists pools you already registered, it never uploads cluster credentials.

### `get_job_status` (~117 tokens)

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).

Input parameters:

- `job_id` (string, required): Job ID returned from deployment operations

### `get_project_info` (~137 tokens)

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.

Input parameters:

- `project_id` (string, required): Project ID (UUID)

### `get_version_history` (~74 tokens)

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.

Input parameters:

- `project_id` (string, required): Project ID (UUID)

### `get_template_schemas` (~130 tokens)

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.

### `get_subscription_status` (~19 tokens)

Get Subscription Status

Get your subscription tier, limits, and usage

### `get_project_usage` (~34 tokens)

Get Project Usage

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

Input parameters:

- `project_id` (string, required): Project ID (UUID)

### `get_schema_at_version` (~47 tokens)

Get Schema at Version

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

Input parameters:

- `project_id` (string, required): Project ID (UUID)
- `version` (string, required): Commit SHA of the version

### `create_project` (~826 tokens)

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):…

Input parameters:

- `backend_type` (string): Backend engine: 'python' (FastAPI, default) or 'rust' (Axum, faster). Default: python
- `cluster_id` (string, required): REQUIRED — BYOC resource pool ID (from list_clusters) to deploy this project onto your own cluster. Owned hosting is retired: a project we operate must run on your own infrastructure. Register a pool…
- `description` (string): Optional project description
- `name` (string, required): Project name
- `schema` (object, required): JSON schema in FLAT format (table_name → field_name → properties). Every field MUST have a 'type' property. Use get_template_schemas to see valid examples.

### `update_schema` (~267 tokens)

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.

Input parameters:

- `project_id` (string, required): Project ID (UUID)
- `schema` (object, required): New JSON schema in FLAT format (table_name → field_name → properties). Every field MUST have a 'type' property.

### `deploy_staging` (~173 tokens)

Deploy to 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.

Input parameters:

- `project_id` (string, required): Project ID (UUID)

### `deploy_production` (~30 tokens)

Deploy to Production

Promote staging to production (requires paid plan)

Input parameters:

- `project_id` (string, required): Project ID (UUID)

### `delete_project` (~38 tokens)

Delete Project

Delete a project (removes GitHub repo, K8s deployments, and database)

Input parameters:

- `project_id` (string, required): Project ID (UUID)

### `rollback_project` (~124 tokens)

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.

Input parameters:

- `environment` (string): Environment: staging or production (default: staging)
- `project_id` (string, required): Project ID (UUID)
- `version` (string, required): Commit SHA or version to rollback to

### `rename_project` (~45 tokens)

Rename Project

Rename a project (changes display name, not project_code)

Input parameters:

- `name` (string, required): New display name for the project
- `project_id` (string, required): Project ID (UUID)

### `get_graph_schema` (~62 tokens)

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.

Input parameters:

- `project_id` (string, required): Project ID (UUID)

### `get_graph_template_schemas` (~140 tokens)

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` (~61 tokens)

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.

Input parameters:

- `project_id` (string, required): Project ID (UUID)

### `get_graph_schema_at_version` (~72 tokens)

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.

Input parameters:

- `project_id` (string, required): Project ID (UUID)
- `version` (string, required): Commit SHA of the version to retrieve

### `get_graph_project_info` (~58 tokens)

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.

Input parameters:

- `project_id` (string, required): Project ID (UUID)

### `create_graph_project` (~740 tokens)

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 type…

Input parameters:

- `cluster_id` (string, required): REQUIRED — BYOC resource pool ID (from list_clusters) to deploy this graph project onto your own cluster. Owned hosting is retired: a project we operate must run on your own infrastructure. Register…
- `description` (string): Optional project description
- `name` (string, required): Project name
- `schema` (object, required): Graph schema with 'nodes' and optionally 'relationships' keys. Use get_graph_template_schemas to see valid examples.

### `update_graph_schema` (~237 tokens)

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.

Input parameters:

- `project_id` (string, required): Project ID (UUID)
- `schema` (object, required): New graph schema with 'nodes' and optionally 'relationships' keys.

### `deploy_graph_staging` (~118 tokens)

Deploy Graph to 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.

Input parameters:

- `project_id` (string, required): Project ID (UUID)

### `deploy_graph_production` (~47 tokens)

Deploy Graph to Production

Promote graph staging to production. Creates a separate production Neo4j instance with its own credentials and database. Requires paid plan.

Input parameters:

- `project_id` (string, required): Project ID (UUID)

### `delete_graph_project` (~45 tokens)

Delete Graph Project

Delete a graph project (removes GitHub repo, K8s deployments, Neo4j database, and credentials)

Input parameters:

- `project_id` (string, required): Project ID (UUID)

### `rollback_graph_project` (~118 tokens)

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.

Input parameters:

- `environment` (string): Environment: staging or production (default: staging)
- `project_id` (string, required): Project ID (UUID)
- `version` (string, required): Commit SHA to rollback to

### `create_graph_node` (~196 tokens)

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.

Input parameters:

- `data` (object, required): Node properties matching the entity schema
- `entity_id` (string, required): Unique identifier for the node
- `entity_type` (string, required): Entity key (e.g., 'person', 'concept')
- `environment` (string): Environment: staging or production (default: staging)
- `project_id` (string, required): Project ID (UUID)

### `get_graph_node` (~95 tokens)

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.

Input parameters:

- `entity_id` (string, required): The node's entity_id
- `entity_type` (string, required): Entity key (e.g., 'person', 'concept')
- `environment` (string): Environment: staging or production (default: staging)
- `project_id` (string, required): Project ID (UUID)

### `list_graph_nodes` (~121 tokens)

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).

Input parameters:

- `entity_type` (string, required): Entity key (e.g., 'person', 'concept')
- `environment` (string): Environment: staging or production (default: staging)
- `limit` (integer): Max results (default: 100, max: 1000)
- `offset` (integer): Pagination offset (default: 0)
- `project_id` (string, required): Project ID (UUID)

### `update_graph_node` (~108 tokens)

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.

Input parameters:

- `data` (object, required): Properties to update (partial update)
- `entity_id` (string, required): The node's entity_id
- `entity_type` (string, required): Entity key (e.g., 'person', 'concept')
- `environment` (string): Environment: staging or production (default: staging)
- `project_id` (string, required): Project ID (UUID)

### `delete_graph_node` (~99 tokens)

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).

Input parameters:

- `entity_id` (string, required): The node's entity_id
- `entity_type` (string, required): Entity key (e.g., 'person', 'concept')
- `environment` (string): Environment: staging or production (default: staging)
- `project_id` (string, required): Project ID (UUID)

### `create_graph_relationship` (~187 tokens)

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.

Input parameters:

- `data` (object): Relationship properties (optional)
- `environment` (string): Environment: staging or production (default: staging)
- `from_id` (string, required): Source node entity_id
- `project_id` (string, required): Project ID (UUID)
- `rel_type` (string, required): Relationship key (e.g., 'authored', 'related_to')
- `to_id` (string, required): Target node entity_id

### `get_node_relationships` (~127 tokens)

Get Node Relationships

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

Input parameters:

- `direction` (string): Filter: incoming, outgoing, or both (default: both)
- `entity_id` (string, required): The node's entity_id
- `entity_type` (string, required): Entity key of the node
- `environment` (string): Environment: staging or production (default: staging)
- `project_id` (string, required): Project ID (UUID)
- `rel_type_filter` (string): Filter by relationship type (UPPER_SNAKE_CASE)

### `delete_graph_relationship` (~83 tokens)

Delete Graph Relationship

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

Input parameters:

- `environment` (string): Environment: staging or production (default: staging)
- `project_id` (string, required): Project ID (UUID)
- `rel_id` (integer, required): Internal relationship ID (from get_node_relationships)
- `rel_type` (string, required): Relationship key

### `bulk_create_graph_nodes` (~231 tokens)

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

Input parameters:

- `entity_type` (string, required): Entity key for all nodes
- `environment` (string): Environment: staging or production (default: staging)
- `nodes` (array, required): List of nodes. Each: {entity_id: string, data: {properties}}
- `project_id` (string, required): Project ID (UUID)

### `bulk_create_graph_relationships` (~213 tokens)

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

Input parameters:

- `environment` (string): Environment: staging or production (default: staging)
- `project_id` (string, required): Project ID (UUID)
- `rel_type` (string, required): Relationship key for all relationships
- `relationships` (array, required): List of relationships. Each: {from_id, to_id, data?}

### `search_graph_nodes` (~193 tokens)

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.

Input parameters:

- `entity_type` (string): Entity key to filter by (optional — omit to search all types)
- `environment` (string): Environment: staging or production (default: staging)
- `filters` (object, required): Property filters. Prefix value with ~ for contains search.
- `limit` (integer): Max results (default: 100, max: 1000)
- `offset` (integer): Pagination offset (default: 0)
- `project_id` (string, required): Project ID (UUID)

### `fulltext_search_graph` (~203 tokens)

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.

Input parameters:

- `entity_type` (string): Entity key to filter by (optional — omit to search all types)
- `environment` (string): Environment: staging or production (default: staging)
- `limit` (integer): Max results (default: 50, max: 500)
- `offset` (integer): Pagination offset (default: 0)
- `project_id` (string, required): Project ID (UUID)
- `query` (string, required): Search text (case-insensitive, min 2 chars)

### `traverse_graph` (~256 tokens)

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.

Input parameters:

- `direction` (string): Direction: outgoing, incoming, or both (default: both)
- `environment` (string): Environment: staging or production (default: staging)
- `limit` (integer): Max results (default: 100, max: 1000)
- `max_depth` (integer): Maximum traversal depth (default: 3, max: 10)
- `project_id` (string, required): Project ID (UUID)
- `relationship_types` (array): Filter by relationship types (UPPER_SNAKE_CASE). Omit for all types.
- `start_entity_id` (string, required): Entity ID of the starting node
- `start_entity_type` (string, required): Entity key of the starting node

### `get_graph_statistics` (~77 tokens)

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.

Input parameters:

- `environment` (string): Environment: staging or production (default: staging)
- `project_id` (string, required): Project ID (UUID)

### `get_graph_data_schema` (~112 tokens)

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.

Input parameters:

- `environment` (string): Environment: staging or production (default: staging)
- `project_id` (string, required): Project ID (UUID)

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/rationalbloks-rationalbloks-mcp/mcp#diagnostics

## Score history

- 2026-08-03: 62
- 2026-08-02: 62
- 2026-08-01: 61
- 2026-07-31: 61
- 2026-07-30: 63
- 2026-07-29: 63
- 2026-07-28: 62
- 2026-07-27: 61
- 2026-07-26: 61

## Links

- Remote endpoint: https://mcp.rationalbloks.com/mcp
- Repository: https://github.com/rationalbloks/rationalbloks-mcp
- Changelog RSS feed: https://verifymcp.io/servers/rationalbloks-rationalbloks-mcp/mcp/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/rationalbloks-rationalbloks-mcp/mcp/changelog.json
- HTML version of this page: https://verifymcp.io/servers/rationalbloks-rationalbloks-mcp/mcp
