Create Graph Project
create_graph_projectCreate 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:
"nodes" key is REQUIRED — must contain at least one entity
Each entity needs "description" and "schema" with field definitions
Each field is {"type": "...", "required": true/false} — required defaults to false
Relationship "from"/"to" must reference defined node names
Relationship types should be UPPER_SNAKE_CASE
Entity names should be PascalCase
Automatic fields (id, created_at, updated_at) are NOT needed
Use get_graph_template_schemas FIRST to see valid examples
WORKFLOW:
Use get_graph_template_schemas to see valid examples
Create schema following the rules above
Call this tool
Monitor with get_job_status (2-5 min deployment)
After creation, use get_job_status with returned job_id to monitor deployment.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Project name | |
| schema | Yes | Graph schema with 'nodes' and optionally 'relationships' keys. Use get_graph_template_schemas to see valid examples. | |
| cluster_id | Yes | 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 a pool via the Resource Pools UI first, then pass its id here. | |
| description | No | Optional project description |