返回市场
mcp-neo4j云 Aura API

mcp-neo4j云 Aura API

作者:neo4j-contrib817 星标更新:2025-11-19

项目介绍

技术文档摘要

🚀💖☁️ Neo4j Aura 数据库管理器 MCP 服务器

mcp-name: io.github.neo4j-contrib/mcp-neo4j-aura-manager

🌟 概述

这是一个实现 Model Context Protocol (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 (字符串):要查找的实例名称
    • 返回:如果找到实例,则返回实例的详细信息
  • create_instance

    • 创建一个新的 Neo4j Aura 数据库实例
    • 输入:
      • tenant_id (字符串):实例将被创建的租户/项目的ID
      • name (字符串):新实例的名称
      • memory (整数):内存分配(以GB为单位)
      • region (字符串):实例所在的区域(例如,'us-east-1')
      • version (字符串):Neo4j 版本(例如,'5.15')
      • type (字符串,可选):实例类型(企业版或专业版)
      • vector_optimized (布尔值,可选):实例是否优化了向量操作
    • 返回:创建的实例的详细信息
  • update_instance_name

    • 更新实例的名称
    • 输入:
      • instance_id (字符串):要更新的实例ID
      • name (字符串):实例的新名称
    • 返回:更新后的实例详细信息
  • update_instance_memory

    • 更新实例的内存分配
    • 输入:
      • instance_id (字符串):要更新的实例ID
      • memory (整数):新的内存分配(以GB为单位)
    • 返回:更新后的实例详细信息
  • update_instance_vector_optimization

    • 更新实例的向量优化设置
    • 输入:
      • instance_id (字符串):要更新的实例ID
      • vector_optimized (布尔值):实例是否应优化向量操作
    • 返回:更新后的实例详细信息
  • pause_instance

    • 暂停一个数据库实例
    • 输入:
      • instance_id (字符串):要暂停的实例ID
    • 返回:实例状态信息
  • resume_instance

    • 恢复一个已暂停的数据库实例
  • 输入:

    • instance_id (字符串):要恢复的实例ID
  • 返回:实例状态信息

  • delete_instance

    • 删除一个数据库实例
    • 输入:
      • tenant_id (字符串):实例存在的租户/项目的ID
      • instance_id (字符串):要删除的实例ID
    • 返回:删除状态信息

🏢 租户/项目管理

  • list_tenants

    • 列出所有 Neo4j Aura 租户/项目
    • 不需要输入参数
    • 返回:所有租户及其详细信息的列表
  • get_tenant_details

    • 获取特定租户/项目的详细信息
    • 输入:
      • tenant_id (字符串):要检索的租户/项目的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.6",
      "--client-id",
      "<your-client-id>",
      "--client-secret",
      "<your-client-secret>"
      ]
  }
}

或者,您可以设置环境变量:

"mcpServers": {
  "neo4j-aura": {
    "command": "uvx",
    "args": [ "mcp-neo4j-aura-manager@0.4.6" ],
    "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.6"
    ]
  }
}

🏷️ 多租户部署的命名空间

服务器支持命名空间前缀,用于多租户部署:

"mcpServers": {
  "neo4j-aura-app1": {
    "command": "uvx",
    "args": [
      "mcp-neo4j-aura-manager@0.4.6",
      "--client-id", "<your-client-id>",
      "--client-secret", "<your-client-secret>",
      "--namespace", "app1"
    ]
  },
  "neo4j-aura-app2": {
    "command": "uvx", 
    "args": [
      "mcp-neo4j-aura-manager@0.4.6",
      "--client-id", "<your-client-id>",
      "--client-secret", "<your-client-secret>",
      "--namespace", "app2"
    ]
  }
}

CLI 使用

# 带命名空间
mcp-neo4j-aura-manager --client-id <id> --client-secret <secret> --namespace myapp

# 工具变为:myapp-list_instances, myapp-create_instance 等

环境变量

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 传输模式

服务器支持 HTTP 传输,适用于基于Web的部署和微服务:

# 基本 HTTP 模式(默认:主机=127.0.0.1,端口=8000,路径=/mcp/)
mcp-neo4j-aura-manager --transport http

# 自定义 HTTP 配置
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

🔄 传输模式

服务器支持三种传输模式:

  • STDIO(默认):标准输入/输出,适用于本地工具和 Claude Desktop
  • SSE:Server-Sent Events,适用于基于Web的部署
  • HTTP:流式HTTP,适用于现代Web部署和微服务

🔒 安全保护

服务器包含全面的安全保护措施,具有安全默认设置,可以防止常见的基于Web的攻击,同时在使用HTTP传输时保留完整的MCP功能。

🛡️ DNS 重绑定保护

TrustedHost 中间件验证 Host 头以防止 DNS 重绑定攻击:

默认安全

  • 默认情况下只允许 localhost127.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 与 Claude Desktop

这里我们使用 Docker Hub 托管的 Aura Manager MCP 服务器镜像,并使用 stdio 传输与 Claude Desktop 配合使用。

配置详情

  • -i:交互模式 - 保持 STDIN 打开以进行 stdio 传输通信
  • --rm:容器退出时自动移除容器(清理)
  • -p 8000:8000:端口映射 - 将主机端口 8000 映射到容器端口 8000
  • NEO4J_TRANSPORT=stdio:使用 stdio 传输以兼容 Claude Desktop
  • NEO4J_AURA_CLIENT_IDNEO4J_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 .

# 构建镜像
docker build -t mcp-neo4j-aura-manager:<version> .

# 使用 http 传输运行(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>

# 使用安全中间件运行生产环境
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_TRANSPORTstdio (本地), http (远程)传输协议 (stdio, http, 或 sse)
NEO4J_MCP_SERVER_HOST127.0.0.1 (本地)绑定的主机地址
NEO4J_MCP_SERVER_PORT8000HTTP/SSE 传输的端口
NEO4J_MCP_SERVER_PATH/mcp/访问 MCP 服务器的路径
NEO4J_MCP_SERVER_ALLOW_ORIGINS(空 - 默认安全)允许的 CORS 源的逗号分隔列表
NEO4J_MCP_SERVER_ALLOWED_HOSTSlocalhost,127.0.0.1允许的主机的逗号分隔列表(DNS 重绑定保护)
NEO4J_MCP_SERVER_STATELESSfalse启用 HTTP/SSE 传输的无状态模式(true/false,对 stdio 无效)

🌐 SSE 传输用于旧版Web访问

当使用 SSE 传输(针对旧版Web客户端)时,服务器会暴露一个 HTTP 端点:

# 使用 SSE 传输启动服务器
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

# 测试 SSE 端点
curl http://localhost:8000/sse

# 与 MCP Inspector 一起使用
npx @modelcontextprotocol/inspector http://localhost:8000/sse

🔗 Claude Desktop 与 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)连接到它。

📝 使用示例

🔍 查看我的租户概述

🔎 根据名称查找实例

📋 列出实例并查找暂停的实例

▶️ 恢复暂停的实例

➕ 创建一个新的实例

![](docs