obsidian-vault-sql-mcp
MCP server for Obsidian vaults. Works directly with .md files on disk — no Obsidian app needed. Each vault gets its own SQLite index for fast note lookup by name.
How it works
your-vault/
├── notes/
│ └── my-note.md
├── projects/
│ └── project-alpha.md
└── data-base-sqlite/ ← created automatically
└── notes.db ← SQLite index (name → path)
When you call index_vault, the server scans all .md files and stores their names and paths in SQLite. After that, finding a note by name is instant — no directory traversal needed. When you create, move or delete notes through the server, the index updates automatically.
Multiple vaults are supported — each has its own database inside it.
Installation
Requires uv installed.
uvx obsidian-vault-sql-mcp --help
No manual install needed — uvx handles everything on first run.
Configuration
Option A — inline vaults
uvx obsidian-vault-sql-mcp --vault personal=/path/to/my-vault --vault work=/path/to/work-vault
Option B — config file
Create config.json:
{
"vaults": {
"personal": "/path/to/my-vault",
"work": "/path/to/work-vault"
}
}
uvx obsidian-vault-sql-mcp --config /path/to/config.json
Claude Code setup
Add to your Claude Code MCP settings (~/.claude/settings.json):
{
"mcpServers": {
"obsidian": {
"command": "uvx",
"args": [
"obsidian-vault-sql-mcp",
"--config", "/path/to/config.json"
]
}
}
}
Or with inline vaults:
{
"mcpServers": {
"obsidian": {
"command": "uvx",
"args": [
"obsidian-vault-sql-mcp",
"--vault", "personal=C:/Users/you/Documents/MyVault"
]
}
}
}
Tools
| Tool | Description |
|---|---|
list_vaults() |
List all configured vault names |
index_vault(vault_name) |
Scan vault and build/update SQLite index |
list_notes(vault_name) |
List all indexed notes |
search_notes(vault_name, query) |
Search notes by name (case-insensitive substring) |
read_note(vault_name, note_name) |
Read note content (exact or fuzzy name match) |
create_note(vault_name, name, content, folder?) |
Create a new .md note |
update_note(vault_name, note_name, content) |
Overwrite note content |
move_note(vault_name, note_name, new_folder) |
Move note to a different folder |
delete_note(vault_name, note_name) |
Delete note from disk and index |
First-time setup
- Start the server with your vault path
- Call
index_vault("personal")once — this scans all existing notes - Done — all other tools work immediately
After that, index_vault only needs to be called again if you add/move notes outside this server (e.g. manually in Obsidian).
Example usage
search_notes("personal", "yandex")
→ [{ "name": "conspect-yandex-tracker", "relative_path": "notes/conspect-yandex-tracker.md" }]
read_note("personal", "conspect-yandex-tracker")
→ { "content": "# Конспект Yandex Tracker\n..." }
create_note("personal", "new-idea", "# New Idea\nText here", "inbox")
→ { "path": "inbox/new-idea.md" }
move_note("personal", "new-idea", "projects/2026")
→ { "new_path": "projects/2026/new-idea.md" }
License
MIT
Metadata
Release files for obsidian-vault-sql-mcp 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| obsidian_vault_sql_mcp-0.1.0.tar.gz | 5.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| obsidian_vault_sql_mcp-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 12.3 kB
Release files / obsidian_vault_sql_mcp-0.1.0.tar.gz
| Download URL | obsidian_vault_sql_mcp-0.1.0.tar.gz |
|---|---|
| Size | 5.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
4eb2a22e034184a538408fcbd73a920dfd084045e5f3f0853a2fc0f9a430e082
|
|
BLAKE2b-256 checksum How to use checksums |
d6d651db7f0e379eb4f9dbec8bedf4d14514971ede894fc489998a2cad7382c4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.10.12 {"installer":{"name":"uv","version":"0.10.12","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / obsidian_vault_sql_mcp-0.1.0-py3-none-any.whl
| Download URL | obsidian_vault_sql_mcp-0.1.0-py3-none-any.whl |
|---|---|
| Size | 6.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
9fe3765de81e93b6572f973d0a71a606c8e59dcb1837b05f919746a022f9c0ca
|
|
BLAKE2b-256 checksum How to use checksums |
69287f8a6ad9b3b037f5fbc0b2b2556bd6948d75837f67ab24065e5abc1bc58b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.10.12 {"installer":{"name":"uv","version":"0.10.12","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|