   
grafeo mcp
暴露的MCP服务器 GrafeoDB 的 -嵌入式图形数据库-通过 模型上下文协议.
一次安装,零基础设施。MCP服务器 *是* 数据库。
特性
- 23工具 -图CRUD、GQL查询、批量导入、全文搜索、向量搜索、MMR、混合检索、PageRank、Dijkstra、Louvain等
- 3资源 -
graph://schema,graph://stats,graph://nodes/{id} - 4个工作流提示 -通过探索、知识提取、图分析和相似性搜索来引导代理
- GQL与Cypher自动归一化 -接受过Cypher语法训练的代理可以开箱即用
- 架构优先 -代理在查询之前发现图结构
- 令牌感知 -所有工具都有
limitparams和截断大型结果 - 嵌入式 -无需管理单独的数据库服务器
快速入门
# Install
uv tool install grafeo-mcp
# Or with pip
pip install grafeo-mcp克劳德桌面版
添加 claude_desktop_config.json:
{
"mcpServers": {
"grafeo": {
"command": "grafeo-mcp",
"env": {
"GRAFEO_DB_PATH": "/path/to/your/graph.db"
}
}
}
}克劳德代码
添加 .mcp.json 在项目根目录中:
{
"mcpServers": {
"grafeo": {
"command": "grafeo-mcp",
"env": {
"GRAFEO_DB_PATH": "./graph.db"
}
}
}
}VS代码/副本
添加 .vscode/mcp.json:
{
"servers": {
"grafeo": {
"command": "grafeo-mcp",
"env": {
"GRAFEO_DB_PATH": "${workspaceFolder}/graph.db"
}
}
}
}HTTP传输
对于远程或多客户端设置:
grafeo-mcp streamable-http环境变量
| 变量 | 描述 | 默认值 |
|---|---|---|
GRAFEO_DB_PATH | 数据库文件的路径。如果它不存在,则创建它 | 在内存中 |
工具
查询
| 工具 | 说明 |
|---|---|
execute_gql | 运行GQL查询(Cypher语法自动规范化为GQL) |
CRUD和遍历图
| 工具 | 说明 |
|---|---|
create_node | 创建具有标签和属性的节点 |
create_edge | 在两个节点之间创建有向边 |
get_node | 按ID检索节点 |
update_node | 更新现有节点上的属性 |
delete_node | 删除节点(可选分离) |
update_edge | 更新现有边上的属性 |
delete_edge | 按ID删除边 |
get_neighbors | 探索节点的邻域(1小时) |
search_nodes_by_label | 按带分页的标签查找节点 |
graph_info | 模式、统计数据、标签、边类型、索引 |
批量导入
| 工具 | 说明 |
|---|---|
batch_import | 从JSON数组批量创建节点和边 |
全文检索
| 工具 | 说明 |
|---|---|
create_text_index | 在属性上创建全文搜索索引 |
search_text | 对索引字符串属性进行关键字搜索 |
向量搜索
| 工具 | 说明 |
|---|---|
vector_search | k-NN相似性搜索 |
mmr_search | 多样性感知搜索(最大边际相关性) |
create_vector_index | 在标签+属性上创建HNSW索引 |
vector_graph_search | 混合:向量搜索+图邻域扩展 |
图的算法
| 工具 | 说明 |
|---|---|
pagerank | 按重要性对节点进行排序 |
dijkstra | 两个节点之间的最短加权路径 |
louvain | 社区检测(Louvain模块化) |
betweenness_centrality | 查找网桥/瓶颈节点 |
connected_components | 查找断开连接的子图 |
资源
| URI | 描述 |
|---|---|
graph://schema | 丰富的模式:标签、属性、边类型 |
graph://stats | 计数、内存、磁盘、配置信息 |
graph://nodes/{node_id} | 节点详细信息+连接摘要 |
提示
| 提示 | 描述 |
|---|---|
explore_graph | 图形结构的引导性探索 |
knowledge_extraction | 从文本中提取实体和关系 |
graph_analysis | 结构分析:社区、PageRank、枢纽 |
similarity_search | 基于图上下文的矢量语义搜索 |
什么时候用什么工具?
| 我想… | 使用这个工具 | 不是这个 |
|---|---|---|
| 添加单个节点 | create_node | execute_gql, batch_import |
| 添加单条边 | create_edge | execute_gql |
| 一次加载多个节点和边 | batch_import | create_node 在循环中 |
| 按ID查找节点 | get_node | execute_gql |
| 更新节点的属性 | update_node | execute_gql |
| 删除节点 | delete_node | execute_gql |
| 更新边的属性 | update_edge | execute_gql |
| 删除边 | delete_edge | execute_gql |
| 浏览某一类型的节点 | search_nodes_by_label | execute_gql |
| 探索节点的一跳 | get_neighbors | execute_gql |
| 运行复杂或多跳查询 | execute_gql | 多重 get_neighbors |
| 按文本中的关键字搜索 | search_text | execute_gql |
| 通过嵌入查找相似节点 | vector_search | execute_gql |
| 查找相似节点+图形上下文 | vector_graph_search | vector_search + get_neighbors |
| 找到最重要的节点 | pagerank | execute_gql |
| 查找两个节点之间的最短路径 | dijkstra | execute_gql |
| 检测社区 | louvain | execute_gql |
| 查询前了解图表 | graph_info | search_nodes_by_label |
批处理引用语法
这 batch_import 该工具允许边引用在同一批中创建的节点 @N 符号,其中 N 是从零开始的指数进入 nodes 数组:
batch_import(
nodes=[
{"labels": ["Person"], "properties": {"name": "Alice"}}, # @0
{"labels": ["Person"], "properties": {"name": "Bob"}}, # @1
],
edges=[
{"source_ref": "@0", "target_ref": "@1", "edge_type": "KNOWS"},
],
)您还可以将批引用与现有节点ID混合使用: {"source_ref": "@0", "target_ref": 42, ...}.
密码正常化
这 execute_gql 该工具会自动将常见的Cypher语法规范化为GQL,这样接受过Cypher训练的代理就可以开箱即用。目前应用了以下转换:
| Cypher关键字 | GQL等效词 |
|---|---|
CREATE | INSERT |
Cypher和GQL之间共享的关键字(例如 MATCH, RETURN, WHERE, WITH, LIMIT, DETACH DELETE)通过不变。仅加密关键字,如 MERGE 或 OPTIONAL MATCH 是 不 支持,并将从查询引擎生成明确的错误消息。
发展
git clone https://github.com/GrafeoDB/grafeo-mcp
cd grafeo-mcp
uv sync
uv run pytest # Run tests
uv run ruff check . # Lint
uv run ruff format . # Format
uv run ty check # Type check另见
- 涂鸦记忆 包括一个内置的MCP服务器(
grafeo-memory-mcp)它包装了高级内存API-提取、协调、搜索、汇总。如果您需要AI内存管理而不是原始图形访问,请使用uv add grafeo-memory[mcp].
许可证
阿帕奇-2.0
