You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -11,32 +11,65 @@ A Model Context Protocol (MCP) server implementation that provides database inte
11
11
The server offers these core tools:
12
12
13
13
#### 📊 Query Tools
14
-
-`read-neo4j-cypher`
14
+
-`read_neo4j_cypher`
15
15
- Execute Cypher read queries to read data from the database
16
16
- Input:
17
17
-`query` (string): The Cypher query to execute
18
18
-`params` (dictionary, optional): Parameters to pass to the Cypher query
19
19
- Returns: Query results as JSON serialized array of objects
20
20
21
-
-`write-neo4j-cypher`
21
+
-`write_neo4j_cypher`
22
22
- Execute updating Cypher queries
23
23
- Input:
24
24
-`query` (string): The Cypher update query
25
25
-`params` (dictionary, optional): Parameters to pass to the Cypher query
26
26
- Returns: A JSON serialized result summary counter with `{ nodes_updated: number, relationships_created: number, ... }`
27
27
28
28
#### 🕸️ Schema Tools
29
-
-`get-neo4j-schema`
29
+
-`get_neo4j_schema`
30
30
- Get a list of all nodes types in the graph database, their attributes with name, type and relationships to other node types
31
31
- No input required
32
32
- Returns: JSON serialized list of node labels with two dictionaries: one for attributes and one for relationships
33
33
34
34
### 🏷️ Namespacing
35
35
36
-
The server supports namespacing to allow multiple Neo4j MCP servers to be used simultaneously. When a namespace is provided, all tool names are prefixed with the namespace followed by a hyphen (e.g., `mydb-read-neo4j-cypher`).
36
+
The server supports namespacing to allow multiple Neo4j MCP servers to be used simultaneously. When a namespace is provided, all tool names are prefixed with the namespace followed by a hyphen (e.g., `mydb-read_neo4j_cypher`).
37
37
38
38
This is useful when you need to connect to multiple Neo4j databases or instances from the same session.
39
39
40
+
## 🏗️ Local Development & Deployment
41
+
42
+
### 🐳 Local Docker Development
43
+
44
+
Build and run locally for testing or remote deployment:
45
+
46
+
```bash
47
+
# Build the Docker image with a custom name
48
+
docker build -t mcp-neo4j-cypher:latest .
49
+
50
+
# Run locally (uses http transport by default for Docker)
51
+
docker run -p 8000:8000 \
52
+
-e NEO4J_URI="bolt://host.docker.internal:7687" \
53
+
-e NEO4J_USERNAME="neo4j" \
54
+
-e NEO4J_PASSWORD="your-password" \
55
+
mcp-neo4j-cypher:latest
56
+
57
+
# Access the server at http://localhost:8000/api/mcp/
58
+
```
59
+
60
+
### 🚀 Transport Modes
61
+
62
+
The server supports different transport protocols depending on your deployment:
63
+
64
+
-**STDIO** (default for local development): Standard input/output for Claude Desktop and local tools
65
+
-**HTTP** (default for Docker): RESTful HTTP for web deployments and microservices
66
+
-**SSE**: Server-Sent Events for legacy web-based deployments
67
+
68
+
Choose your transport based on use case:
69
+
-**Local development/Claude Desktop**: Use `stdio`
70
+
-**Docker/Remote deployment**: Use `http`
71
+
-**Legacy web clients**: Use `sse`
72
+
40
73
## 🔧 Usage with Claude Desktop
41
74
42
75
### Using DXT
@@ -66,37 +99,23 @@ Add the server to your `claude_desktop_config.json` with the database connection
66
99
}
67
100
```
68
101
69
-
### 🌐 HTTP Transport Mode
102
+
### 🌐 HTTP Transport Configuration
70
103
71
-
The server supports HTTP transport for web-based deployments and microservices:
104
+
For custom HTTP configurations beyond the defaults:
@@ -212,30 +199,37 @@ Here is an example connection for the movie database with Movie, Person (Actor,
212
199
"-e", "NEO4J_USERNAME=neo4j",
213
200
"-e", "NEO4J_PASSWORD=<your-password>",
214
201
"-e", "NEO4J_NAMESPACE=mydb",
202
+
"-e", "NEO4J_TRANSPORT=http",
203
+
"-e", "NEO4J_MCP_SERVER_HOST=0.0.0.0",
204
+
"-e", "NEO4J_MCP_SERVER_PORT=8000",
205
+
"-e", "NEO4J_MCP_SERVER_PATH=/api/mcp/",
215
206
"mcp/neo4j-cypher:latest"
216
207
]
217
208
}
218
209
}
219
210
```
220
211
212
+
**Note**: This assumes you've built the image locally with `docker build -t mcp-neo4j-cypher:latest .`. Docker transport defaults to HTTP mode.
213
+
221
214
## 🐳 Docker Deployment
222
215
223
-
The Neo4j MCP server can be deployed using Docker for both local development and production use. Docker deployment supports both stdio and SSE transports.
216
+
The Neo4j MCP server can be deployed using Docker for remote deployments. Docker deployment uses HTTP transport by default for web accessibility.
224
217
225
-
### 📦 Pre-built Image
218
+
### 📦 Using Your Built Image
226
219
227
-
Use the pre-built Docker image for quick deployment:
220
+
After building locally with `docker build -t mcp-neo4j-cypher:latest .`:
228
221
229
222
```bash
230
-
# Run with SSE transport
223
+
# Run with http transport (default for Docker)
231
224
docker run --rm -p 8000:8000 \
232
225
-e NEO4J_URI="bolt://host.docker.internal:7687" \
233
226
-e NEO4J_USERNAME="neo4j" \
234
227
-e NEO4J_PASSWORD="password" \
235
228
-e NEO4J_DATABASE="neo4j" \
236
-
-e NEO4J_TRANSPORT="sse" \
229
+
-e NEO4J_TRANSPORT="http" \
237
230
-e NEO4J_MCP_SERVER_HOST="0.0.0.0" \
238
231
-e NEO4J_MCP_SERVER_PORT="8000" \
232
+
-e NEO4J_MCP_SERVER_PATH="/api/mcp/" \
239
233
mcp/neo4j-cypher:latest
240
234
```
241
235
@@ -247,14 +241,15 @@ docker run --rm -p 8000:8000 \
247
241
|`NEO4J_USERNAME`|`neo4j`| Neo4j username |
248
242
|`NEO4J_PASSWORD`|`password`| Neo4j password |
249
243
|`NEO4J_DATABASE`|`neo4j`| Neo4j database name |
250
-
|`NEO4J_TRANSPORT`|`stdio`| Transport protocol (`stdio` or `sse`) |
244
+
|`NEO4J_TRANSPORT`|`stdio`(local), `http` (Docker) | Transport protocol (`stdio`, `http`, or `sse`) |
0 commit comments