LabscoMCP early access ↗
aliasunderMCP SERVER · OFFICIAL PROJECT

Vault Cortex

Hybrid search, tasks, structured memory and read/write access to an Obsidian vault — no plugin, no Obsidian running.

by aliasunder ↗Note-Taking & Personal Knowledge Bases✓ Official

LABSCO SUMMARY

Your notes become something an agent can search well, not just read.

Keyword search fails on a personal vault because your words and past-you's words differ; blending vectors and a reranker on top of FTS5 is what fixes that, and it runs locally at around 45MB of models with no external API. The memory layer is the second idea worth the setup: append-only dated entries with entry-level recall, so "what do I think about X" returns the current take plus how it got there.

What it is

A standalone MCP server that works directly with the .md files of an Obsidian vault on disk. One Docker container gives an agent search, note editing, task management and a memory layer; run it on a server with Obsidian Sync and the same vault is reachable from your phone or claude.ai over OAuth 2.1.

What you get

  • Notes — vault_read_note, vault_write_note, vault_patch_note for heading-targeted edits, vault_replace_in_note, vault_delete_span, vault_list_notes, vault_delete_note, vault_move_note, which rewrites links across the vault
  • Search — vault_search blends FTS5 keyword matching with vector similarity through RRF fusion and a cross-encoder reranker; plus vault_search_by_tag, vault_search_by_folder, vault_recent_notes, vault_list_tags
  • Tasks — vault_list_tasks indexes the whole vault Kanban-aware, across six date fields, priority and folder; vault_update_task changes status, priority and lane in one call and stamps the completion date
  • Memory — vault_update_memory appends dated entries, vault_memory_recall retrieves matching entries across memory files oldest-first, with vault_get_memory, vault_delete_memory and vault_list_memory_files
  • Properties and links — vault_list_property_keys, vault_list_property_values, vault_search_by_property, vault_update_properties, vault_get_backlinks, vault_get_outgoing_links, vault_find_orphans
  • Files and daily notes — vault_read_file returns images as images and canvases as readable outlines, vault_list_files browses attachments, vault_get_daily_note resolves today's or any date's note from your Obsidian daily-notes settings

Requirements

Docker (or a compatible runtime) and a vault folder. The fastest path is npx vault-cortex@latest init, which asks for the vault path, generates the auth token and config, and starts the container — that CLI needs Node.js >= 20.12, the server itself runs in Docker. Two settings are mandatory: MCP_AUTH_TOKEN, generated with openssl rand -hex 32, and the vault bind-mount path. The client connects to http://localhost:8000/mcp. Remote deployments additionally need PUBLIC_URL and an Obsidian Sync subscription. Feature switches let you cut the surface: EMBEDDING_ENABLED=false for keyword-only search, MEMORY_ENABLED=false, FILE_TOOLS_ENABLED=false, READONLY_MODE=true, and DISABLED_TOOLS to hide named tools. Image version 0.42.1.

Setup effort

One command plus a local token — npx vault-cortex@latest init, then supply the token