
Graph-Mem
io.github.Sathvik-1007由 GitHub 账号 Sathvik-1007 发布v1.0.0更新于 Oct 24, 2026
Persistent knowledge-graph memory for AI agents, with local semantic search. No API keys.
概览
Graph-Mem 是一个本地 MCP 服务器,为 AI 助手提供按项目持久化的知识图谱,支持语义搜索和多跳遍历。
- 可以做什么
- 在知识图谱中创建、更新、合并和删除实体、关系与观察记录,三类对象均支持完整增删改查,批量写入时按名称冲突自动合并。使用语义加全文的混合排序搜索图谱,或直接对观察文本做语义搜索。通过多跳遍历、最短路径、邻域子图、实体与关系列表以及图谱统计来探索结构。运行健康统计、质量审计、连接建议和观察压缩等维护检查。管理以独立 SQLite 文件存储的多个命名图谱,并启动本地交互式仪表盘进行可视化浏览和编辑。
- 适用场景
- 适合希望助手跨会话记住项目上下文、避免重复读文件和重犯错误的场景,也适合需要结构化关联知识而非单纯向量相似度的需求。同样适用于构建需要记忆层的自定义智能体,或为不同项目维护独立知识图谱。
- 运行要求
- 以 Python 包(graphmem-mcp)形式通过 stdio 在本地运行,可用 pip 安装或用 uvx 直接运行。可选附加组件提供本地嵌入、ONNX 推理和仪表盘界面。嵌入模型(默认 all-MiniLM-L6-v2)首次使用时下载,届时需要网络访问。可选环境变量:GRAPHMEM_DB_PATH、GRAPHMEM_EMBEDDING_MODEL、GRAPHMEM_LOG_LEVEL、GRAPHMEM_TRAVERSAL_NODE_BUDGET。无需 API 密钥。
安装
在 SourceWeft 中
- 打开 控制台中的 Graph-Mem,将其添加到工作区。
- 为需要使用其工具的对话启用该服务。
Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。
其他 MCP 客户端
参照 仓库 中的启动说明。
README
Graph-Mem MCP
Persistent knowledge graph memory for AI agents and IDEs
[PyPI] [CI] [License: MIT] [Python 3.10+] [MCP]
Graph-Mem MCP is a universal MCP server that gives any agent or IDE persistent, structured memory through a knowledge graph. It combines graph storage, semantic vector search, and multi-hop traversal in a single package — install it, add it to your MCP config, and your agent gains memory that survives across sessions. It works everywhere MCP does.
Built To Be Trusted With Your Data
Works With
graph-mem is a standard MCP server, so it works with any MCP-compatible
agent, IDE, or framework. graph-mem install additionally writes the skill
file straight into the right place for these 13, each at a path cited against
the vendor's own documentation:
Using something else? The MCP config below is all you need; the skill file is a convenience, not a requirement. Adding your agent to the installer takes a documented path and about ten lines — see Adding an Agent.
What is this?
AI agents forget everything between sessions. They re-read files, re-discover architecture, and repeat mistakes. Graph-Mem MCP solves this by providing persistent, per-project knowledge graphs that any MCP-compatible agent can read and write to. The graph builds organically as the agent works — extracting entities, decisions, and relationships from every conversation. It runs as a standard MCP server with 28 tools that plug into any agent, IDE, or framework that supports the Model Context Protocol.
Why a graph, not just a vector store?
Vector search finds similar things. Graphs find connected things. When an agent asks "what depends on the auth service?", a vector store returns text that mentions auth. A knowledge graph traverses the actual dependency edges and returns every upstream consumer — even ones that never mention "auth" in their description. Graph-Mem gives you both: vector similarity for fuzzy discovery, graph traversal for structural queries.
Use Cases
- Agent memory — Give any AI coding agent persistent context across sessions
- IDE integration — Add knowledge graph tools to Cursor, Windsurf, Copilot, or any MCP-enabled IDE
- Agent building — Use as the memory layer when building custom AI agents and workflows
- Research & knowledge management — Build structured knowledge bases with semantic search
- Multi-project context — Maintain separate knowledge graphs per project with multi-graph support
Quick Start
1. Install:
Or run it without installing — uvx fetches and isolates it the way npx
does for Node:
Listed in the official MCP Registry
as io.github.Sathvik-1007/graphmem-mcp, so MCP-aware clients can discover and
install it directly.
2. Install the skill for your agent:
This writes a skill file that teaches your agent how to use all 28 MCP tools — when to search, when to add entities, naming conventions, and common workflows.
3. Configure MCP by adding this to your agent's MCP config:
With full customization:
That's it. Your agent now has persistent memory. Verify by asking it to run read_graph().
One-Prompt Setup
Paste this into your agent's chat to get started immediately:
Installation
Option 1: pip (Recommended)
Option 2: uvx (zero pre-install)
uvx downloads the package into an isolated environment and runs it in one command. Nothing to pre-install beyond uv.
Option 3: From source
Optional extras
Tools
Graph-Mem exposes 28 MCP tools — ten for writing, nine for reading, four for maintenance, four for multi-graph management, and one utility. Full CRUD on every primitive: entities, relationships, and observations can all be created, read, updated, and deleted.
Write Tools (10)
Read Tools (9)
Maintenance Tools (4)
Visualization (1)
Multi-Graph Tools (4)
Multi-graph storage: Each named graph is a separate SQLite database in
.graphmem/. The default graph isgraph.db. Use--graph <name>on CLI commands to target a specific graph.
Architecture
Everything lives in a single SQLite database per project. The server communicates over MCP's standard stdio transport (SSE and streamable-http also supported) and stores all data in .graphmem/graph.db at your project root. The database file is portable — copy it between machines, check it into version control, or back it up like any other file.
Further reading
MCP Integration
Graph-Mem MCP is a standard MCP server. It communicates with your agent over the Model Context Protocol (stdio by default, SSE and streamable-http also supported) and exposes 28 tools that the agent calls directly — the same way it calls any other MCP tool. It works with every MCP-compatible agent, IDE, and framework out of the box.
To verify it's working, ask your agent to run read_graph() — it should return the current graph statistics.
Graph Visualisation
The URL printed by graph-mem ui contains a session token — treat it as a
password. The dashboard reads and writes the graph, so the API requires that
token in a custom header, and rejects requests whose Origin or Host is not
the interface it bound. Without those checks any website you visited while the
UI was running could rewrite your knowledge graph. See
SECURITY.md for the details.
The open_dashboard MCP tool also starts this UI server and returns the URL to
your agent. It always binds localhost: the bind address is deliberately not a
tool parameter, so a prompt-injected agent cannot publish your graph to the
network.
Dashboard features:
- Force-directed graph canvas with real-time physics simulation
- Entity type filtering — toggle visibility of entity types via sidebar checkboxes
- Click-to-focus — click a node on the graph or sidebar to instantly center and zoom to it
- Inline entity editing — click any field (name, type, description) in the detail panel to edit it in-place
- Property management — add, edit, and delete individual properties per entity with per-row controls
- Observation management — add, edit, and delete observations with confirmation dialogs and inline editing
- Relationship navigation — click related entities to navigate the graph
- Entity creation and deletion — create new entities from the sidebar, delete with confirmation from the detail panel danger zone
- Hybrid search — semantic + keyword search across all entities
- Graph picker — switch between named graphs without restarting the server
- Physics controls — adjust spring, repulsion, damping, and gravity in real-time
- Keyboard shortcuts — Space (reheat), F (fit to view), Escape (deselect)
Data Storage
By default, Graph-Mem stores its database at .graphmem/graph.db relative to the current working directory. You can control this with:
Priority order: --db > --project-dir > GRAPHMEM_DB_PATH env var > default.
The .graphmem/ directory is automatically created if it doesn't exist. Add .graphmem/ to your .gitignore if you don't want to track the database in version control.
CLI Reference
Server
All server options:
Skill Installation
Where the skill is installed
Every path below is cited against the vendor's current documentation. An agent whose install location cannot be cited is not listed here — a guessed path reports success, writes a file, and the agent never reads it, which is worse than no support. Six agents were removed on exactly those grounds.
Agents whose target file is shared — AGENTS.md, GEMINI.md,
.github/copilot-instructions.md, Windsurf's global rules — get a delimited
section written into it. Anything you already have in the file survives, and
re-installing replaces the section instead of appending a second copy.
Want another agent supported? See Adding an Agent — it takes a documented path and about ten lines.
Graph Management
All management commands accept --db, --project-dir, and --graph for targeting a specific database.
Multi-graph support: Use --graph <name> to work with named graphs stored as .graphmem/<name>.db. Without --graph, commands target the default graph.db. The MCP tools list_graphs, create_graph, switch_graph, and delete_graph provide runtime graph management for agents.
Configuration
All settings are optional. Defaults work out of the box. Every setting can be controlled via CLI flags (see graph-mem server --help), environment variables, or both. CLI flags take precedence over environment variables, which take precedence over defaults.
Performance
Measured numbers, not adjectives. Reproduce the traversal figures with
python benchmarks/bench_traversal.py; the full table is in
docs/ARCHITECTURE.md.
Traversal — breadth-first with a global visited set, one indexed adjacency query per hop. A dense 60-node graph traverses to depth 6 in 5 ms. The obvious recursive-CTE formulation enumerates every simple path instead: on a 14-node graph it materialised 1,409,006 intermediate rows in 6.4 seconds to return the same 13 entities that BFS returns in 1 ms.
Graph canvas — Barnes-Hut force simulation (θ = 0.9). 2000 nodes run at 215 fps; 5000 nodes, the API's own cap, at 80 fps. The previous all-pairs implementation managed 30 fps and 3.7 fps respectively. Approximation error against the exact sum is 1.30% RMS, and settled layouts are equivalent.
Storage
- WAL journal with PRAGMA tuning — concurrent reads, memory-mapped I/O, so a large database does not consume proportional RAM
- One connection with a write lock held for the outermost transaction, and
BEGIN IMMEDIATEso a read-to-write upgrade cannot fail unretryably - Batched bulk operations, and every
IN (...)chunked below SQLite's bound-variable limit
Embeddings
- Content-hash cache keyed by
(hash, model), so two models coexist instead of clobbering each other; LRU eviction, batched reads and writes - Model loads lazily in a background thread at startup, and inference runs in a worker thread — neither blocks the event loop
- Optional ONNX backend when
optimum[onnxruntime]is installed and--use-onnxis set, falling back to PyTorch. Off by default; this project publishes no benchmark for it, so no speedup is claimed here.
Bounds — every traversal, search, and list response is capped by a named, configurable limit, and a capped response says so rather than returning a silent subset.
Development
Running Tests
Star History
[Star History Chart]License
来源:README.md,提交 7d4d385
工具
0版本历史
1- v1.0.0最新Sep 16, 2026
评分
已满足适用检查项的 50%
该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。
- 近 30 天内可连通25 分
请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。
- 已声明认证方式10 分
请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。
- 已列出工具15 分
请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。
- 描述必需15 分
- 图标10 分
- 文档15 分
- 许可证10 分