mcp/neo4j-data-modeling

Verified Publisher

By mcp

Updated 3 months ago

MCP server that assists in creating, validating and visualizing graph data models.

Image
Machine learning & AI
1

10K+

mcp/neo4j-data-modeling repository overview

Neo4j Data Modeling MCP Server

MCP server that assists in creating, validating and visualizing graph data models.

What is an MCP Server?

MCP Info

Image Building Info

AttributeDetails
Dockerfilehttps://github.com/neo4j-contrib/mcp-neo4j/blob/dbc01ba78f171851f2d57dcd125b028c29912fd1/servers/mcp-neo4j-data-modeling/Dockerfile
Commitdbc01ba78f171851f2d57dcd125b028c29912fd1
Docker Image built byDocker Inc.
Docker Scout Health ScoreDocker Scout Health Score
Verify SignatureCOSIGN_REPOSITORY=mcp/signatures cosign verify mcp/neo4j-data-modeling --key https://raw.githubusercontent.com/docker/keyring/refs/heads/main/public/mcp/latest.pub
LicenceMIT License

Available Tools (16)

Tools provided by this ServerShort Description
export_to_arrows_jsonExport to Arrows JSON
export_to_neo4j_graphrag_pkg_schemaExport to Neo4j GraphRAG Schema
export_to_owl_turtleExport to OWL Turtle
export_to_pydantic_modelsExport to Pydantic Models
get_constraints_cypher_queriesGet Constraints Cypher Queries
get_example_data_modelGet Example Data Model
get_mermaid_config_strGet Mermaid Config
get_node_cypher_ingest_queryGet Node Cypher Ingest Query
get_relationship_cypher_ingest_queryGet Relationship Cypher Ingest Query
list_example_data_modelsList Example Data Models
load_from_arrows_jsonLoad from Arrows JSON
load_from_neo4j_graphrag_pkg_schemaLoad from Neo4j GraphRAG Schema
load_from_owl_turtleLoad from OWL Turtle
validate_data_modelValidate Data Model
validate_nodeValidate Node
validate_relationshipValidate Relationship

Tools Details

Tool: export_to_arrows_json

Export 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. Accepts either a DataModel object or a JSON string of the DataModel object.

ParametersTypeDescription
data_modelstring

This tool is read-only. It does not modify its environment.


Tool: export_to_neo4j_graphrag_pkg_schema

Export a data model to a Neo4j Graphrag Python Package schema. Returns a dictionary containing the Neo4j Graphrag Python Package schema. Accepts either a DataModel object or a JSON string of the DataModel object.

ParametersTypeDescription
data_modelstring

This tool is read-only. It does not modify its environment.


Tool: export_to_owl_turtle

Export a data model to an OWL Turtle string. This process is lossy since OWL does not support properties on relationships. Returns a string representation of the data model in OWL Turtle format. Accepts either a DataModel object or a JSON string of the DataModel object.

ParametersTypeDescription
data_modelstring

This tool is read-only. It does not modify its environment.


Tool: export_to_pydantic_models

Export a data model to Pydantic models. Returns a string representation of the Pydantic models for the data model as a Python file. Accepts either a DataModel object or a JSON string of the DataModel object.

ParametersTypeDescription
data_modelstring

This tool is read-only. It does not modify its environment.


Tool: get_constraints_cypher_queries

Get 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. Accepts either a DataModel object or a JSON string of the DataModel object.

ParametersTypeDescription
data_modelstring

This tool is read-only. It does not modify its environment.


Tool: get_example_data_model

Get an example graph data model from the available templates. Returns a DataModel object and the Mermaid visualization configuration for the example graph data model.

ParametersTypeDescription
example_namestringName of the example to load: 'patient_journey', 'supply_chain', 'software_dependency', 'oil_gas_monitoring', 'customer_360', 'fraud_aml', or 'health_insurance_fraud'

This tool is read-only. It does not modify its environment.


Tool: get_mermaid_config_str

Get the Mermaid configuration string for the data model. This may be visualized in Claude Desktop and other applications with Mermaid support. Accepts either a DataModel object or a JSON string of the DataModel object.

ParametersTypeDescription
data_modelstring

This tool is read-only. It does not modify its environment.


Tool: get_node_cypher_ingest_query

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

ParametersTypeDescription
nodestringThe node to get the Cypher query for. Accepts either a Node object or a JSON string of the Node object.

This tool is read-only. It does not modify its environment.


Tool: get_relationship_cypher_ingest_query

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

ParametersTypeDescription
data_modelstringThe data model snippet that contains the relationship, start node and end node. Accepts either a DataModel object or a JSON string of the DataModel object.
relationship_end_node_labelstringThe label of the relationship end node.
relationship_start_node_labelstringThe label of the relationship start node.
relationship_typestringThe type of the relationship to get the Cypher query for.

This tool is read-only. It does not modify its environment.


Tool: list_example_data_models

List all available example data models with descriptions. Returns a dictionary with example names and their descriptions.

Tool: load_from_arrows_json

Load a data model from the Arrows web application format. Returns a data model as a JSON string.

ParametersTypeDescription
arrows_data_model_dictobject

This tool is read-only. It does not modify its environment.


Tool: load_from_neo4j_graphrag_pkg_schema

Load a data model from a Neo4j Graphrag Python Package schema. Returns a DataModel object. Accepts a Neo4j Graphrag Python Package schema dictionary.

ParametersTypeDescription
neo4j_graphrag_python_package_schemaobject

This tool is read-only. It does not modify its environment.


Tool: load_from_owl_turtle

Load a data model from an OWL Turtle string. This process is lossy and some components of the ontology may be lost in the data model schema. Returns a DataModel object.

ParametersTypeDescription
owl_turtle_strstring

This tool is read-only. It does not modify its environment.


Tool: validate_data_model

Validate 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. Accepts either a DataModel object or a JSON string of the DataModel object.

ParametersTypeDescription
data_modelstring
return_validatedboolean optional

This tool is read-only. It does not modify its environment.


Tool: validate_node

Validate a single node. Returns True if the node is valid, otherwise raises a ValueError. If return_validated is True, returns the validated node. Accepts either a Node object or a JSON string of the Node object.

ParametersTypeDescription
nodestring
return_validatedboolean optional

This tool is read-only. It does not modify its environment.


Tool: validate_relationship

Validate a single relationship. Returns True if the relationship is valid, otherwise raises a ValueError. If return_validated is True, returns the validated relationship. Accepts either a Relationship object or a JSON string of the Relationship object.

ParametersTypeDescription
relationshipstring
return_validatedboolean optional

This tool is read-only. It does not modify its environment.


Use this MCP Server

{
  "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",
        "-e",
        "NEO4J_MCP_SERVER_ALLOW_ORIGINS",
        "-e",
        "NEO4J_MCP_SERVER_ALLOWED_HOSTS",
        "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/",
        "NEO4J_MCP_SERVER_ALLOW_ORIGINS": "example.com,www.example.com",
        "NEO4J_MCP_SERVER_ALLOWED_HOSTS": "localhost,127.0.0.1"
      }
    }
  }
}

Why is it safer to run MCP Servers with Docker?

Install from MCP:Hub

Tag summary

Content type

Image

Digest

sha256:3c72de00d

Size

275.3 MB

Last updated

3 months ago

docker pull mcp/neo4j-data-modeling

This week's pulls

Pulls:

490

Jul 6 to Jul 12