Skip to main content

Personal knowledge vault MCP server for Claude Desktop

Project description

vault-mcp

English | 中文

A personal knowledge vault MCP server for Claude Desktop — capture, search, promote, and connect your ideas, all through natural conversation.

https://github.com/user-attachments/assets/0ef205a4-0ffc-4a24-a92a-b4acf66377fe


English

Personal knowledge vault MCP server for Claude Desktop. Capture thoughts, search notes, and read files from a local markdown-based knowledge vault.


Quick Start (uvx — Recommended)

The lightest way to run vault-mcp. No Docker, no manual venv — just uv and one config change.

Step 1. Install uv (if you don't have it):

curl -LsSf https://astral.sh/uv/install.sh | sh

Step 2. Add to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json):

{
  "mcpServers": {
    "vault": {
      "command": "uvx",
      "args": ["obsidian-in-a-vat-mcp"],
      "env": {
        "VAULT_LOCAL_PATH": "/Users/yourname/my-vault"
      }
    }
  }
}

Replace /Users/yourname/my-vault with the absolute path to your local vault directory.

Step 3. Fully quit and reopen Claude Desktop. The vault tools will appear automatically.

Don't have a vault yet? Just point VAULT_LOCAL_PATH to an empty directory. On first use, ask Claude to "initialize my vault" — it will set up the full directory structure automatically.

Already have an Obsidian vault? Point VAULT_LOCAL_PATH to your existing vault and ask Claude to "initialize my vault". It will scan your notes, classify them (captures vs. notes), and migrate everything into the vault-mcp format. Originals are safely archived under _archive/.


Alternative Setup (Docker)

If you prefer Docker:

{
  "mcpServers": {
    "vault": {
      "command": "docker",
      "args": [
        "run", "-i", "--rm",
        "-v", "/Users/yourname/my-vault:/vault",
        "ghcr.io/oliverxuzy-ai/obsidian-in-a-vat:latest"
      ]
    }
  }
}

Requires Docker Desktop running in the background.

Update to latest: docker pull ghcr.io/oliverxuzy-ai/obsidian-in-a-vat:latest


Local Development

To run from a local checkout (changes take effect after restarting Claude Desktop):

{
  "mcpServers": {
    "vault": {
      "command": "uv",
      "args": [
        "run",
        "--directory",
        "/absolute/path/to/obsidian-in-a-vat",
        "vault-mcp"
      ],
      "env": {
        "VAULT_LOCAL_PATH": "/Users/yourname/my-vault"
      }
    }
  }
}

Switch back to the published version by changing command to "uvx" and args to ["obsidian-in-a-vat-mcp"].


Tools

Tool Actions Description
vault_init setup, migrate One-click vault initialization: seed empty vaults from template, or migrate existing Obsidian notes with server-side classification, todo conversion, and auto-archiving
vault_read search, get, list_captures Search vault, read files, list captures by status
vault_capture save, delete Capture refined insights with auto-tagging, or delete captures
vault_promote promote Promote captures into structured notes with auto-wikilinks
vault_analyze rebuild_graph, clusters, connections, orphans Knowledge graph: build graph, Louvain clustering, N-degree connections, orphan detection
vault_topic prepare, create, update Topic lifecycle: gather materials (progressive disclosure), create/update MOC-style topics

Auto-Tag Extraction

Tags are extracted from capture text using three sources (in priority order):

  1. tags.yaml — Custom tags and synonym mappings at the vault root
  2. Existing notes — Tags collected from existing vault files' frontmatter
  3. Default domains — Fallback: ai, llm, productivity, writing, coding, design, business, learning, health, finance, philosophy, psychology

Example tags.yaml in your vault root:

tags:
  ai: [artificial intelligence, machine learning, ML, deep learning]
  coding: [programming, software, development, code]
  design: [UX, UI, user experience]

Development

# Build image locally
docker build -t vault-mcp .

# Test the container starts (Ctrl+C to stop)
echo '{}' | docker run -i --rm -v $(pwd)/example_vault:/vault vault-mcp

# Syntax check
python -m py_compile src/vault_mcp/server.py

# Interactive MCP Inspector
mcp dev src/vault_mcp/server.py

中文

个人知识库 MCP 服务器,适配 Claude Desktop。捕获想法、搜索笔记、读取本地 markdown 知识库中的文件。


快速开始(uvx — 推荐)

最轻量的运行方式。不需要 Docker,不需要手动创建虚拟环境 — 只需安装 uv 即可。

第一步. 安装 uv(如果还没有):

curl -LsSf https://astral.sh/uv/install.sh | sh

第二步. 添加到 Claude Desktop 配置文件(~/Library/Application Support/Claude/claude_desktop_config.json):

{
  "mcpServers": {
    "vault": {
      "command": "uvx",
      "args": ["obsidian-in-a-vat-mcp"],
      "env": {
        "VAULT_LOCAL_PATH": "/Users/yourname/my-vault"
      }
    }
  }
}

/Users/yourname/my-vault 替换为你本地 vault 目录的绝对路径。

第三步. 完全退出并重新打开 Claude Desktop,vault 工具会自动出现。

