Vault MCP Server
Structures notes using Obsidian-compatible Markdown with [[wikilink]] formatting and directory layout, allowing seamless visualization and exploration of knowledge graphs in the Obsidian client.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Vault MCP Serversave the solution for git push permission denied"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Vault MCP Server
个人知识库 + 代码图谱统一 MCP 服务。
最后更新: 2026-05-12 Python: 3.10+ 协议: MCP stdio
项目概述
Vault MCP Server 基于 Obsidian Vault 构建统一个人知识库,通过 MCP 协议与 Claude Code 深度集成。工作或学习中解决的问题、学到的知识,一句话就能按模板持久化为 Markdown 笔记,后续在任何项目中都能全文检索复用。
核心能力:
结构化存储 — Markdown + YAML frontmatter,文件名 kebab-case,使用 Obsidian
[[wikilink]]格式链接笔记全文索引 — SQLite FTS5 + BM25 相关度排序,覆盖 permanent/、project/、graphify/ 全部目录
代码图谱 — graphify CLI(tree-sitter AST)自动提取代码结构,生成可浏览的模块笔记
上下文恢复 — 读取项目会话日志和架构决策笔记,快速恢复工作状态
引用图分析 — 追踪 wikilink 引用关系,检测孤立笔记
架构分层:
Claude Code ──MCP──> Vault MCP Server ──SQLite──> ~/vault/ (.md 笔记文件)
| |
| /kb 路由指令 ├── vault_init/save/search/resume/list/stats/orphan/update/tags/log
| (~/.claude/skills/ └── graphify_build/status/query
| kb.md)
|
└── (可选) Obsidian 客户端 ──> 知识图谱可视化浏览Related MCP server: Myobscelium
快速开始
1. 安装依赖
pip install mcp>=1.0.0
# graphify 为可选依赖,用于代码图谱功能
pip install graphifyy2. 启动 MCP Server(手动验证)
PYTHONIOENCODING=utf-8 python ~/scripts/vault-mcp-server/server.py3. 注册到 Claude Code
编辑 ~/.claude/mcp.json,在 mcpServers 中添加:
{
"mcpServers": {
"vault": {
"command": "python",
"args": [
"~/scripts/vault-mcp-server/server.py"
],
"env": {
"PYTHONIOENCODING": "utf-8"
}
}
}
}或者一键安装:
# Windows
powershell -ExecutionPolicy Bypass -File release/install.ps1
# Linux/macOS
bash release/install.sh验证注册:
claude mcp list4. 初始化知识库
首次使用需要初始化 Vault 目录结构和 SQLite 数据库:
# 对 Claude Code 说
初始化知识库
# 或指定项目目录
/kb init --project myproject命令参考
共 13 个 MCP 工具,分为核心工具、管理工具和代码图谱工具三类。
核心工具 (P0)
工具名 | 功能 | 必填参数 | 说明 |
| 初始化 Vault 目录 + 模板 + SQLite | 无 | 幂等操作,已初始化部分自动跳过 |
| 保存知识笔记 |
| 自动匹配已有笔记生成 |
| FTS5 全文搜索 |
| 返回标题、片段高亮、标签、相关度分数,支持按 tag/project/type 过滤 |
| 恢复项目工作上下文 |
| 读取最近 N 个会话日志 + 架构决策笔记 |
| 写入会话日志 |
| 记录做了什么、决策、待办事项 |
管理工具 (P1)
工具名 | 功能 | 必填参数 | 说明 |
| 条件列表查询 | 无 | 支持按 tag/project/type/status 过滤,分页排序 |
| 知识库统计面板 | 无 | 笔记总数、类型分布、Top 标签、链接密度 |
| 孤立笔记检测 | 无 | 找出入度为 0 或出度为 0 的笔记 |
| 更新已有笔记 |
| 替换或追加正文,保留 frontmatter,更新索引 |
| 标签索引查询 | 无 | 返回所有已用标签及使用频次,支持模糊搜索 |
代码图谱工具 (P1)
工具名 | 功能 | 必填参数 | 说明 |
| 构建代码图谱 |
| 调用 graphify CLI 解析 AST,生成模块笔记到 Vault |
| 图谱构建状态 |
| 上次构建时间、节点数、边数、社区数 |
| 代码符号搜索 |
| 在 graph.json 中模糊匹配符号,返回所属模块 |
笔记类型
type | 用途 | 存放位置(无项目) | 存放位置(有项目) |
| 永不删除的原子知识笔记 |
|
|
| 技术问题解决方案 |
|
|
| 概念解释 |
|
|
| 工具使用技巧 |
|
|
| 会话日志(自动归入 logs/) |
|
|
| 代码图谱笔记(自动生成) | — |
|
项目自动检测: 在项目窗口中保存时,
vault_save自动从 CWD 检测项目名,笔记路由到对应项目子目录。系统级知识(环境配置、通用技巧等)不传project即存入permanent/。
典型工作流
工作流 1: 解决问题后保存
用户: "git push 总是失败,报 permission denied"
Claude 排查并解决问题...
用户: "把这个解决方案保存到知识库"Claude 执行流程:
回顾对话,提取问题背景、解决方案、关键命令
确定
title(如 "Git 推送权限被拒的排查步骤")确定
tags(如["git", "ssh", "permission"])和type: solution构建 Markdown 正文,手动添加或让系统自动生成
[[wikilink]]调用
vault_save(服务端会自动检测正文中出现的已知笔记标题,替换为[[wikilink]]格式)返回结果:
created → permanent/git-push-quan-xian-bei-ju-de-pai-cha-bu-zhou.md | wikilinks: 3(如关联项目则自动路由到<project>/features/)
自动 wikilink 机制:
vault_save在保存时自动扫描正文,将已知笔记标题的纯文本出现替换为[[标题]]格式,无需手动添加链接。
工作流 2: 搜索复用知识
用户: "之前那个 Windows 下 subprocess 编码问题的解决方案还在吗?"
# 或直接用命令
/kb search Windows subprocess 编码Claude 调用 vault_search,参数 {"query": "Windows subprocess 编码"},返回结构化结果:
{
"status": "ok",
"query": "Windows subprocess 编码",
"count": 3,
"results": [
{
"title": "Windows Python subprocess 乱码解决方案",
"snippet": "...设置 <b>PYTHONIOENCODING</b>=utf-8...",
"tags": ["windows", "python", "encoding"],
"type": "solution",
"score": 0.87
}
]
}用户可直接在对话中引用笔记内容,Claude 自动应用其中的方案。
工作流 3: 恢复工作上下文
用户: "继续昨天 myproject 的工作"
# 或
/kb resume myprojectClaude 调用 vault_resume,参数 {"project": "myproject", "log_count": 3},返回:
最近 3 篇会话日志(含做了什么、决策、待办)
最近 5 篇架构决策笔记
Claude 用自然语言总结:
上次你在 myproject 做了以下工作:
实现了 MCP Server 的核心工具 save/search/resume
决策:SQLite 用标准库 sqlite3,不引入 ORM
待办:补充单元测试、完善错误处理
需要我帮你继续其中某件事吗?
目录结构
Vault MCP Server 源码
~/scripts/vault-mcp-server/
├── server.py # MCP 入口,注册 13 个工具,stdio 通信
├── db.py # SQLite 数据库层 (VaultDB 类)
├── requirements.txt # mcp>=1.0.0, graphifyy (可选)
├── tools/
| ├── __init__.py
| ├── _shared.py # 公共工具: 输入校验、JSON 回复、路径处理
| ├── vault_tools.py # 10 个核心 + 管理工具实现
| └── graphify_tools.py # 3 个代码图谱工具实现
└── tests/ # 单元/集成/E2E 测试(228)Vault 知识库
~/vault/ # Obsidian Vault 根目录
├── CLAUDE.md # Vault 使用规则(笔记规范 + 三层查询策略)
├── permanent/ # 永久知识笔记 (type: permanent/solution/concept)
├── templates/
| ├── default-note.md # 通用笔记模板
| └── session-log.md # 会话日志模板
├── logs/ # 全局会话日志 (type: session-log)
├── <project>/ # 项目笔记(每个项目一个子目录)
| ├── architecture/ # 架构设计、概念笔记 (type: permanent/concept)
| ├── features/ # 功能方案、问题解决 (type: solution)
| ├── data/ # 数据模型、工具技巧 (type: tool)
| └── logs/ # 项目会话日志 (type: session-log)
└── graphify/ # 代码图谱笔记
└── <project>/
├── Index.md # 图谱索引
└── Community-*.md # 按社区(模块)分类的代码笔记Claude Code 配置
~/.claude/
├── skills/
│ └── kb/
│ └── SKILL.md # /kb 路由指令
└── .claude.json # 用户级配置(含 MCP servers)常见问题
graphify CLI 未安装
graphify 是可选依赖,未安装时不影响核心知识库功能。如果运行 /kb graphify build 时提示未安装:
pip install graphifyy如果安装后仍报 "graphify CLI 未安装",检查 PATH 是否正确,或使用完整路径:
# 查看 graphify 安装位置
pip show graphifyy | grep Location中文搜索效果不佳
SQLite FTS5 默认使用空格分词,对中文(无空格分隔)效果可能不理想。当前方案:
短关键词(2-3 字)可精确匹配
长句搜索建议用关键词组合而非完整句子
标题精确匹配不受分词影响
Vault MCP Server 已配置 PYTHONIOENCODING=utf-8,确保中文内容读写无乱码。
Windows 编码问题
在 Windows 上如果遇到 GBK 编码错误,确保:
环境变量
PYTHONIOENCODING=utf-8已设置MCP Server 启动命令中已包含
"env": {"PYTHONIOENCODING": "utf-8"}所有 .md 文件以 UTF-8 编码写入
MCP Server 启动失败
# 检查 Python 版本 (需要 3.10+)
python --version
# 检查 mcp 包是否安装
pip show mcp
# 手动启动测试
python C:/Users/Gzlance/scripts/vault-mcp-server/server.py
# 如果无报错退出,说明 MCP stdio 正常启动笔记保存后搜索不到
vault_save 同步写入 .md 文件和 SQLite 索引。如果搜索不到,检查:
~/vault/下对应的 .md 文件是否存在SQLite 数据库是否损坏:删除
~/vault/.vault.db后重新运行vault_init(不影响已有的 .md 文件)
Vault 目录在哪里
默认 ~/vault/,即 C:\Users\<你的用户名>\vault\。可在每次调用时通过 vault_dir 参数覆盖,或设置环境变量 VAULT_DIR 指定。
相关文档
PRD 与完整规格:
docs/prd-knowledge-base.md使用手册:
docs/USER_GUIDE.md路由 Skill:
~/.claude/skills/kb/SKILL.mdObsidian Vault 社区方案: wangjun.dev
This server cannot be deployed
Maintenance
Related MCP Connectors
Markdown-based note-taking with a hosted MCP server. Your notes serve you and your AI.
Hosted MCP server connecting claude.ai, ChatGPT and other AI apps to your own computer
- TaprootOAuthcom.taproothq
Persistent memory layer for AI tools. Save and recall notes across Claude and other MCP clients.
Personal knowledge base MCP server with semantic search, auto-categorization, metadata extraction
Related MCP Servers
- AlicenseAqualityBmaintenanceThis MCP server enables Claude to interact with an Obsidian vault for persistent, structured memory, providing tools for note creation, semantic search, graph traversal, and session memory.189 npm13MIT
- FlicenseNot gradedqualityBmaintenanceA Python MCP server that gives Claude long-term memory and full context of everything by connecting to an Obsidian vault, enabling context retrieval, note management, and automatic graph linking.-
- AlicenseNot gradedqualityCmaintenanceA local MCP server that turns an Obsidian vault into a searchable second brain for Claude with meaning-based search, note read/write, and insight reports like contradictions and stale TODOs.MIT
- AlicenseNot gradedqualityDmaintenanceBidirectional MCP server that connects Claude with an Obsidian vault, enabling note management, full-text search, graph traversal, and daily notes operations.2,509 npmMIT