MCP Neo4j 服务器
提供 Neo4j 图形数据库和 Claude Desktop 集成的 MCP 服务器,支持通过自然语言交互进行图形数据库操作。
快速入门
您可以使用 npx 直接运行此 MCP 服务器:
或者将其添加到您的 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 数据库交互的工具:
工具
execute_query
:在 Neo4j 数据库上执行 Cypher 查询- 支持所有类型的 Cypher 查询(读取、创建、更新、删除)
- 以结构化格式返回查询结果
- 可以传递参数以防止注入攻击
create_node
:在图形数据库中创建一个新节点- 指定节点标签和属性
- 返回创建的节点及其内部 ID
- 支持所有 Neo4j 数据类型的属性
create_relationship
:在两个现有节点之间创建关系- 定义关系类型和方向
- 向关系添加属性
- 需要源节点和目标节点的节点 ID
安装
通过 Smithery 安装
要通过Smithery自动为 Claude Desktop 安装 MCP Neo4j 服务器:
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
- 安装依赖项:
- 构建项目:
配置
服务器需要以下环境变量:
NEO4J_URI
:Neo4j 数据库 URI(默认值:bolt://localhost:7687)NEO4J_USERNAME
:Neo4j 用户名(默认值:neo4j)NEO4J_PASSWORD
:Neo4j 密码(必需)
使用示例
以下是如何使用自然语言与 Neo4j 数据库交互的示例:
查询数据
您可以提出以下问题:
- “显示销售部门的所有员工”
- “查找最年长的 5 位顾客”
- “上个月谁购买了 3 件以上的产品?”
例子:
User: "Show me all employees in the Sales department"
Claude: Let me query the database for Sales department employees.
[Executes query internally: MATCH (e:Employee)-[:WORKS_IN]->(d:Department {name: 'Sales'}) RETURN e.name, e.position]
Result:
- John Smith (Sales Manager)
- Sarah Johnson (Sales Representative)
- Mike Brown (Account Executive)
创建数据
您可以给出如下指示:
- “添加一位新用户,名叫 John Doe,年龄 30 岁”
- “创建一款名为‘高级咖啡’的产品,价格为 24.99 美元”
- “添加一个名为‘研发’的新部门”
例子:
User: "Add a new person named John Doe who is 30 years old"
Claude: I'll create a new Person node with the provided information.
[Creates node internally with label 'Person' and properties {name: 'John Doe', age: 30}]
Result: Created new person node with ID: 123
创建关系
您可以请求如下关系:
- “让 John Doe 与 Jane Smith 成为朋友”
- “将产品 A 设置为产品 B 的组件”
- “将 John Doe 分配到销售部门”
例子:
User: "Make John Doe friends with Jane Smith"
Claude: I'll create a friendship relationship between these two people.
[Creates relationship internally: MATCH (a:Person {name: 'John Doe'}), (b:Person {name: 'Jane Smith'})
CREATE (a)-[:FRIENDS_WITH {since: '2024-01-05'}]->(b)]
Result: Created friendship relationship between John Doe and Jane Smith
复杂操作
您可以使用自然语言执行更复杂的操作:
- “查找居住在纽约的顾客购买的所有产品”
- “告诉我 John Doe 的朋友的朋友”
- “计算各部门员工平均年龄”
例子:
User: "Find all products purchased by customers who live in New York"
Claude: I'll query the database for this information.
[Executes query internally:
MATCH (c:Customer {city: 'New York'})-[:PURCHASED]->(p:Product)
RETURN c.name, collect(p.name) as products]
Result:
- Alice Wilson: [Premium Coffee, Tea Set, Cookies]
- Bob Miller: [Premium Coffee, Water Bottle]
测试
运行测试套件:
执照
麻省理工学院