使用说明
🚀💖☁️ Neo4j Aura数据库管理器MCP服务器
mcp名称:io.github.neo4j-contrib/mcp-neo4j-aura-manager
🌟 概述
一种模型上下文协议(MCP)服务器实现,通过Neo4j Aura API提供管理Neo4j Aura数据库实例的工具。
此服务器允许您直接通过Claude创建、监视和管理Neo4j Aura实例,从而轻松配置和维护您的图形数据库基础设施。
🔑 认证
使用Neo4j Aura API进行身份验证需要:
- 客户端ID
- 客户端密钥
您可以从Neo4j Aura控制台获取这些凭据,请参阅 Aura API文档
这里是 API规范
📦 组件
🔧 工具
服务器提供以下核心工具:
🛠️ 实例管理
-
list_instances- 列出所有Neo4j Aura数据库实例
- 无需输入
- 返回:所有实例及其详细信息的列表
-
get_instance_details- 按ID获取特定实例或多个实例的详细信息
- 输入:
instance_ids(字符串或数组):要检索的实例的ID,或实例ID数组
- 返回:实例的详细信息
-
get_instance_by_name- 按名称查找实例
- 输入:
name(string):要查找的实例的名称
- 返回:如果找到实例详细信息
-
create_instance- 创建新的Neo4j Aura数据库实例
- 输入:
tenant_id(string):将创建实例的租户/项目的IDname(string):新实例的名称memory(整数):内存分配(GB)region(string):实例的区域(例如“us-east-1”)version(字符串):Neo4j版本(例如“5.15”)type(字符串,可选):实例类型(企业或专业)vector_optimized(boolean,可选):实例是否针对向量操作进行了优化
- 返回:已创建实例详细信息
-
update_instance_name- 更新实例的名称
- 输入:
instance_id(string):要更新的实例的IDname(string):实例的新名称
- 返回:已更新实例详细信息
-
update_instance_memory- 更新实例的内存分配
- 输入:
instance_id(string):要更新的实例的IDmemory(整数):以GB为单位的新内存分配
- 返回:已更新实例详细信息
-
update_instance_vector_optimization- 更新实例的向量优化设置
- 输入:
instance_id(string):要更新的实例的IDvector_optimized(boolean):实例是否应针对向量操作进行优化
- 返回:已更新实例详细信息
-
pause_instance- 暂停数据库实例
- 输入:
instance_id(string):要暂停的实例的ID
- 返回:实例状态信息
-
resume_instance- 恢复暂停的数据库实例
- 输入:
instance_id(string):要恢复的实例的ID
- 返回:实例状态信息
-
delete_instance- 删除数据库实例
- 输入:
tenant_id(string):实例所在租户/项目的IDinstance_id(string):要删除的实例的ID
- 返回:删除状态信息
🏢 租户/项目管理
-
list_tenants- 列出所有Neo4j Aura租户/项目
- 无需输入
- 退货:所有租户及其详细信息的列表
-
get_tenant_details- 获取特定租户/项目的详细信息
- 输入:
tenant_id(string):要检索的租户/项目的ID
- 返回:租户/项目的详细信息
🔧 使用Claude Desktop
💾 安装
pip install mcp-neo4j-aura-manager
⚙️ 配置
将服务器添加到您的 claude_desktop_config.json:
"mcpServers": {
"neo4j-aura": {
"command": "uvx",
"args": [
"mcp-neo4j-aura-manager@0.4.8",
"--client-id",
"<your-client-id>",
"--client-secret",
"<your-client-secret>"
]
}
}
或者,您可以设置环境变量:
"mcpServers": {
"neo4j-aura": {
"command": "uvx",
"args": [ "mcp-neo4j-aura-manager@0.4.8" ],
"env": {
"NEO4J_AURA_CLIENT_ID": "<your-client-id>",
"NEO4J_AURA_CLIENT_SECRET": "<your-client-secret>"
}
}
}
🐳 使用Docker
"mcpServers": {
"neo4j-aura": {
"command": "docker",
"args": [
"run",
"--rm",
"-e", "NEO4J_AURA_CLIENT_ID=${NEO4J_AURA_CLIENT_ID}",
"-e", "NEO4J_AURA_CLIENT_SECRET=${NEO4J_AURA_CLIENT_SECRET}",
"mcp-neo4j-aura-manager:0.4.8"
]
}
}
🏷️ 多租户部署的命名空间
服务器支持使用命名空间为多租户部署的工具名称添加前缀:
"mcpServers": {
"neo4j-aura-app1": {
"command": "uvx",
"args": [
"mcp-neo4j-aura-manager@0.4.8",
"--client-id", "<your-client-id>",
"--client-secret", "<your-client-secret>",
"--namespace", "app1"
]
},
"neo4j-aura-app2": {
"command": "uvx",
"args": [
"mcp-neo4j-aura-manager@0.4.8",
"--client-id", "<your-client-id>",
"--client-secret", "<your-client-secret>",
"--namespace", "app2"
]
}
}
CLI使用情况
# With namespace
mcp-neo4j-aura-manager --client-id <id> --client-secret <secret> --namespace myapp
# Tools become: myapp-list_instances, myapp-create_instance, etc.
环境变量
export NEO4J_AURA_CLIENT_ID=your_client_id
export NEO4J_AURA_CLIENT_SECRET=your_client_secret
export NEO4J_NAMESPACE=myapp
mcp-neo4j-aura-manager
带命名空间的Docker
docker run -e NEO4J_AURA_CLIENT_ID=<id> \
-e NEO4J_AURA_CLIENT_SECRET=<secret> \
-e NEO4J_NAMESPACE=myapp \
mcp-neo4j-aura-manager
🌐 HTTP传输模式
服务器支持基于web的部署和微服务的HTTP传输:
# Basic HTTP mode (defaults: host=127.0.0.1, port=8000, path=/mcp/)
mcp-neo4j-aura-manager --transport http
# Custom HTTP configuration
mcp-neo4j-aura-manager --transport http --host 127.0.0.1 --port 8080 --path /api/mcp/
HTTP配置的环境变量:
export NEO4J_TRANSPORT=http
export NEO4J_MCP_SERVER_HOST=127.0.0.1
export NEO4J_MCP_SERVER_PORT=8080
export NEO4J_MCP_SERVER_PATH=/api/mcp/
export NEO4J_MCP_SERVER_ALLOWED_HOSTS="localhost,127.0.0.1"
export NEO4J_MCP_SERVER_ALLOW_ORIGINS="http://localhost:3000"
export NEO4J_NAMESPACE=myapp
mcp-neo4j-aura-manager
🔄 运输方式
服务器支持三种传输模式:
- 工作室 (默认):本地工具和Claude Desktop的标准输入/输出
- 上海证券交易所:基于web的部署的服务器发送事件
- 超文本传输协议:适用于现代web部署和微服务的流式HTTP
🔒 安全保护
服务器包括全面的安全保护 安全默认值 在使用HTTP传输时,可以防止常见的基于网络的攻击,同时保留完整的MCP功能。
🛡️ DNS重新绑定保护
可信主机中间件 验证主机标头以防止DNS重新绑定攻击:
默认安全:
- 仅
localhost和127.0.0.1默认情况下允许主机 - 恶意网站无法诱骗浏览器访问您的本地服务器
环境变量:
export NEO4J_MCP_SERVER_ALLOWED_HOSTS="example.com,www.example.com"
🌐 CORS保护
跨源资源共享(CORS) 默认情况下,保护会阻止基于浏览器的请求:
环境变量:
export NEO4J_MCP_SERVER_ALLOW_ORIGINS="https://example.com,https://example.com"
🔧 完成安全配置
开发设置:
mcp-neo4j-aura-manager --transport http \
--allowed-hosts "localhost,127.0.0.1" \
--allow-origins "http://localhost:3000"
生产设置:
mcp-neo4j-aura-manager --transport http \
--allowed-hosts "example.com,www.example.com" \
--allow-origins "https://example.com,https://example.com"
🚨 安全最佳实践
对于 allow_origins:
- 请具体说明:
["https://example.com", "https://example.com"] - 从不使用
"*"在生产中持有证书 - 在生产中使用HTTPS源
对于 allowed_hosts:
- 包括您的实际域名:
["example.com", "www.example.com"] - 仅包括用于开发的localhost
- 从不使用
"*"除非你了解风险
🐳 Docker部署
Neo4j Aura Manager MCP服务器可以使用Docker进行远程部署。Docker部署应该使用HTTP传输来实现web可访问性。为了将此部署与Claude Desktop等应用程序集成,您必须在MCP配置中使用代理,例如 mcp-remote.
🐳 使用Docker for Claude Desktop
在这里,我们使用Docker Hub托管的Aura Manager MCP服务器映像和stdio传输,与Claude Desktop一起使用。
配置详细信息:
-i:交互模式-保持STDIN打开以进行stdio传输通信--rm:容器退出时自动删除(清理)-p 8000:8000:端口映射-将主机端口8000映射到集装箱端口8000NEO4J_TRANSPORT=stdio:使用stdio传输实现Claude Desktop兼容性NEO4J_AURA_CLIENT_ID和NEO4J_AURA_CLIENT_SECRET:您的Aura API证书
{
"mcpServers": {
"neo4j-aura": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-p",
"8000:8000",
"-e", "NEO4J_AURA_CLIENT_ID=your-client-id",
"-e", "NEO4J_AURA_CLIENT_SECRET=your-client-secret",
"-e", "NEO4J_TRANSPORT=stdio",
"mcp/neo4j-aura-manager:latest"
]
}
}
}
📦 使用您的内置图像
在当地建造后 docker build -t mcp-neo4j-aura-manager:latest .:
# Build the image
docker build -t mcp-neo4j-aura-manager:<version> .
# Run with http transport (default for Docker)
docker run --rm -p 8000:8000 \
-e NEO4J_AURA_CLIENT_ID="your-client-id" \
-e NEO4J_AURA_CLIENT_SECRET="your-client-secret" \
-e NEO4J_TRANSPORT="http" \
-e NEO4J_MCP_SERVER_HOST="0.0.0.0" \
-e NEO4J_MCP_SERVER_PORT="8000" \
-e NEO4J_MCP_SERVER_PATH="/mcp/" \
mcp-neo4j-aura-manager:<version>
# Run with security middleware for production
docker run --rm -p 8000:8000 \
-e NEO4J_AURA_CLIENT_ID="your-client-id" \
-e NEO4J_AURA_CLIENT_SECRET="your-client-secret" \
-e NEO4J_TRANSPORT="http" \
-e NEO4J_MCP_SERVER_HOST="0.0.0.0" \
-e NEO4J_MCP_SERVER_PORT="8000" \
-e NEO4J_MCP_SERVER_PATH="/mcp/" \
-e NEO4J_MCP_SERVER_ALLOWED_HOSTS="example.com,www.example.com" \
-e NEO4J_MCP_SERVER_ALLOW_ORIGINS="https://example.com" \
mcp-neo4j-aura-manager:<version>
🔧 环境变量
| 变量 | 默认值 | 描述 |
|---|---|---|
NEO4J_AURA_CLIENT_ID |
(无) | Neo4j Aura API客户端ID |
NEO4J_AURA_CLIENT_SECRET |
(无) | Neo4j Aura API客户端机密 |
NEO4J_NAMESPACE |
(空-无前缀) | 工具名称的命名空间前缀(例如。, myapp-list_instances) |
NEO4J_TRANSPORT |
stdio (本地), http (远程) |
传输协议(stdio, http,或 sse) |
NEO4J_MCP_SERVER_HOST |
127.0.0.1 (本地) |
要绑定的主机 |
NEO4J_MCP_SERVER_PORT |
8000 |
HTTP/SSE传输端口 |
NEO4J_MCP_SERVER_PATH |
/mcp/ |
访问MCP服务器的路径 |
NEO4J_MCP_SERVER_ALLOW_ORIGINS |
(空-默认安全) | 允许的CORS源的逗号分隔列表 |
NEO4J_MCP_SERVER_ALLOWED_HOSTS |
localhost,127.0.0.1 |
以逗号分隔的允许主机列表(DNS重新绑定保护) |
NEO4J_MCP_SERVER_STATELESS |
false |
为HTTP/SSE传输启用无状态模式(true/false,对stdio无效) |
🌐 传统Web访问的SSE传输
当使用SSE传输(用于传统web客户端)时,服务器会公开一个HTTP端点:
# Start the server with SSE transport
docker run -d -p 8000:8000 \
-e NEO4J_AURA_CLIENT_ID="your-client-id" \
-e NEO4J_AURA_CLIENT_SECRET="your-client-secret" \
-e NEO4J_TRANSPORT="sse" \
-e NEO4J_MCP_SERVER_HOST="0.0.0.0" \
-e NEO4J_MCP_SERVER_PORT="8000" \
--name neo4j-aura-mcp-server \
mcp-neo4j-aura-manager:latest
# Test the SSE endpoint
curl http://localhost:8000/sse
# Use with MCP Inspector
npx @modelcontextprotocol/inspector http://localhost:8000/sse
🔗 Claude桌面与Docker的集成
对于Claude Desktop与使用http传输的Docker化服务器的集成:
{
"mcpServers": {
"neo4j-aura-docker": {
"command": "npx",
"args": ["-y", "mcp-remote@latest", "http://localhost:8000/mcp/"]
}
}
}
备注:首先使用HTTP传输启动Docker容器,然后Claude Desktop可以通过HTTP端点和代理服务器连接到它,如 mcp-remote.
📝 使用示例
🔍 概述我的租户
🔎 按名称查找实例
📋 列出实例并查找暂停的实例
▶️ 恢复暂停的实例
➕ 创建新实例
🚀 发展
📦 先决条件
- 安装
uv(通用虚拟环境):
# Using pip
pip install uv
# Using Homebrew on macOS
brew install uv
# Using cargo (Rust package manager)
cargo install uv
- 克隆存储库并设置开发环境:
# Clone the repository
git clone https://github.com/yourusername/mcp-neo4j-aura-manager.git
cd mcp-neo4j-aura-manager
# Create and activate virtual environment using uv
uv venv
source .venv/bin/activate # On Unix/macOS
.venv\Scripts\activate # On Windows
# Install dependencies including dev dependencies
uv pip install -e ".[dev]"
📄 许可证
此MCP服务器根据MIT许可证获得许可。这意味着您可以根据MIT许可证的条款和条件自由使用、修改和分发软件。有关更多详细信息,请参阅项目存储库中的LICENSE文件。