图数据库工具集

Spring Boot starter提供5种图数据库操作工具,支持Neo4j和Apache AGE后端,统一Cypher查询接口。

  • by MassimilianoPili
  • Java
  • 本地部署
  • 更新于
在 GitHub 查看 MassimilianoPili/mcp-graph-tools

使用说明

MCP图形工具

Spring Boot starter提供5个MCP工具用于图形数据库操作。支持Neo4j(Bolt协议)和Apache AGE(PostgreSQL扩展)作为后端,具有统一的Cypher查询接口。

安装

<dependency>
    <groupId>io.github.massimilianopili</groupId>
    <artifactId>mcp-graph-tools</artifactId>
    <version>0.1.0</version>
</dependency>

需要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后端)

许可证

MIT许可证