MCP图形工具
Spring Boot starter提供5个MCP工具用于图形数据库操作。支持Neo4j(Bolt协议)和Apache AGE(PostgreSQL扩展)作为后端,具有统一的Cypher查询接口。
安装
io.github.massimilianopili
mcp-graph-tools
0.1.0
需要Java 21+和Spring AI 1.0.0+。
工具
| 工具 | 说明 |
|---|---|
graph_query | 执行只读密码查询(MATCH、RETURN、COUNT、路径遍历)。最多100行。 |
graph_write | 执行变异密码(CREATE、MERGE、SET、DELETE)。返回摘要+结果行。 |
graph_schema | 模式自省:节点标签、关系类型、属性键。 |
graph_stats | 统计数据:总节点/关系、每个标签/类型的计数。 |
graph_list_backends | 列出已配置的后端及其可用性状态。 |
所有工具都接受可选 backend 参数("neo4j" 或 "age")--默认为first available。
后端
| 后端 | 协议 | 注释 |
|---|---|---|
| Neo4j | Bolt(Java驱动程序5.27) | 完全开放Cypher支持,APOC用于高级统计 |
| 阿帕奇时代 | JDBC(PostgreSQL) | PostgreSQL上的Cypher子集,如果您已经有Postgres,则无需额外添加 |
配置
# Required — enables all graph tools
MCP_GRAPH_ENABLED=true
# Neo4j (optional — active when password is set)
MCP_GRAPH_NEO4J_URI=bolt://neo4j:7687
MCP_GRAPH_NEO4J_USERNAME=neo4j
MCP_GRAPH_NEO4J_PASSWORD=mypassword
# Apache AGE (optional — active when ageEnabled=true + ageDbUrl set)
MCP_GRAPH_AGE_ENABLED=true
MCP_GRAPH_AGE_DB_URL=jdbc:postgresql://localhost:5432/mydb
MCP_GRAPH_AGE_DB_USERNAME=postgres
MCP_GRAPH_AGE_DB_PASSWORD=secret
MCP_GRAPH_AGE_GRAPH_NAME=knowledge_graph # default: knowledge_graph两个后端可以同时处于活动状态。这 backend 每个工具中的参数选择要使用的工具。
运作原理
- 用途
@Tool(Spring AI)用于同步MCP工具方法 - 通过自动配置
GraphToolsAutoConfiguration随着@ConditionalOnProperty(name = "mcp.graph.enabled", havingValue = "true") CypherExecutor接口抽象了两个后端- Neo4j:带连接池的螺栓驱动程序,节点/关系/路径的类型转换
- AGE:自动创建扩展和图,将Cypher封装在SQL中,解析agtype JSON
需求
- Java 21+
- 弹簧靴3.4+
- 春季AI 1.0.0+
- Neo4j 5.x(用于Neo4j后端)和/或带有AGE扩展的PostgreSQL(用于AGE后端)
