[{"slug":"ZV-2026-2013","server_name":"mcp.rationalbloks.com","severity":"breaking","title":"mcp.rationalbloks.com: Tool bulk_create_graph_nodes was removed.","summary":"[breaking] Tool bulk_create_graph_nodes was removed. [breaking] Tool bulk_create_graph_relationships was removed. [breaking] Tool create_graph_node was removed. [breaking] Tool create_graph_project was removed. [breaking] Tool create_graph_relationship was removed. [breaking] Tool create_project was removed. [breaking] Tool delete_graph_node was removed. [breaking] Tool delete_graph_project was removed. [breaking] Tool delete_graph_relationship was removed. [breaking] Tool delete_module was removed. [breaking] Tool delete_project was removed. [breaking] Tool deploy_destructive was removed. [breaking] Tool deploy_graph_production was removed. [breaking] Tool deploy_graph_staging was removed. [breaking] Tool deploy_module was removed. [breaking] Tool deploy_production was removed. [breaking] Tool deploy_staging was removed. [breaking] Tool drop_schema_items was removed. [breaking] Tool freeze_module was removed. [breaking] Tool fulltext_search_graph was removed. [breaking] Tool get_graph_data_schema was removed. [breaking] Tool get_graph_node was removed. [breaking] Tool get_graph_project_info was removed. [breaking] Tool get_graph_schema was removed. [breaking] Tool get_graph_schema_at_version was removed. [breaking] Tool get_graph_statistics was removed. [breaking] Tool get_graph_template_schemas was removed. [breaking] Tool get_graph_version_history was removed. [breaking] Tool get_job_status was removed. [breaking] Tool get_node_relationships was removed. [breaking] Tool get_project was removed. [breaking] Tool get_project_info was removed. [breaking] Tool get_project_storage_usage was removed. [breaking] Tool get_project_usage was removed. [breaking] Tool get_schema was removed. [breaking] Tool get_schema_at_version was removed. [breaking] Tool get_schema_reference was removed. [breaking] Tool get_subscription_status was removed. [breaking] Tool get_template_schemas was removed. [breaking] Tool get_user_info was removed. [breaking] Tool get_version_history was re","changes":[{"kind":"tool_removed","tool":"bulk_create_graph_nodes","detail":"Tool `bulk_create_graph_nodes` was removed.","severity":"breaking"},{"kind":"tool_removed","tool":"bulk_create_graph_relationships","detail":"Tool `bulk_create_graph_relationships` was removed.","severity":"breaking"},{"kind":"tool_removed","tool":"create_graph_node","detail":"Tool `create_graph_node` was removed.","severity":"breaking"},{"kind":"tool_removed","tool":"create_graph_project","detail":"Tool `create_graph_project` was removed.","severity":"breaking"},{"kind":"tool_removed","tool":"create_graph_relationship","detail":"Tool `create_graph_relationship` was removed.","severity":"breaking"},{"kind":"tool_removed","tool":"create_project","detail":"Tool `create_project` was removed.","severity":"breaking"},{"kind":"tool_removed","tool":"delete_graph_node","detail":"Tool `delete_graph_node` was removed.","severity":"breaking"},{"kind":"tool_removed","tool":"delete_graph_project","detail":"Tool `delete_graph_project` was removed.","severity":"breaking"},{"kind":"tool_removed","tool":"delete_graph_relationship","detail":"Tool `delete_graph_relationship` was removed.","severity":"breaking"},{"kind":"tool_removed","tool":"delete_module","detail":"Tool `delete_module` was removed.","severity":"breaking"},{"kind":"tool_removed","tool":"delete_project","detail":"Tool `delete_project` was removed.","severity":"breaking"},{"kind":"tool_removed","tool":"deploy_destructive","detail":"Tool `deploy_destructive` was removed.","severity":"breaking"},{"kind":"tool_removed","tool":"deploy_graph_production","detail":"Tool `deploy_graph_production` was removed.","severity":"breaking"},{"kind":"tool_removed","tool":"deploy_graph_staging","detail":"Tool `deploy_graph_staging` was removed.","severity":"breaking"},{"kind":"tool_removed","tool":"deploy_module","detail":"Tool `deploy_module` was removed.","severity":"breaking"},{"kind":"tool_removed","tool":"deploy_production","detail":"Tool `deploy_production` was removed.","severity":"breaking"},{"kind":"tool_removed","tool":"deploy_staging","detail":"Tool `deploy_staging` was removed.","severity":"breaking"},{"kind":"tool_removed","tool":"drop_schema_items","detail":"Tool `drop_schema_items` was removed.","severity":"breaking"},{"kind":"tool_removed","tool":"freeze_module","detail":"Tool `freeze_module` was removed.","severity":"breaking"},{"kind":"tool_removed","tool":"fulltext_search_graph","detail":"Tool `fulltext_search_graph` was removed.","severity":"breaking"},{"kind":"tool_removed","tool":"get_graph_data_schema","detail":"Tool `get_graph_data_schema` was removed.","severity":"breaking"},{"kind":"tool_removed","tool":"get_graph_node","detail":"Tool `get_graph_node` was removed.","severity":"breaking"},{"kind":"tool_removed","tool":"get_graph_project_info","detail":"Tool `get_graph_project_info` was removed.","severity":"breaking"},{"kind":"tool_removed","tool":"get_graph_schema","detail":"Tool `get_graph_schema` was removed.","severity":"breaking"},{"kind":"tool_removed","tool":"get_graph_schema_at_version","detail":"Tool `get_graph_schema_at_version` was removed.","severity":"breaking"},{"kind":"tool_removed","tool":"get_graph_statistics","detail":"Tool `get_graph_statistics` was removed.","severity":"breaking"},{"kind":"tool_removed","tool":"get_graph_template_schemas","detail":"Tool `get_graph_template_schemas` was removed.","severity":"breaking"},{"kind":"tool_removed","tool":"get_graph_version_history","detail":"Tool `get_graph_version_history` was removed.","severity":"breaking"},{"kind":"tool_removed","tool":"get_job_status","detail":"Tool `get_job_status` was removed.","severity":"breaking"},{"kind":"tool_removed","tool":"get_node_relationships","detail":"Tool `get_node_relationships` was removed.","severity":"breaking"},{"kind":"tool_removed","tool":"get_project","detail":"Tool `get_project` was removed.","severity":"breaking"},{"kind":"tool_removed","tool":"get_project_info","detail":"Tool `get_project_info` was removed.","severity":"breaking"},{"kind":"tool_removed","tool":"get_project_storage_usage","detail":"Tool `get_project_storage_usage` was removed.","severity":"breaking"},{"kind":"tool_removed","tool":"get_project_usage","detail":"Tool `get_project_usage` was removed.","severity":"breaking"},{"kind":"tool_removed","tool":"get_schema","detail":"Tool `get_schema` was removed.","severity":"breaking"},{"kind":"tool_removed","tool":"get_schema_at_version","detail":"Tool `get_schema_at_version` was removed.","severity":"breaking"},{"kind":"tool_removed","tool":"get_schema_reference","detail":"Tool `get_schema_reference` was removed.","severity":"breaking"},{"kind":"tool_removed","tool":"get_subscription_status","detail":"Tool `get_subscription_status` was removed.","severity":"breaking"},{"kind":"tool_removed","tool":"get_template_schemas","detail":"Tool `get_template_schemas` was removed.","severity":"breaking"},{"kind":"tool_removed","tool":"get_user_info","detail":"Tool `get_user_info` was removed.","severity":"breaking"},{"kind":"tool_removed","tool":"get_version_history","detail":"Tool `get_version_history` was removed.","severity":"breaking"},{"kind":"tool_removed","tool":"list_clusters","detail":"Tool `list_clusters` was removed.","severity":"breaking"},{"kind":"tool_removed","tool":"list_graph_nodes","detail":"Tool `list_graph_nodes` was removed.","severity":"breaking"},{"kind":"tool_removed","tool":"list_modules","detail":"Tool `list_modules` was removed.","severity":"breaking"},{"kind":"tool_removed","tool":"list_project_files","detail":"Tool `list_project_files` was removed.","severity":"breaking"},{"kind":"tool_removed","tool":"list_project_jobs","detail":"Tool `list_project_jobs` was removed.","severity":"breaking"},{"kind":"tool_removed","tool":"list_projects","detail":"Tool `list_projects` was removed.","severity":"breaking"},{"kind":"tool_removed","tool":"patch_schema","detail":"Tool `patch_schema` was removed.","severity":"breaking"},{"kind":"tool_removed","tool":"preview_schema_change","detail":"Tool `preview_schema_change` was removed.","severity":"breaking"},{"kind":"tool_removed","tool":"redeploy_module","detail":"Tool `redeploy_module` was removed.","severity":"breaking"},{"kind":"tool_removed","tool":"redeploy_project","detail":"Tool `redeploy_project` was removed.","severity":"breaking"},{"kind":"tool_removed","tool":"rename_project","detail":"Tool `rename_project` was removed.","severity":"breaking"},{"kind":"tool_removed","tool":"rollback_graph_project","detail":"Tool `rollback_graph_project` was removed.","severity":"breaking"},{"kind":"tool_removed","tool":"rollback_project","detail":"Tool `rollback_project` was removed.","severity":"breaking"},{"kind":"tool_removed","tool":"scale_module","detail":"Tool `scale_module` was removed.","severity":"breaking"},{"kind":"tool_removed","tool":"search_graph_nodes","detail":"Tool `search_graph_nodes` was removed.","severity":"breaking"},{"kind":"tool_removed","tool":"set_module_env","detail":"Tool `set_module_env` was removed.","severity":"breaking"},{"kind":"tool_removed","tool":"set_module_resources","detail":"Tool `set_module_resources` was removed.","severity":"breaking"},{"kind":"tool_removed","tool":"traverse_graph","detail":"Tool `traverse_graph` was removed.","severity":"breaking"},{"kind":"tool_removed","tool":"unfreeze_module","detail":"Tool `unfreeze_module` was removed.","severity":"breaking"},{"kind":"tool_removed","tool":"update_graph_node","detail":"Tool `update_graph_node` was removed.","severity":"breaking"},{"kind":"tool_removed","tool":"update_graph_schema","detail":"Tool `update_graph_schema` was removed.","severity":"breaking"},{"kind":"tool_removed","tool":"update_module","detail":"Tool `update_module` was removed.","severity":"breaking"},{"kind":"tool_removed","tool":"update_schema","detail":"Tool `update_schema` was removed.","severity":"breaking"}],"published_at":"2026-10-09T18:27:17.678Z"},{"slug":"ZV-2026-1939","server_name":"mcp.rationalbloks.com","severity":"breaking","title":"mcp.rationalbloks.com: Field confirm_destructive was removed from deploy_graph_production input; consumers still sending it may be rejected or silently ignored.","summary":"[safe] Tool delete_module was added. [safe] Tool deploy_destructive was added. [safe] Tool deploy_module was added. [safe] Tool drop_schema_items was added. [safe] Tool freeze_module was added. [safe] Tool list_modules was added. [safe] Tool preview_schema_change was added. [safe] Tool redeploy_module was added. [safe] Tool redeploy_project was added. [safe] Tool scale_module was added. [safe] Tool set_module_env was added. [safe] Tool set_module_resources was added. [safe] Tool unfreeze_module was added. [safe] Tool update_module was added. [safe] Description of create_graph_project changed (21% word delta). [risky] Description of create_project changed (47% word delta). [risky] Description of deploy_graph_production changed (43% word delta). [breaking] Field confirm_destructive was removed from deploy_graph_production input; consumers still sending it may be rejected or silently ignored. [risky] Description of deploy_graph_staging changed (35% word delta). [breaking] Field confirm_destructive was removed from deploy_graph_staging input; consumers still sending it may be rejected or silently ignored. [risky] Description of deploy_production changed (57% word delta). [breaking] Field confirm_destructive was removed from deploy_production input; consumers still sending it may be rejected or silently ignored. [risky] Description of deploy_staging changed (26% word delta). [breaking] Field confirm_destructive was removed from deploy_staging input; consumers still sending it may be rejected or silently ignored. [safe] Description of get_job_status changed (12% word delta). [safe] Description of patch_schema changed (11% word delta). [breaking] Field dry_run was removed from patch_schema input; consumers still sending it may be rejected or silently ignored. [risky] Description of update_graph_schema changed (44% word delta). [breaking] Field dry_run was removed from update_graph_schema input; consumers still sending it may be rejected or silently ignored. [risky] Optiona","changes":[{"kind":"tool_added","tool":"delete_module","detail":"Tool `delete_module` was added.","severity":"safe"},{"kind":"tool_added","tool":"deploy_destructive","detail":"Tool `deploy_destructive` was added.","severity":"safe"},{"kind":"tool_added","tool":"deploy_module","detail":"Tool `deploy_module` was added.","severity":"safe"},{"kind":"tool_added","tool":"drop_schema_items","detail":"Tool `drop_schema_items` was added.","severity":"safe"},{"kind":"tool_added","tool":"freeze_module","detail":"Tool `freeze_module` was added.","severity":"safe"},{"kind":"tool_added","tool":"list_modules","detail":"Tool `list_modules` was added.","severity":"safe"},{"kind":"tool_added","tool":"preview_schema_change","detail":"Tool `preview_schema_change` was added.","severity":"safe"},{"kind":"tool_added","tool":"redeploy_module","detail":"Tool `redeploy_module` was added.","severity":"safe"},{"kind":"tool_added","tool":"redeploy_project","detail":"Tool `redeploy_project` was added.","severity":"safe"},{"kind":"tool_added","tool":"scale_module","detail":"Tool `scale_module` was added.","severity":"safe"},{"kind":"tool_added","tool":"set_module_env","detail":"Tool `set_module_env` was added.","severity":"safe"},{"kind":"tool_added","tool":"set_module_resources","detail":"Tool `set_module_resources` was added.","severity":"safe"},{"kind":"tool_added","tool":"unfreeze_module","detail":"Tool `unfreeze_module` was added.","severity":"safe"},{"kind":"tool_added","tool":"update_module","detail":"Tool `update_module` was added.","severity":"safe"},{"kind":"description_changed","tool":"create_graph_project","after":"Create a new Neo4j graph database project from a hierarchical JSON schema.\n\n⚠️ GRAPH SCHEMA FORMAT — READ BEFORE CREATING:\n\nGraph schemas define nodes (entities) and relationships, NOT flat database tables.\nEach field is a dict with \"type\" and optional \"required\": true (defaults to false).\n\nSCHEMA STRUCTURE:\n{\n  \"nodes\": {\n    \"EntityName\": {\n      \"description\": \"What this entity represents\",\n      \"flat_labels\": [\"AdditionalLabel\"],\n      \"schema\": {\n        \"field_name\": {\"type\": \"string\", \"required\": true},\n        \"other_field\": {\"type\": \"integer\"}\n      }\n    }\n  },\n  \"relationships\": {\n    \"RELATIONSHIP_TYPE\": {\n      \"from\": \"EntityName\",\n      \"to\": \"OtherEntity\",\n      \"cardinality\": \"MANY_TO_MANY\",\n      \"data_schema\": {\n        \"field_name\": {\"type\": \"date\"}\n      }\n    }\n  }\n}\n\nFIELD TYPES: string, integer, float, boolean, date, json\n\nCARDINALITY OPTIONS: ONE_TO_ONE, ONE_TO_MANY, MANY_TO_ONE, MANY_TO_MANY\n\nHIERARCHICAL NODES: nest an entity inside its parent entity (beside \"description\", \"flat_labels\"\nand \"schema\") to create a type hierarchy; the child inherits the parent's labels:\n  \"Animal\": {\"description\": \"...\", \"schema\": {...}, \"Dog\": {\"description\": \"...\", \"schema\": {...}}}\n\nRULES:\n1. \"nodes\" key is REQUIRED — must contain at least one entity\n2. Each entity needs \"description\" and \"schema\" with field definitions\n3. Each field is {\"type\": \"...\", \"required\": true/false} — required defaults to false\n4. Relationship \"from\"/\"to\" must reference defined node names\n5. Relationship types should be UPPER_SNAKE_CASE\n6. Entity names should be PascalCase\n7. Automatic fields (id, created_at, updated_at) are NOT needed\n\nWORKFLOW:\n1. get_graph_template_schemas FIRST to see valid examples\n2. create_graph_project with a cluster_id from list_clusters\n3. Poll get_job_status with the returned job_id (2-5 minutes) While RationalBloks is being updated, the call is refused with 'RationalBloks is being updated': call it again in a few minutes.","before":"Create a new Neo4j graph database project from a hierarchical JSON schema.\n\n⚠️ GRAPH SCHEMA FORMAT — READ BEFORE CREATING:\n\nGraph schemas define nodes (entities) and relationships, NOT flat database tables.\nEach field is a dict with \"type\" and optional \"required\": true (defaults to false).\n\nSCHEMA STRUCTURE:\n{\n  \"nodes\": {\n    \"EntityName\": {\n      \"description\": \"What this entity represents\",\n      \"flat_labels\": [\"AdditionalLabel\"],\n      \"schema\": {\n        \"field_name\": {\"type\": \"string\", \"required\": true},\n        \"other_field\": {\"type\": \"integer\"}\n      }\n    }\n  },\n  \"relationships\": {\n    \"RELATIONSHIP_TYPE\": {\n      \"from\": \"EntityName\",\n      \"to\": \"OtherEntity\",\n      \"cardinality\": \"MANY_TO_MANY\",\n      \"data_schema\": {\n        \"field_name\": {\"type\": \"date\"}\n      }\n    }\n  }\n}\n\nFIELD TYPES: string, integer, float, boolean, date, json\n\nCARDINALITY OPTIONS: ONE_TO_ONE, ONE_TO_MANY, MANY_TO_ONE, MANY_TO_MANY\n\nHIERARCHICAL NODES:\nNest entities inside parent entities to create type hierarchies.\nChild entities inherit parent labels automatically.\n\nExample:\n{\n  \"nodes\": {\n    \"Animal\": {\n      \"description\": \"Base animal entity\",\n      \"flat_labels\": [\"LivingThing\"],\n      \"schema\": {\n        \"name\": {\"type\": \"string\", \"required\": true},\n        \"habitat\": {\"type\": \"string\"}\n      },\n      \"Dog\": {\n        \"description\": \"A dog (inherits Animal labels)\",\n        \"flat_labels\": [\"Pet\"],\n        \"schema\": {\n          \"breed\": {\"type\": \"string\", \"required\": true},\n          \"trained\": {\"type\": \"boolean\"}\n        }\n      }\n    }\n  },\n  \"relationships\": {\n    \"OWNS\": {\n      \"from\": \"Person\",\n      \"to\": \"Animal\",\n      \"cardinality\": \"ONE_TO_MANY\"\n    }\n  }\n}\n\nRULES:\n1. \"nodes\" key is REQUIRED — must contain at least one entity\n2. Each entity needs \"description\" and \"schema\" with field definitions\n3. Each field is {\"type\": \"...\", \"required\": true/false} — required defaults to false\n4. Relationship \"from\"/\"to\" must reference defined node names\n5. Relationship types should be UPPER_SNAKE_CASE\n6. Entity names should be PascalCase\n7. Automatic fields (id, created_at, updated_at) are NOT needed\n8. Use get_graph_template_schemas FIRST to see valid examples\n\nWORKFLOW:\n1. Use get_graph_template_schemas to see valid examples\n2. Create schema following the rules above\n3. Call this tool\n4. Monitor with get_job_status (2-5 min deployment)\n\nAfter creation, use get_job_status with returned job_id to monitor deployment. While RationalBloks is being updated, the call is refused with 'RationalBloks is being updated': call it again in a few minutes.","detail":"Description of `create_graph_project` changed (21% word delta).","severity":"safe","descriptionDelta":0.20645161290322578},{"kind":"description_changed","tool":"create_project","after":"Create a new RationalBloks project (a PostgreSQL REST API) from a JSON schema, on one of your resource pools.\n\n⚠️ CRITICAL RULES - READ BEFORE CREATING SCHEMA:\n\n1. FLAT FORMAT (REQUIRED):\n   ✅ CORRECT: {\"orders\": {\"total\": {\"type\": \"decimal\", \"precision\": 10, \"scale\": 2}}}\n   ❌ WRONG: {\"orders\": {\"fields\": {...}}} — never nest under 'fields'\n\n2. EVERY field has a \"type\":\n   string (MUST have max_length), text, integer, decimal (precision, scale), boolean, uuid, date,\n   datetime (NOT \"timestamp\"), json, and the PostgreSQL arrays uuid_array, integer_array, text_array,\n   float_array (GIN-indexed: @> contains, <@ contained_by, && overlaps)\n\n3. AUTOMATIC FIELDS (DON'T define): id, created_at, updated_at\n\n4. USERS: NEVER create users/customers/employees tables with email or password. Link to the built-in\n   app_users table: {\"user_id\": {\"type\": \"uuid\", \"foreign_key\": \"app_users.id\"}}. A table with such a\n   field is owner-scoped: each user sees their own rows.\n\n5. FIELD OPTIONS: required, unique, default, enum, foreign_key (\"table.id\"), on_delete (cascade,\n   set_null, restrict, no_action), nullable, index, description, write_only, computed.\n   Advanced features (__policy__, computed columns, __constraints__, __audit__): get_schema_reference.\n\nBACKEND ENGINE (backend_type): \"python\" (FastAPI, default) or \"rust\" (Axum: faster cold starts, lower memory).\n\nWORKFLOW:\n1. get_template_schemas FIRST to see valid examples\n2. create_project with a cluster_id from list_clusters\n3. Poll get_job_status with the returned job_id (2-5 minutes)\n4. get_project_info gives the live URL While RationalBloks is being updated, the call is refused with 'RationalBloks is being updated': call it again in a few minutes.","before":"Create a new RationalBloks project from a JSON schema.\n\n⚠️ CRITICAL RULES - READ BEFORE CREATING SCHEMA:\n\n1. FLAT FORMAT (REQUIRED):\n   ✅ CORRECT: {users: {email: {type: \"string\", max_length: 255}}}\n   ❌ WRONG: {users: {fields: {email: {type: \"string\"}}}}\n   DO NOT nest under 'fields' key!\n\n2. FIELD TYPE REQUIREMENTS:\n   • string: MUST have \"max_length\" (e.g., max_length: 255)\n   • decimal: MUST have \"precision\" and \"scale\" (e.g., precision: 10, scale: 2)\n   • datetime: Use \"datetime\" NOT \"timestamp\"\n   • ALL fields: MUST have \"type\" property\n\n3. AUTOMATIC FIELDS (DON'T define):\n   • id (uuid, primary key)\n   • created_at (datetime)\n   • updated_at (datetime)\n\n4. USER AUTHENTICATION:\n   ❌ NEVER create \"users\", \"customers\", \"employees\" tables with email/password\n   ✅ USE built-in app_users table\n\n   Example:\n   {\n     \"employee_profiles\": {\n       \"user_id\": {type: \"uuid\", foreign_key: \"app_users.id\", required: true},\n       \"department\": {type: \"string\", max_length: 100}\n     }\n   }\n\n5. AUTHORIZATION:\n   Add user_id → app_users.id to enable \"only see your own data\"\n\n   Example:\n   {\n     \"orders\": {\n       \"user_id\": {type: \"uuid\", foreign_key: \"app_users.id\"},\n       \"total\": {type: \"decimal\", precision: 10, scale: 2}\n     }\n   }\n\n6. FIELD OPTIONS:\n   • required: true/false\n   • unique: true/false\n   • default: any value\n   • enum: [\"val1\", \"val2\"]\n   • foreign_key: \"table.id\"\n\nAVAILABLE TYPES: string, text, integer, decimal, boolean, uuid, date, datetime, json, uuid_array, integer_array, text_array, float_array\n\n   Array types store PostgreSQL native arrays with automatic GIN indexing:\n   • uuid_array: UUID[] — for sets of references (e.g., tensor coordinates)\n   • integer_array: BIGINT[] — for dimension indices, integer sets\n   • text_array: TEXT[] — for tags, categories, label sets\n   • float_array: DOUBLE PRECISION[] — for weight vectors, scores\n   GIN-indexed operators: @> (contains), <@ (contained_by), && (overlaps)\n\nBACKEND ENGINE:\n• python (default): FastAPI backend — mature, full-featured\n• rust: Axum backend — faster cold starts, lower memory, high performance\n\nWORKFLOW:\n1. Use get_template_schemas FIRST to see valid examples\n2. Create schema following ALL rules above\n3. Call this tool (optionally choose backend_type: \"python\" or \"rust\")\n4. Monitor with get_job_status (2-5 min deployment)\n\nAfter creation, use get_job_status with returned job_id to monitor deployment. While RationalBloks is being updated, the call is refused with 'RationalBloks is being updated': call it again in a few minutes.","detail":"Description of `create_project` changed (47% word delta).","severity":"risky","descriptionDelta":0.46696035242290745},{"kind":"description_changed","tool":"deploy_graph_production","after":"Promote graph staging to production. Creates a separate production Neo4j instance with its own credentials and database. Requires paid plan. A plan that drops data is refused, naming every table, field, entity or relationship it would drop, and every field whose type change rounds or cuts its values (a decimal with a smaller scale or turned integer, a datetime turned date): deploy_destructive applies it, a tool of its own so a client asks before it runs. One operation runs on a project at a time: while another runs, the call is refused and the refusal names the running job; wait for it with get_job_status, then call again. While RationalBloks is being updated, the call is refused with 'RationalBloks is being updated': call it again in a few minutes.","before":"Promote graph staging to production. Creates a separate production Neo4j instance with its own credentials and database. Requires paid plan. A deploy that drops data is refused until you pass confirm_destructive=true after reviewing the plan. One operation runs on a project at a time: while another runs, the call is refused and the refusal names the running job; wait for it with get_job_status, then call again. While RationalBloks is being updated, the call is refused with 'RationalBloks is being updated': call it again in a few minutes.","detail":"Description of `deploy_graph_production` changed (43% word delta).","severity":"risky","descriptionDelta":0.4269662921348315},{"kind":"input_property_removed","path":"inputSchema.properties.confirm_destructive","tool":"deploy_graph_production","before":{"type":"boolean","description":"Set true only after reviewing the plan: a deploy that drops tables, columns, entities, relationships or fields is refused without it"},"detail":"Field `confirm_destructive` was removed from `deploy_graph_production` input; consumers still sending it may be rejected or silently ignored.","severity":"breaking"},{"kind":"description_changed","tool":"deploy_graph_staging","after":"Deploy a graph project's saved schema 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. A plan that drops data is refused, naming every table, field, entity or relationship it would drop, and every field whose type change rounds or cuts its values (a decimal with a smaller scale or turned integer, a datetime turned date): deploy_destructive applies it, a tool of its own so a client asks before it runs. One operation runs on a project at a time: while another runs, the call is refused and the refusal names the running job; wait for it with get_job_status, then call again. While RationalBloks is being updated, the call is refused with 'RationalBloks is being updated': call it again in a few minutes.","before":"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. A deploy that drops data is refused until you pass confirm_destructive=true after reviewing the plan. One operation runs on a project at a time: while another runs, the call is refused and the refusal names the running job; wait for it with get_job_status, then call again. While RationalBloks is being updated, the call is refused with 'RationalBloks is being updated': call it again in a few minutes.","detail":"Description of `deploy_graph_staging` changed (35% word delta).","severity":"risky","descriptionDelta":0.3508771929824561},{"kind":"input_property_removed","path":"inputSchema.properties.confirm_destructive","tool":"deploy_graph_staging","before":{"type":"boolean","description":"Set true only after reviewing the plan: a deploy that drops tables, columns, entities, relationships or fields is refused without it"},"detail":"Field `confirm_destructive` was removed from `deploy_graph_staging` input; consumers still sending it may be rejected or silently ignored.","severity":"breaking"},{"kind":"description_changed","tool":"deploy_production","after":"Promote staging to production (requires a paid plan): production's database migrates from the schema it runs to the one staging runs, and production runs staging's build. With staging unchanged since the last promotion, it rebuilds production with no schema change. The operation is ASYNCHRONOUS: poll the returned job_id with get_job_status. A plan that drops data is refused, naming every table, field, entity or relationship it would drop, and every field whose type change rounds or cuts its values (a decimal with a smaller scale or turned integer, a datetime turned date): deploy_destructive applies it, a tool of its own so a client asks before it runs. One operation runs on a project at a time: while another runs, the call is refused and the refusal names the running job; wait for it with get_job_status, then call again. While RationalBloks is being updated, the call is refused with 'RationalBloks is being updated': call it again in a few minutes.","before":"Promote staging to production (requires paid plan) A deploy that drops data is refused until you pass confirm_destructive=true after reviewing the plan. One operation runs on a project at a time: while another runs, the call is refused and the refusal names the running job; wait for it with get_job_status, then call again. While RationalBloks is being updated, the call is refused with 'RationalBloks is being updated': call it again in a few minutes.","detail":"Description of `deploy_production` changed (57% word delta).","severity":"risky","descriptionDelta":0.5714285714285714},{"kind":"input_property_removed","path":"inputSchema.properties.confirm_destructive","tool":"deploy_production","before":{"type":"boolean","description":"Set true only after reviewing the plan: a deploy that drops tables, columns, entities, relationships or fields is refused without it"},"detail":"Field `confirm_destructive` was removed from `deploy_production` input; consumers still sending it may be rejected or silently ignored.","severity":"breaking"},{"kind":"description_changed","tool":"deploy_staging","after":"Deploy a project's saved schema 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, read the job's error first: one that starts with 'RationalBloks platform error' is the platform's, not the schema's. Otherwise 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. A plan that drops data is refused, naming every table, field, entity or relationship it would drop, and every field whose type change rounds or cuts its values (a decimal with a smaller scale or turned integer, a datetime turned date): deploy_destructive applies it, a tool of its own so a client asks before it runs. One operation runs on a project at a time: while another runs, the call is refused and the refusal names the running job; wait for it with get_job_status, then call again. While RationalBloks is being updated, the call is refused with 'RationalBloks is being updated': call it again in a few minutes.","before":"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, read the job's error first: one that starts with 'RationalBloks platform error' is the platform's, not the schema's. Otherwise 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. A deploy that drops data is refused until you pass confirm_destructive=true after reviewing the plan. One operation runs on a project at a time: while another runs, the call is refused and the refusal names the running job; wait for it with get_job_status, then call again. While RationalBloks is being updated, the call is refused with 'RationalBloks is being updated': call it again in a few minutes.","detail":"Description of `deploy_staging` changed (26% word delta).","severity":"risky","descriptionDelta":0.26086956521739135},{"kind":"input_property_removed","path":"inputSchema.properties.confirm_destructive","tool":"deploy_staging","before":{"type":"boolean","description":"Set true only after reviewing the plan: a deploy that drops tables, columns, entities, relationships or fields is refused without it"},"detail":"Field `confirm_destructive` was removed from `deploy_staging` input; consumers still sending it may be rejected or silently ignored.","severity":"breaking"},{"kind":"description_changed","tool":"get_job_status","after":"Check the status of a job (a create, deploy, promotion, rollback, deletion or module operation). STATUS VALUES: pending (queued), processing (in progress), completed (success), failed. Call it until the status is completed or failed: every job ends, since a job whose server stopped is failed within about three minutes, and a deploy can take up to 15 minutes. A module job names its module_code, and a completed module build's result names the image it built (its commit). If status is 'failed', read failure_side and error: 'customer' means the project's input is proven the cause (an invalid schema, data the new schema does not fit, a change the resource pool cannot hold), and error says what to change; 'platform' means no input of the project is known to cause it: report it to RationalBloks rather than changing the schema.","before":"Check the status of a job (a create, deploy, promotion, rollback or deletion). STATUS VALUES: pending (queued), processing (in progress), completed (success), failed. Call it until the status is completed or failed: every job ends, since a job whose server stopped is failed within about three minutes, and a deploy can take up to 15 minutes. If status is 'failed', read failure_side and error: 'customer' means the project's input is proven the cause (an invalid schema, data the new schema does not fit, a change the resource pool cannot hold), and error says what to change; 'platform' means no input of the project is known to cause it: report it to RationalBloks rather than changing the schema.","detail":"Description of `get_job_status` changed (12% word delta).","severity":"safe","descriptionDelta":0.11764705882352944},{"kind":"description_changed","tool":"patch_schema","after":"Change PART of a project's schema without dropping any of it (saves to database, does NOT deploy).\n\nSend only the change. The server applies it to the saved schema, in order and all together, and keeps\nevery table and field it does not touch — including their identity, so a rename stays a rename and the\ncolumn keeps its data.\n\nOPERATIONS (each one small object, applied in the order given):\n• {\"op\": \"add_table\", \"table\": \"clocks\", \"definition\": {...}}      new table, same FLAT rules as create_project\n• {\"op\": \"rename_table\", \"table\": \"clocks\", \"to\": \"timers\"}\n• {\"op\": \"add_field\", \"table\": \"assets\", \"field\": \"serial\", \"definition\": {\"type\": \"string\", \"max_length\": 64}}\n• {\"op\": \"rename_field\", \"table\": \"parameters\", \"field\": \"is_clock\", \"to\": \"clock_kind\"}\n• {\"op\": \"set_field\", \"table\": \"assets\", \"field\": \"name\", \"properties\": {\"max_length\": 300}}   merges; a property set to null is removed\n• {\"op\": \"set_table\", \"table\": \"assets\", \"properties\": {\"__audit__\": true}}   __policy__, __constraints__, __audit__, __admin_write__\n\nDropping a table or field is drop_schema_items, a tool of its own.\n\nALL OR NOTHING: an operation that cannot be applied — a table or field that is not there, a name\nalready taken, a schema the deploy would refuse — refuses the whole patch, naming the operation, and\nnothing is saved.\n\nEVERY ANSWER IS A DIFF: 'applied' (what each operation did), 'diff' (every changed property by path),\n'summary' and 'plan' (the migration a deploy would then run), and 'version' (the schema's version\nafter the change).\n\nWORKFLOW:\n1. get_schema with tables/fields to read the part you are changing (its 'version' is the whole schema's)\n2. preview_schema_change with the operations: check 'diff' and 'plan'\n3. patch_schema with the same operations (pass expected_version to be refused if someone else saved meanwhile)\n4. deploy_staging, then get_job_status","before":"Change PART of a project's schema (saves to database, does NOT deploy).\n\nSend only the change. The server applies it to the saved schema, in order and all together, and keeps\nevery table and field it does not touch — including their identity, so a rename stays a rename and the\ncolumn keeps its data.\n\nOPERATIONS (each one small object, applied in the order given):\n• {\"op\": \"add_table\", \"table\": \"clocks\", \"definition\": {...}}      new table, same FLAT rules as create_project\n• {\"op\": \"drop_table\", \"table\": \"clocks\"}\n• {\"op\": \"rename_table\", \"table\": \"clocks\", \"to\": \"timers\"}\n• {\"op\": \"add_field\", \"table\": \"assets\", \"field\": \"serial\", \"definition\": {\"type\": \"string\", \"max_length\": 64}}\n• {\"op\": \"drop_field\", \"table\": \"parameters\", \"field\": \"is_clock\"}\n• {\"op\": \"rename_field\", \"table\": \"parameters\", \"field\": \"is_clock\", \"to\": \"clock_kind\"}\n• {\"op\": \"set_field\", \"table\": \"assets\", \"field\": \"name\", \"properties\": {\"max_length\": 300}}   merges; a property set to null is removed\n• {\"op\": \"set_table\", \"table\": \"assets\", \"properties\": {\"__audit__\": true}}   __policy__, __constraints__, __audit__, __admin_write__\n\nALL OR NOTHING: an operation that cannot be applied — a table or field that is not there, a name\nalready taken, a schema the deploy would refuse — refuses the whole patch, naming the operation, and\nnothing is saved.\n\nEVERY ANSWER IS A DIFF: 'applied' (what each operation did), 'diff' (every changed property by path),\n'summary' and 'plan' (the migration a deploy would then run), and 'version' (the schema's version\nafter the change). You never need to read the whole schema back to see what you did.\n\nWORKFLOW:\n1. get_schema with tables/fields to read the part you are changing (its 'version' is the whole schema's)\n2. patch_schema with dry_run=true: check 'diff' and 'plan'\n3. patch_schema with the same operations (pass expected_version to be refused if someone else saved meanwhile)\n4. deploy_staging (confirm_destructive=true when the plan drops data), then get_job_status","detail":"Description of `patch_schema` changed (11% word delta).","severity":"safe","descriptionDelta":0.10897435897435892},{"kind":"input_property_removed","path":"inputSchema.properties.dry_run","tool":"patch_schema","before":{"type":"boolean","description":"Save nothing: answer what the operations did, the diff and the migration plan a deploy would run."},"detail":"Field `dry_run` was removed from `patch_schema` input; consumers still sending it may be rejected or silently ignored.","severity":"breaking"},{"kind":"description_changed","tool":"update_graph_schema","after":"Replace a graph project's WHOLE schema (saves to database, does NOT deploy). DESTRUCTIVE: an entity, relationship or field the schema leaves out is deleted by the next deploy.\n\n⚠️ Follow ALL rules from create_graph_project:\n• Must have \"nodes\" key with at least one entity\n• Each entity needs \"description\" and \"schema\" with field definitions\n• Each field is {\"type\": \"...\", \"required\": true/false} — required defaults to false\n• Relationships need \"from\", \"to\", and \"cardinality\"\n• Field types: string, integer, float, boolean, date, json\n• Relationship types should be UPPER_SNAKE_CASE\n• Entity names should be PascalCase\n\nWORKFLOW:\n1. get_graph_schema to see the current schema (its 'version' pins the save)\n2. preview_schema_change with the new schema: check 'diff' and 'plan'\n3. update_graph_schema (pass expected_version to be refused if someone else saved meanwhile)\n4. deploy_graph_staging, then get_job_status","before":"Update a graph project's schema (saves to database, does NOT deploy).\n\n⚠️ Follow ALL rules from create_graph_project:\n• Must have \"nodes\" key with at least one entity\n• Each entity needs \"description\" and \"schema\" with field definitions\n• Each field is {\"type\": \"...\", \"required\": true/false} — required defaults to false\n• Relationships need \"from\", \"to\", and \"cardinality\"\n• Field types: string, integer, float, boolean, date, json\n• Relationship types should be UPPER_SNAKE_CASE\n• Entity names should be PascalCase\n\nWORKFLOW:\n1. Use get_graph_schema to see current schema\n2. Modify following all rules\n3. Call update_graph_schema (saves only)\n4. Call deploy_graph_staging to apply changes\n5. Monitor with get_job_status\n\nDRY RUN: pass dry_run=true to preview what a deploy WOULD change (renames, deletions) without saving.\n\nNOTE: This only saves the schema. You MUST call deploy_graph_staging afterwards to deploy.","detail":"Description of `update_graph_schema` changed (44% word delta).","severity":"risky","descriptionDelta":0.44067796610169496},{"kind":"input_property_removed","path":"inputSchema.properties.dry_run","tool":"update_graph_schema","before":{"type":"boolean","description":"Preview the planned migration (renames/deletions) without saving or deploying. Nothing is applied."},"detail":"Field `dry_run` was removed from `update_graph_schema` input; consumers still sending it may be rejected or silently ignored.","severity":"breaking"},{"kind":"input_property_added","path":"inputSchema.properties.expected_version","tool":"update_graph_schema","after":{"type":"string","description":"The 'version' a get_graph_schema read answered. The save is refused (409) when the saved schema changed since."},"detail":"Optional field `expected_version` was added to `update_graph_schema`; may shift model behaviour.","severity":"risky"},{"kind":"description_changed","tool":"update_schema","after":"Replace a project's WHOLE schema (saves to database, does NOT deploy). DESTRUCTIVE: a table or field the schema leaves out is dropped by the next deploy.\n\nFor a new data model or a template. To change part of a schema use patch_schema, and drop_schema_items to drop; sending back a large schema to change one field risks changing something else on the way.\n\n⚠️ Follow ALL rules from create_project:\n• FLAT format (no 'fields' nesting)\n• string: max_length (default 255)\n• decimal: precision + scale (default 10, 2)\n• Use \"datetime\" NOT \"timestamp\"\n• DON'T define: id, created_at, updated_at\n• NEVER create users/customers/employees tables (use app_users)\n\n⚠️ MIGRATION RULES:\n• New fields MUST be \"required\": false OR have \"default\" value\n• Cannot add required field without default to existing tables\n\nWORKFLOW:\n1. get_schema to see the current schema (its 'version' pins the save)\n2. preview_schema_change with the new schema: check 'diff' and 'plan'\n3. update_schema (pass expected_version to be refused if someone else saved meanwhile)\n4. deploy_staging, then get_job_status\n\nA schema the deploy would refuse is refused here, and nothing is saved. The answer carries 'diff', 'plan' and the new 'version'.","before":"Update a project's schema (saves to database, does NOT deploy).\n\n⚠️ CRITICAL: Follow ALL rules from create_project:\n• FLAT format (no 'fields' nesting)\n• string: max_length (default 255)\n• decimal: precision + scale (default 10, 2)\n• Use \"datetime\" NOT \"timestamp\"\n• DON'T define: id, created_at, updated_at\n• NEVER create users/customers/employees tables (use app_users)\n\n⚠️ MIGRATION RULES:\n• New fields MUST be \"required\": false OR have \"default\" value\n• Cannot add required field without default to existing tables\n• Safe: {new_field: {type: \"string\", max_length: 100, required: false}}\n\nWORKFLOW:\n1. Use get_schema to see current schema\n2. Modify following ALL rules\n3. (optional) Call update_schema with dry_run=true to preview the migration first\n4. Call update_schema (saves only)\n5. Call deploy_staging to apply changes\n6. Monitor with get_job_status\n\nCHANGING PART OF A SCHEMA: use patch_schema. This tool replaces the WHOLE schema, so it is for a\nnew data model or a template; sending back a large schema to change one field risks changing\nsomething else on the way.\n\nDRY RUN: pass dry_run=true to save nothing and read back 'diff' — every property this schema changes\nin the saved one, so an accidentally changed description, default, enum or computed case shows up —\nand 'plan', the migration a deploy would then run, with destructive steps flagged.\n\nNOTE: Without dry_run this only saves the schema. You MUST call deploy_staging afterwards to apply changes.","detail":"Description of `update_schema` changed (40% word delta).","severity":"risky","descriptionDelta":0.4023668639053254},{"kind":"input_property_removed","path":"inputSchema.properties.dry_run","tool":"update_schema","before":{"type":"boolean","description":"Save nothing: answer the property-level diff against the saved schema and the migration plan a deploy would run."},"detail":"Field `dry_run` was removed from `update_schema` input; consumers still sending it may be rejected or silently ignored.","severity":"breaking"}],"published_at":"2026-10-07T23:13:17.165Z"},{"slug":"ZV-2026-1297","server_name":"mcp.rationalbloks.com","severity":"breaking","title":"mcp.rationalbloks.com: Tool bulk_create_graph_nodes was removed.","summary":"[breaking] Tool bulk_create_graph_nodes was removed. [breaking] Tool bulk_create_graph_relationships was removed. [breaking] Tool create_graph_node was removed. [breaking] Tool create_graph_project was removed. [breaking] Tool create_graph_relationship was removed. [breaking] Tool create_project was removed. [breaking] Tool delete_graph_node was removed. [breaking] Tool delete_graph_project was removed. [breaking] Tool delete_graph_relationship was removed. [breaking] Tool delete_project was removed. [breaking] Tool deploy_graph_production was removed. [breaking] Tool deploy_graph_staging was removed. [breaking] Tool deploy_production was removed. [breaking] Tool deploy_staging was removed. [breaking] Tool fulltext_search_graph was removed. [breaking] Tool get_graph_data_schema was removed. [breaking] Tool get_graph_node was removed. [breaking] Tool get_graph_project_info was removed. [breaking] Tool get_graph_schema was removed. [breaking] Tool get_graph_schema_at_version was removed. [breaking] Tool get_graph_statistics was removed. [breaking] Tool get_graph_template_schemas was removed. [breaking] Tool get_graph_version_history was removed. [breaking] Tool get_job_status was removed. [breaking] Tool get_node_relationships was removed. [breaking] Tool get_project was removed. [breaking] Tool get_project_info was removed. [breaking] Tool get_project_storage_usage was removed. [breaking] Tool get_project_usage was removed. [breaking] Tool get_schema was removed. [breaking] Tool get_schema_at_version was removed. [breaking] Tool get_schema_reference was removed. [breaking] Tool get_subscription_status was removed. [breaking] Tool get_template_schemas was removed. [breaking] Tool get_user_info was removed. [breaking] Tool get_version_history was removed. [breaking] Tool list_clusters was removed. [breaking] Tool list_graph_nodes was removed. [breaking] Tool list_project_files was removed. [breaking] Tool list_project_jobs was removed. [breaking] Tool list_projects was","changes":[{"kind":"tool_removed","tool":"bulk_create_graph_nodes","detail":"Tool `bulk_create_graph_nodes` was removed.","severity":"breaking"},{"kind":"tool_removed","tool":"bulk_create_graph_relationships","detail":"Tool `bulk_create_graph_relationships` was removed.","severity":"breaking"},{"kind":"tool_removed","tool":"create_graph_node","detail":"Tool `create_graph_node` was removed.","severity":"breaking"},{"kind":"tool_removed","tool":"create_graph_project","detail":"Tool `create_graph_project` was removed.","severity":"breaking"},{"kind":"tool_removed","tool":"create_graph_relationship","detail":"Tool `create_graph_relationship` was removed.","severity":"breaking"},{"kind":"tool_removed","tool":"create_project","detail":"Tool `create_project` was removed.","severity":"breaking"},{"kind":"tool_removed","tool":"delete_graph_node","detail":"Tool `delete_graph_node` was removed.","severity":"breaking"},{"kind":"tool_removed","tool":"delete_graph_project","detail":"Tool `delete_graph_project` was removed.","severity":"breaking"},{"kind":"tool_removed","tool":"delete_graph_relationship","detail":"Tool `delete_graph_relationship` was removed.","severity":"breaking"},{"kind":"tool_removed","tool":"delete_project","detail":"Tool `delete_project` was removed.","severity":"breaking"},{"kind":"tool_removed","tool":"deploy_graph_production","detail":"Tool `deploy_graph_production` was removed.","severity":"breaking"},{"kind":"tool_removed","tool":"deploy_graph_staging","detail":"Tool `deploy_graph_staging` was removed.","severity":"breaking"},{"kind":"tool_removed","tool":"deploy_production","detail":"Tool `deploy_production` was removed.","severity":"breaking"},{"kind":"tool_removed","tool":"deploy_staging","detail":"Tool `deploy_staging` was removed.","severity":"breaking"},{"kind":"tool_removed","tool":"fulltext_search_graph","detail":"Tool `fulltext_search_graph` was removed.","severity":"breaking"},{"kind":"tool_removed","tool":"get_graph_data_schema","detail":"Tool `get_graph_data_schema` was removed.","severity":"breaking"},{"kind":"tool_removed","tool":"get_graph_node","detail":"Tool `get_graph_node` was removed.","severity":"breaking"},{"kind":"tool_removed","tool":"get_graph_project_info","detail":"Tool `get_graph_project_info` was removed.","severity":"breaking"},{"kind":"tool_removed","tool":"get_graph_schema","detail":"Tool `get_graph_schema` was removed.","severity":"breaking"},{"kind":"tool_removed","tool":"get_graph_schema_at_version","detail":"Tool `get_graph_schema_at_version` was removed.","severity":"breaking"},{"kind":"tool_removed","tool":"get_graph_statistics","detail":"Tool `get_graph_statistics` was removed.","severity":"breaking"},{"kind":"tool_removed","tool":"get_graph_template_schemas","detail":"Tool `get_graph_template_schemas` was removed.","severity":"breaking"},{"kind":"tool_removed","tool":"get_graph_version_history","detail":"Tool `get_graph_version_history` was removed.","severity":"breaking"},{"kind":"tool_removed","tool":"get_job_status","detail":"Tool `get_job_status` was removed.","severity":"breaking"},{"kind":"tool_removed","tool":"get_node_relationships","detail":"Tool `get_node_relationships` was removed.","severity":"breaking"},{"kind":"tool_removed","tool":"get_project","detail":"Tool `get_project` was removed.","severity":"breaking"},{"kind":"tool_removed","tool":"get_project_info","detail":"Tool `get_project_info` was removed.","severity":"breaking"},{"kind":"tool_removed","tool":"get_project_storage_usage","detail":"Tool `get_project_storage_usage` was removed.","severity":"breaking"},{"kind":"tool_removed","tool":"get_project_usage","detail":"Tool `get_project_usage` was removed.","severity":"breaking"},{"kind":"tool_removed","tool":"get_schema","detail":"Tool `get_schema` was removed.","severity":"breaking"},{"kind":"tool_removed","tool":"get_schema_at_version","detail":"Tool `get_schema_at_version` was removed.","severity":"breaking"},{"kind":"tool_removed","tool":"get_schema_reference","detail":"Tool `get_schema_reference` was removed.","severity":"breaking"},{"kind":"tool_removed","tool":"get_subscription_status","detail":"Tool `get_subscription_status` was removed.","severity":"breaking"},{"kind":"tool_removed","tool":"get_template_schemas","detail":"Tool `get_template_schemas` was removed.","severity":"breaking"},{"kind":"tool_removed","tool":"get_user_info","detail":"Tool `get_user_info` was removed.","severity":"breaking"},{"kind":"tool_removed","tool":"get_version_history","detail":"Tool `get_version_history` was removed.","severity":"breaking"},{"kind":"tool_removed","tool":"list_clusters","detail":"Tool `list_clusters` was removed.","severity":"breaking"},{"kind":"tool_removed","tool":"list_graph_nodes","detail":"Tool `list_graph_nodes` was removed.","severity":"breaking"},{"kind":"tool_removed","tool":"list_project_files","detail":"Tool `list_project_files` was removed.","severity":"breaking"},{"kind":"tool_removed","tool":"list_project_jobs","detail":"Tool `list_project_jobs` was removed.","severity":"breaking"},{"kind":"tool_removed","tool":"list_projects","detail":"Tool `list_projects` was removed.","severity":"breaking"},{"kind":"tool_removed","tool":"rename_project","detail":"Tool `rename_project` was removed.","severity":"breaking"},{"kind":"tool_removed","tool":"rollback_graph_project","detail":"Tool `rollback_graph_project` was removed.","severity":"breaking"},{"kind":"tool_removed","tool":"rollback_project","detail":"Tool `rollback_project` was removed.","severity":"breaking"},{"kind":"tool_removed","tool":"search_graph_nodes","detail":"Tool `search_graph_nodes` was removed.","severity":"breaking"},{"kind":"tool_removed","tool":"traverse_graph","detail":"Tool `traverse_graph` was removed.","severity":"breaking"},{"kind":"tool_removed","tool":"update_graph_node","detail":"Tool `update_graph_node` was removed.","severity":"breaking"},{"kind":"tool_removed","tool":"update_graph_schema","detail":"Tool `update_graph_schema` was removed.","severity":"breaking"},{"kind":"tool_removed","tool":"update_schema","detail":"Tool `update_schema` was removed.","severity":"breaking"}],"published_at":"2026-09-22T08:10:16.309Z"},{"slug":"ZV-2026-1090","server_name":"mcp.rationalbloks.com","severity":"breaking","title":"mcp.rationalbloks.com: Field description was removed from create_graph_project input; consumers still sending it may be rejected or silently ignored.","summary":"[breaking] Field description was removed from create_graph_project input; consumers still sending it may be rejected or silently ignored. [breaking] Field description was removed from create_project input; consumers still sending it may be rejected or silently ignored. [risky] Description of deploy_graph_production changed (42% word delta). [risky] Optional field confirm_destructive was added to deploy_graph_production; may shift model behaviour. [safe] Description of deploy_graph_staging changed (21% word delta). [risky] Optional field confirm_destructive was added to deploy_graph_staging; may shift model behaviour. [risky] Description of deploy_production changed (68% word delta). [risky] Optional field confirm_destructive was added to deploy_production; may shift model behaviour. [safe] Description of deploy_staging changed (15% word delta). [risky] Optional field confirm_destructive was added to deploy_staging; may shift model behaviour. [risky] Description of get_graph_template_schemas changed (32% word delta). [safe] Description of get_schema_reference changed (3% word delta). [risky] Description of get_template_schemas changed (40% word delta). [safe] Description of update_graph_schema changed (13% word delta). [risky] Optional field dry_run was added to update_graph_schema; may shift model behaviour.","changes":[{"kind":"input_property_removed","path":"inputSchema.properties.description","tool":"create_graph_project","before":{"type":"string","description":"Optional project description"},"detail":"Field `description` was removed from `create_graph_project` input; consumers still sending it may be rejected or silently ignored.","severity":"breaking"},{"kind":"input_property_removed","path":"inputSchema.properties.description","tool":"create_project","before":{"type":"string","description":"Optional project description"},"detail":"Field `description` was removed from `create_project` input; consumers still sending it may be rejected or silently ignored.","severity":"breaking"},{"kind":"description_changed","tool":"deploy_graph_production","after":"Promote graph staging to production. Creates a separate production Neo4j instance with its own credentials and database. Requires paid plan. A deploy that drops data is refused until you pass confirm_destructive=true after reviewing the plan.","before":"Promote graph staging to production. Creates a separate production Neo4j instance with its own credentials and database. Requires paid plan.","detail":"Description of `deploy_graph_production` changed (42% word delta).","severity":"risky","descriptionDelta":0.4242424242424242},{"kind":"input_property_added","path":"inputSchema.properties.confirm_destructive","tool":"deploy_graph_production","after":{"type":"boolean","description":"Set true only after reviewing the plan: a deploy that drops tables, columns, entities, relationships or fields is refused without it"},"detail":"Optional field `confirm_destructive` was added to `deploy_graph_production`; may shift model behaviour.","severity":"risky"},{"kind":"description_changed","tool":"deploy_graph_staging","after":"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. A deploy that drops data is refused until you pass confirm_destructive=true after reviewing the plan.","before":"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.","detail":"Description of `deploy_graph_staging` changed (21% word delta).","severity":"safe","descriptionDelta":0.2068965517241379},{"kind":"input_property_added","path":"inputSchema.properties.confirm_destructive","tool":"deploy_graph_staging","after":{"type":"boolean","description":"Set true only after reviewing the plan: a deploy that drops tables, columns, entities, relationships or fields is refused without it"},"detail":"Optional field `confirm_destructive` was added to `deploy_graph_staging`; may shift model behaviour.","severity":"risky"},{"kind":"description_changed","tool":"deploy_production","after":"Promote staging to production (requires paid plan) A deploy that drops data is refused until you pass confirm_destructive=true after reviewing the plan.","before":"Promote staging to production (requires paid plan)","detail":"Description of `deploy_production` changed (68% word delta).","severity":"risky","descriptionDelta":0.6818181818181819},{"kind":"input_property_added","path":"inputSchema.properties.confirm_destructive","tool":"deploy_production","after":{"type":"boolean","description":"Set true only after reviewing the plan: a deploy that drops tables, columns, entities, relationships or fields is refused without it"},"detail":"Optional field `confirm_destructive` was added to `deploy_production`; may shift model behaviour.","severity":"risky"},{"kind":"description_changed","tool":"deploy_staging","after":"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. A deploy that drops data is refused until you pass confirm_destructive=true after reviewing the plan.","before":"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.","detail":"Description of `deploy_staging` changed (15% word delta).","severity":"safe","descriptionDelta":0.14634146341463417},{"kind":"input_property_added","path":"inputSchema.properties.confirm_destructive","tool":"deploy_staging","after":{"type":"boolean","description":"Set true only after reviewing the plan: a deploy that drops tables, columns, entities, relationships or fields is refused without it"},"detail":"Optional field `confirm_destructive` was added to `deploy_staging`; may shift model behaviour.","severity":"risky"},{"kind":"description_changed","tool":"get_graph_template_schemas","after":"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: Start from Scratch (hierarchy, flat labels, every field type), Social Network (people, organizations, content, follows), Knowledge Graph (topic hierarchy, articles, authors, concepts), Product Catalog (products, categories, suppliers, reviews). Each entry's 'schema' goes to create_graph_project as is or adapted. TIP: Study these templates to understand the correct graph schema format before creating custom schemas.","before":"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.","detail":"Description of `get_graph_template_schemas` changed (32% word delta).","severity":"risky","descriptionDelta":0.3222222222222222},{"kind":"description_changed","tool":"get_schema_reference","after":"Get the reference for ADVANCED schema features the templates do not show — read this before adding authorization or derived fields to a schema. Covers: __policy__ (relationship-based read/write authorization with single- and multi-hop membership paths, and the rules that decide whether adopting it is safe — it replaces creator-ownership per table and fails closed on a null link), computed columns (read-only values derived from other columns), __constraints__ (composite uniqueness), __audit__ (append-only audit log), __admin_write__ (a table only admins write), and how user foreign keys are attributed on create.","before":"Get the reference for ADVANCED schema features the templates do not show — read this before adding authorization or derived fields to a schema. Covers: __policy__ (relationship-based read/write authorization with single- and multi-hop membership paths, and the rules that decide whether adopting it is safe — it replaces creator-ownership per table and fails closed on a null link), computed columns (read-only values derived from other columns), __constraints__ (composite uniqueness), __audit__ (append-only audit log), and how user foreign keys are attributed on create.","detail":"Description of `get_schema_reference` changed (3% word delta).","severity":"safe","descriptionDelta":0.0273972602739726},{"kind":"description_changed","tool":"get_template_schemas","after":"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: Start from Scratch (every field type), Team Collaboration (workspaces, channels, messages, tasks), E-Commerce Store (customer profiles, products, orders and their line items, reviews, shipments). Each entry's 'schema' goes to create_project as is or adapted; its 'tables' notes say how each table is authorized. TIP: Study these templates to understand the correct schema format before creating custom schemas.","before":"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.","detail":"Description of `get_template_schemas` changed (40% word delta).","severity":"risky","descriptionDelta":0.39603960396039606},{"kind":"description_changed","tool":"update_graph_schema","after":"Update a graph project's schema (saves to database, does NOT deploy).\n\n⚠️ Follow ALL rules from create_graph_project:\n• Must have \"nodes\" key with at least one entity\n• Each entity needs \"description\" and \"schema\" with field definitions\n• Each field is {\"type\": \"...\", \"required\": true/false} — required defaults to false\n• Relationships need \"from\", \"to\", and \"cardinality\"\n• Field types: string, integer, float, boolean, date, json\n• Relationship types should be UPPER_SNAKE_CASE\n• Entity names should be PascalCase\n\nWORKFLOW:\n1. Use get_graph_schema to see current schema\n2. Modify following all rules\n3. Call update_graph_schema (saves only)\n4. Call deploy_graph_staging to apply changes\n5. Monitor with get_job_status\n\nDRY RUN: pass dry_run=true to preview what a deploy WOULD change (renames, deletions) without saving.\n\nNOTE: This only saves the schema. You MUST call deploy_graph_staging afterwards to deploy.","before":"Update a graph project's schema (saves to database, does NOT deploy).\n\n⚠️ Follow ALL rules from create_graph_project:\n• Must have \"nodes\" key with at least one entity\n• Each entity needs \"description\" and \"schema\" with field definitions\n• Each field is {\"type\": \"...\", \"required\": true/false} — required defaults to false\n• Relationships need \"from\", \"to\", and \"cardinality\"\n• Field types: string, integer, float, boolean, date, json\n• Relationship types should be UPPER_SNAKE_CASE\n• Entity names should be PascalCase\n\nWORKFLOW:\n1. Use get_graph_schema to see current schema\n2. Modify following all rules\n3. Call update_graph_schema (saves only)\n4. Call deploy_graph_staging to apply changes\n5. Monitor with get_job_status\n\nNOTE: This only saves the schema. You MUST call deploy_graph_staging afterwards to deploy.","detail":"Description of `update_graph_schema` changed (13% word delta).","severity":"safe","descriptionDelta":0.13186813186813184},{"kind":"input_property_added","path":"inputSchema.properties.dry_run","tool":"update_graph_schema","after":{"type":"boolean","description":"Preview the planned migration (renames/deletions) without saving or deploying. Nothing is applied."},"detail":"Optional field `dry_run` was added to `update_graph_schema`; may shift model behaviour.","severity":"risky"}],"published_at":"2026-09-15T20:18:20.496Z"}]