这是一个 MCP 服务器,提供 Neo4j 图数据库与 Claude Desktop 的集成,通过自然语言交互实现图数据库操作。
<a href="https://glama.ai/mcp/servers/qjpsxn4zlh"><img width="380" height="200" src="https://gips0.baidu.com/it/u=1839134378,3133206722&fm=3081&app=3081&f=PNG?w=760&h=400" alt="Neo4j Server MCP 服务器" /></a>
你可以直接使用 npx 运行此 MCP 服务器:
npx @alanse/mcp-neo4j
或者将其添加到你的 Claude Desktop 配置中:
{
"mcpServers": {
"neo4j": {
"command": "npx",
"args": ["@alanse/mcp-neo4j-server"],
"env": {
"NEO4J_URI": "bolt://localhost:7687",
"NEO4J_USERNAME": "neo4j",
"NEO4J_PASSWORD": "your-password",
"NEO4J_DATABASE": "neo4j"
}
}
}
}
此服务器提供了与 Neo4j 数据库交互的工具:
此服务器现在支持连接到 Neo4j 企业版中的特定数据库。默认情况下,它连接到 "neo4j" 数据库,但你可以使用 NEO4J_DATABASE 环境变量指定不同的数据库。
execute_query: 在 Neo4j 数据库上执行 Cypher 查询
create_node: 在图数据库中创建一个新的节点
create_relationship: 在两个现有节点之间创建关系
要通过 Smithery 自动安装 MCP Neo4j 服务器到 Claude Desktop:
npx -y @smithery/cli install @alanse/mcp-neo4j-server --client claude
git clone https://github.com/da-okazaki/mcp-neo4j-server.git
cd mcp-neo4j-server
npm install
npm run build
服务器需要以下环境变量:
NEO4J_URI: Neo4j 数据库 URI(默认:bolt://localhost:7687)NEO4J_USERNAME: Neo4j 用户名(默认:neo4j)NEO4J_PASSWORD: Neo4j 密码(必需)NEO4J_DATABASE: Neo4j 数据库名称(默认:neo4j)- 使用此变量连接到 Neo4j 企业版中的特定数据库这里有一些如何使用自然语言与 Neo4j 数据库交互的例子:
对于拥有多个数据库的 Neo4j 企业用户,你可以指定要连接的数据库:
{
"env": {
"NEO4J_URI": "bolt://localhost:7687",
"NEO4J_USERNAME": "neo4j",
"NEO4J_PASSWORD": "your-password",
"NEO4J_DATABASE": "myCustomDatabase"
}
}
这将连接到 "myCustomDatabase" 而不是默认的 "neo4j" 数据库。
你可以提出如下问题:
示例:
用户: "显示销售部门的所有员工"
Claude: 让我查询数据库中的销售部门员工。
[内部执行查询: MATCH (e:Employee)-[:WORKS_IN]->(d:Department {name: 'Sales'}) RETURN e.name, e.position]
结果:
- John Smith (销售经理)
- Sarah Johnson (销售代表)
- Mike Brown (账户主管)
你可以给出如下指令:
示例:
用户: "添加一个名为 John Doe 的新人员,年龄为 30 岁"
Claude: 我会根据提供的信息创建一个新的 Person 节点。
[内部创建带有标签 'Person' 和属性 {name: 'John Doe', age: 30} 的节点]
结果: 创建了一个新的人员节点,ID 为:123
你可以请求如下关系:
示例:
用户: "让 John Doe 和 Jane Smith 成为朋友"
Claude: 我会在这两个人员之间创建友谊关系。
[内部创建关系: MATCH (a:Person {name: 'John Doe'}), (b:Person {name: 'Jane Smith'})
CREATE (a)-[:FRIENDS_WITH {since: '2024-01-05'}]->(b)]
结果: 在 John Doe 和 Jane Smith 之间创建了友谊关系
你可以使用自然语言执行更复杂的操作:
示例:
用户: "找出由居住在纽约的客户购买的所有产品"
Claude: 我会查询数据库以获取这些信息。
[内部执行查询:
MATCH (c:Customer {city: 'New York'})-[:PURCHASED]->(p:Product)
RETURN c.name, collect(p.name) as products]
结果:
- Alice Wilson: [高级咖啡, 茶具, 饼干]
- Bob Miller: [高级咖啡, 水瓶]
运行测试套件:
npm test
MIT