MCP server that assists in creating, validating and visualizing graph data models.
816
11 Tools
Version 4.43 or later needs to be installed to add the server automatically
Use cases
About
MCP server that assists in creating, validating and visualizing graph data models.
| Attribute | Details |
|---|---|
| Docker Image | mcp/neo4j-data-modeling |
| Author | neo4j-contrib |
| Repository | https://github.com/neo4j-contrib/mcp-neo4j |
| Dockerfile | https://github.com/neo4j-contrib/mcp-neo4j/blob/main/servers/mcp-neo4j-data-modeling/Dockerfile |
| Docker Image built by | Docker Inc. |
| Docker Scout Health Score | |
| Verify Signature | COSIGN_REPOSITORY=mcp/signatures cosign verify mcp/neo4j-data-modeling --key https://raw.githubusercontent.com/docker/keyring/refs/heads/main/public/mcp/latest.pub |
| Licence | MIT License |
| Tools provided by this Server | Short Description |
|---|---|
export_to_arrows_json | Export the data model to the Arrows web application format. |
get_constraints_cypher_queries | Get the Cypher queries to create constraints on the data model. |
get_example_data_model | Get an example graph data model from the available templates. |
get_mermaid_config_str | Get the Mermaid configuration string for the data model. |
get_node_cypher_ingest_query | Get the Cypher query to ingest a list of Node records into a Neo4j database. |
get_relationship_cypher_ingest_query | Get the Cypher query to ingest a list of Relationship records into a Neo4j database. |
list_example_data_models | List all available example data models with descriptions. |
load_from_arrows_json | Load a data model from the Arrows web application format. |
validate_data_model | Validate the entire data model. |
validate_node | Validate a single node. |
validate_relationship | Validate a single relationship. |
export_to_arrows_jsonExport the data model to the Arrows web application format. Returns a JSON string. This should be presented to the user as an artifact if possible.
| Parameters | Type | Description |
|---|---|---|
data_model | string |
get_constraints_cypher_queriesGet the Cypher queries to create constraints on the data model. This creates range indexes on the key properties of the nodes and relationships and enforces uniqueness and existence of the key properties.
| Parameters | Type | Description |
|---|---|---|
data_model | string |
get_example_data_modelGet an example graph data model from the available templates. Returns a DataModel object and the Mermaid visualization configuration for the example graph data model.
| Parameters | Type | Description |
|---|---|---|
example_name | string | Name of the example to load: 'patient_journey', 'supply_chain', 'software_dependency', 'oil_gas_monitoring', 'customer_360', 'fraud_aml', or 'health_insurance_fraud' |
get_mermaid_config_strGet the Mermaid configuration string for the data model. This may be visualized in Claude Desktop and other applications with Mermaid support.
| Parameters | Type | Description |
|---|---|---|
data_model | string |
get_node_cypher_ingest_queryGet the Cypher query to ingest a list of Node records into a Neo4j database. This should be used to ingest data into a Neo4j database. This is a parameterized Cypher query that takes a list of records as input to the $records parameter.
| Parameters | Type | Description |
|---|---|---|
node | string | The node to get the Cypher query for. |
get_relationship_cypher_ingest_queryGet the Cypher query to ingest a list of Relationship records into a Neo4j database. This should be used to ingest data into a Neo4j database. This is a parameterized Cypher query that takes a list of records as input to the $records parameter. The records must contain the Relationship properties, if any, as well as the sourceId and targetId properties of the start and end nodes respectively.
| Parameters | Type | Description |
|---|---|---|
data_model | string | The data model snippet that contains the relationship, start node and end node. |
relationship_end_node_label | string | The label of the relationship end node. |
relationship_start_node_label | string | The label of the relationship start node. |
relationship_type | string | The type of the relationship to get the Cypher query for. |
list_example_data_modelsList all available example data models with descriptions. Returns a dictionary with example names and their descriptions.
load_from_arrows_jsonLoad a data model from the Arrows web application format. Returns a data model as a JSON string.
| Parameters | Type | Description |
|---|---|---|
arrows_data_model_dict | object |
validate_data_modelValidate the entire data model. Returns True if the data model is valid, otherwise raises a ValueError. If return_validated is True, returns the validated data model.
| Parameters | Type | Description |
|---|---|---|
data_model | string | |
return_validated | booleanoptional |
validate_nodeValidate a single node. Returns True if the node is valid, otherwise raises a ValueError. If return_validated is True, returns the validated node.
| Parameters | Type | Description |
|---|---|---|
node | string | |
return_validated | booleanoptional |
validate_relationshipValidate a single relationship. Returns True if the relationship is valid, otherwise raises a ValueError. If return_validated is True, returns the validated relationship.
| Parameters | Type | Description |
|---|---|---|
relationship | string | |
return_validated | booleanoptional |
{
"mcpServers": {
"neo4j-data-modeling": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"NEO4J_TRANSPORT",
"-e",
"NEO4J_MCP_SERVER_HOST",
"-e",
"NEO4J_MCP_SERVER_PORT",
"-e",
"NEO4J_MCP_SERVER_PATH",
"mcp/neo4j-data-modeling"
],
"env": {
"NEO4J_TRANSPORT": "http",
"NEO4J_MCP_SERVER_HOST": "0.0.0.0",
"NEO4J_MCP_SERVER_PORT": "8000",
"NEO4J_MCP_SERVER_PATH": "/mcp/"
}
}
}
}
Manual installation
You can install the MCP server using:
Installation for