还没有 vault?VAULT_LOCAL_PATH 指向一个空目录即可。首次使用时让 Claude "初始化我的 vault" — 它会自动创建完整的目录结构。

已有 Obsidian vault?VAULT_LOCAL_PATH 指向你现有的 vault 目录,让 Claude "初始化我的 vault"。它会扫描你的笔记,自动分类(capture vs. note),并批量迁移为 vault-mcp 格式。原始文件安全归档到 _archive/


备选安装方式(Docker)

如果你更喜欢用 Docker:

{
  "mcpServers": {
    "vault": {
      "command": "docker",
      "args": [
        "run", "-i", "--rm",
        "-v", "/Users/yourname/my-vault:/vault",
        "ghcr.io/oliverxuzy-ai/obsidian-in-a-vat:latest"
      ]
    }
  }
}

需要 Docker Desktop 在后台运行。

更新到最新版:docker pull ghcr.io/oliverxuzy-ai/obsidian-in-a-vat:latest


本地开发

从本地代码运行(修改代码后重启 Claude Desktop 即可生效):

{
  "mcpServers": {
    "vault": {
      "command": "uv",
      "args": [
        "run",
        "--directory",
        "/绝对路径/obsidian-in-a-vat",
        "vault-mcp"
      ],
      "env": {
        "VAULT_LOCAL_PATH": "/Users/yourname/my-vault"
      }
    }
  }
}

切回已发布版本:将 command 改为 "uvx"args 改为 ["obsidian-in-a-vat-mcp"]


工具

工具 Actions 说明
vault_init setup, migrate 一键初始化:空 vault 自动创建模板结构;已有 Obsidian vault 自动扫描分类、todo 转换、批量迁移,原始文件归档到 _archive/
vault_read search, get, list_captures 搜索 vault、读取文件、按状态列出 captures
vault_capture save, delete 捕获精炼洞察并自动打标签,或删除 capture
vault_promote promote 将 captures 提升为结构化笔记,自动插入 wikilinks
vault_analyze rebuild_graph, clusters, connections, orphans 知识图谱:构建图谱、Louvain 聚类、N 度关联查询、孤岛检测
vault_topic prepare, create, update Topic 生命周期:收集原材料(渐进式披露)、创建/更新 MOC 结构笔记

自动标签提取

标签从 capture 文本中提取,使用三个来源(按优先级排序):

  1. tags.yaml — vault 根目录的自定义标签和同义词映射
  2. 已有笔记 — 收集已有 vault 文件 frontmatter 中的标签进行匹配
  3. 默认领域 — 兜底列表:ai, llm, productivity, writing, coding, design, business, learning, health, finance, philosophy, psychology

tags.yaml 示例(放在 vault 根目录):

tags:
  ai: [artificial intelligence, machine learning, ML, deep learning]
  coding: [programming, software, development, code]
  design: [UX, UI, user experience]

开发

# 本地构建镜像
docker build -t vault-mcp .

# 测试容器启动(Ctrl+C 停止)
echo '{}' | docker run -i --rm -v $(pwd)/example_vault:/vault vault-mcp

# 语法检查
python -m py_compile src/vault_mcp/server.py

# 使用 MCP Inspector 交互测试
mcp dev src/vault_mcp/server.py

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

obsidian_in_a_vat_mcp-0.3.10.tar.gz (398.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

obsidian_in_a_vat_mcp-0.3.10-py3-none-any.whl (39.6 kB view details)

Uploaded Python 3

File details

Details for the file obsidian_in_a_vat_mcp-0.3.10.tar.gz.

File metadata

  • Download URL: obsidian_in_a_vat_mcp-0.3.10.tar.gz
  • Upload date:
  • Size: 398.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for obsidian_in_a_vat_mcp-0.3.10.tar.gz
Algorithm Hash digest
SHA256 52baa3ba4784208b4e230626bb0e1cc4b44dc9585f1d245850a320ae6dfdf161
MD5 5bd8de0cd8ffc460a4c040030f666387
BLAKE2b-256 47dfc4c1cf772743baec229005585d80c48945f97bda28b8f2e7d8c488cd1b6b

See more details on using hashes here.

Provenance

The following attestation bundles were made for obsidian_in_a_vat_mcp-0.3.10.tar.gz:

Publisher: release.yml on oliverxuzy-ai/knowledge-in-a-vat

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file obsidian_in_a_vat_mcp-0.3.10-py3-none-any.whl.

File metadata

File hashes

Hashes for obsidian_in_a_vat_mcp-0.3.10-py3-none-any.whl
Algorithm Hash digest
SHA256 f7a7b78c045370da62f862b322430016467848d85ce9c2bacbc4ba75186cda76
MD5 b0c614402045422ce3cc9bdc1e262c3a
BLAKE2b-256 45d46efeab9427aa256026570393bcf743f921bcb70048a26da0ee87f7508fa3

See more details on using hashes here.

Provenance

The following attestation bundles were made for obsidian_in_a_vat_mcp-0.3.10-py3-none-any.whl:

Publisher: release.yml on oliverxuzy-ai/knowledge-in-a-vat

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page