使用说明
Neo4j MCP服务器
此模型上下文协议 (MCP) 服务器允许在Neo4j数据库上执行密码查询。它支持通过OAuth2(客户端凭据流)或经典用户名和密码进行身份验证。
特性
- execute_cypher: 执行密码查询,并以 JSON 格式返回结果。
- 验证:
- OAuth2支持使用 Bearer Token 对 Neo4j 进行身份验证。
- 基本身份验证支持使用用户名和密码进行身份验证。
安装
- 存储库klonen
- 安装依赖关系:
npm install - 编译 TypeScript :
npm run build
配置
服务器使用混合身份验证模型:
- **OAuth2(代理级别)**MCP 服务器在启动时向身份提供程序授权。这将作为代理访问服务器的安全层。
- 基本身份验证(数据库级别):与真正的联系 Neo4j社区版 用户名和密码。
环境变量(.env)
# Neo4j Verbindung (Basic Auth für Community Edition)
NEO4J_URI=bolt://localhost:7687
NEO4J_USER=neo4j
NEO4J_PASSWORD=ihr-passwort
# Agenten-Autorisierung (OAuth2 Client Credentials via OIDC Discovery)
OAUTH_ISSUER_URL=https://deine-subdomain.onelogin.com/oidc/2
OAUTH_CLIENT_ID=ihr-client-id
OAUTH_CLIENT_SECRET=ihr-client-secret
OAUTH_SCOPE=neo4j
OIDC发现
服务器现在使用 OpenID连接发现你只需要 OAUTH_ISSUER_URL 指定 。服务器将自动查找令牌端点 {OAUTH_ISSUER_URL}/.well-known/openid-configuration.
实例 OAUTH_ISSUER_URL:
- 一次登录:
https://deine-subdomain.onelogin.com/oidc/2 - 身份验证0:
https://deine-domain.auth0.com/ - Azure AD:
https://login.microsoftonline.com/{tenant}/v2.0
远程使用(HTTP REST)
服务器现在通过标准的 HTTP 接口(通过 POST 的 JSON-RPC)作为远程服务运行。SSE被删除。
启动服务器
- 构建 build:
npm run build - 服务器启动 :
node build/index.js
默认情况下,服务器监听端口 3000 (可通过环境变量进行配置) PORT).
API 终端
MCP 兼容的终端是: http://localhost:3000/mcp
OIDC发现支持
服务器现在会自动设置一个发现端点 http://localhost:3000/.well-known/openid-configuration 准备好了这反映了您的身份提供程序 (OneLogin) 的配置。这有助于现代代理自动检测服务器的身份验证需求。
通过调用工具的例子 curl (包括承运人代币):
# Holen Sie sich zuerst ein Token (Beispiel via curl vom IdP)
# TOKEN=$(curl -X POST OAUTH_TOKEN_URL -d "grant_type=client_credentials&client_id=...&client_secret=..." | jq -r .access_token)
curl -X POST http://localhost:3000/mcp \
-H "Content-Type: application/json" \
-H "Authorization: Bearer DEIN_ACCESS_TOKEN" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "call_tool",
"params": {
"name": "execute_cypher",
"arguments": {
"query": "MATCH (n) RETURN count(n) as count"
}
}
}'
工具
get_neo4j_schema
返回数据库结构(节点标签、关系类型及其属性)。这有助于代理更好地了解数据库。
execute_cypher
执行任何密码查询(读写)。
read_neo4j_cypher
执行写保护的密码查询。
write_neo4j_cypher
执行书面 cipher 查询。
密码工具参数:
query(string, required):要执行的密码查询。parameters(object, optional):查询的参数。
GitHub操作
该项目包含一个GitHub工作流,每次推送 main分支会自动构建一个新的 Docker 映像并将其上传到 GitHub 容器注册表 (GHCR)。
图像名称
图像以以下名称提供:
ghcr.io/<DEIN_GITHUB_USERNAME>/neo4j-mcp:latest
码头工人
您还可以将 MCP 服务器作为 Docker 容器运行。
1. 形象建设
docker build -t neo4j-mcp-server .
2. 容器启动
由于服务器需要环境变量,您应该在启动时传递这些变量,或者 .env使用文件。
用一个 .env文件 :
docker run -p 3000:3000 --env-file .env neo4j-mcp-server
直接通过命令行:
docker run -p 3000:3000 \
-e NEO4J_URI=bolt://host.docker.internal:7687 \
-e NEO4J_USER=neo4j \
-e NEO4J_PASSWORD=ihr-passwort \
-e OAUTH_ISSUER_URL=https://deine-subdomain.onelogin.com/oidc/2 \
-e OAUTH_CLIENT_ID=ihr-client-id \
-e OAUTH_CLIENT_SECRET=ihr-client-secret \
neo4j-mcp-server
3.微Docker作曲(Empfohlen)
使用 Docker Compose 启动服务器最简单,因为 .env文件将自动加载。
docker-compose up -d
这将创建映像(如果尚未创建)并在后台启动容器。端口将自动从 .env (变量 PORT) 采用或使用标准 3000.
注意:如果Neo4j在您的主机上本地运行,请使用 host.docker.internal 而不是 localhost 为了 .env从容器中获取数据库。