Create a new Neo4j graph database project from a hierarchical JSON schema.
⚠️ GRAPH SCHEMA FORMAT — READ BEFORE CREATING:
Graph schemas define nodes (entities) and relationships, NOT flat database tables.
Each field is a dict with "type" and optional "required": true (defaults to false).
SCHEMA STRUCTURE:
{
"nodes": {
"EntityName": {
"description": "What this entity represents",
"flat_labels": ["AdditionalLabel"],
"schema": {
"field_name": {"type": "string", "required": true},
"other_field": {"type": "integer"}
}
}
},
"relationships": {
"RELATIONSHIP_TYPE": {
"from": "EntityName",
"to": "OtherEntity",
"cardinality": "MANY_TO_MANY",
"data_schema": {
"field_name": {"type": "date"}
}
}
}
}
FIELD TYPES: string, integer, float, boolean, date, json
CARDINALITY OPTIONS: ONE_TO_ONE, ONE_TO_MANY, MANY_TO_ONE, MANY_TO_MANY
HIERARCHICAL NODES:
Nest entities inside parent entities to create type hierarchies.
Child entities inherit parent labels automatically.
Example:
{
"nodes": {
"Animal": {
"description": "Base animal entity",
"flat_labels": ["LivingThing"],
"schema": {
"name": {"type": "string", "required": true},
"habitat": {"type": "string"}
},
"Dog": {
"description": "A dog (inherits Animal labels)",
"flat_labels": ["Pet"],
"schema": {
"breed": {"type": "string", "required": true},
"trained": {"type": "boolean"}
}
}
}
},
"relationships": {
"OWNS": {
"from": "Person",
"to": "Animal",
"cardinality": "ONE_TO_MANY"
}
}
}
RULES:
1. "nodes" key is REQUIRED — must contain at least one entity
2. Each entity needs "description" and "schema" with field definitions
3. Each field is {"type": "...", "required": true/false} — required defaults to false
4. Relationship "from"/"to" must reference defined node names
5. Relationship types should be UPPER_SNAKE_CASE
6. Entity names should be PascalCase
7. Automatic fields (id, created_at, updated_at) are NOT needed
8. Use get_graph_template_schemas FIRST to see valid examples
WORKFLOW:
1. Use get_graph_template_schemas to see valid examples
2. Create schema following the rules above
3. Call this tool
4. Monitor with get_job_status (2-5 min deployment)
After creation, use get_job_status with returned job_id to monitor deployment.