aliasunder avatar

Vault Cortex

aliasunder/vault-cortex

Connects Claude to your Obsidian vault without running Obsidian itself or installing plugins. Ships as a Docker container that reads and writes markdown files directly, with SQLite FTS5 for BM25-ranked search across 23 tools. You get CRUD operations, backlink queries, frontmatter manipulation, and a structured memory layer that appends dated entries to designated notes. Works locally against a folder or remotely via OAuth with Obsidian Sync keeping the vault current. Useful when you want your AI assistant to treat your personal knowledge base as working memory, or when you're building workflows that need programmatic access to wikilinks, tags, and daily notes without spinning up the full Obsidian app.

GitHub stars
37
tools
33
auth
Secret needed
transport
HTTP
env vars
24
last updated
Nov 13, 2026

Tools

33 tools

Public tool metadata for what this MCP can expose to an agent.

vault_read_noteRead a note — full body, properties, outline, or a section

Read a note — full body, properties, outline, or a section

No parameter schema in public metadata yet.

vault_write_noteCreate a note (fails if it already exists; set `overwrite` to replace)

Create a note (fails if it already exists; set `overwrite` to replace)

No parameter schema in public metadata yet.

vault_patch_noteHeading-targeted edit (append, prepend, replace with `include_children` guard, insert)

Heading-targeted edit (append, prepend, replace with `include_children` guard, insert)

No parameter schema in public metadata yet.

vault_replace_in_noteFind-and-replace text in a note (first match or `replace_all_occurrences`)

Find-and-replace text in a note (first match or `replace_all_occurrences`)

No parameter schema in public metadata yet.

vault_delete_spanDelete a block of lines by short anchors, no full re-quote

Delete a block of lines by short anchors, no full re-quote

No parameter schema in public metadata yet.

vault_replace_spanReplace a block of lines by short anchors with new content

Replace a block of lines by short anchors with new content

No parameter schema in public metadata yet.

vault_insert_at_anchorInsert content before or after a line identified by a short anchor

Insert content before or after a line identified by a short anchor

No parameter schema in public metadata yet.

vault_list_notesList notes with optional glob/folder filter

List notes with optional glob/folder filter

No parameter schema in public metadata yet.

vault_delete_noteDelete a note, honoring the vault's trash setting (protected paths enforced)

Delete a note, honoring the vault's trash setting (protected paths enforced)

No parameter schema in public metadata yet.

vault_move_noteMove or rename a note, rewriting links across the vault

Move or rename a note, rewriting links across the vault

No parameter schema in public metadata yet.

vault_searchHybrid search with tag/folder/property/date filters

Hybrid search with tag/folder/property/date filters

No parameter schema in public metadata yet.

vault_search_by_tagFind notes by tag, including the tags nested under it

Find notes by tag, including the tags nested under it

No parameter schema in public metadata yet.

vault_search_by_folderBrowse notes in a folder with metadata

Browse notes in a folder with metadata

No parameter schema in public metadata yet.

vault_recent_notesRecently modified or created notes

Recently modified or created notes

No parameter schema in public metadata yet.

vault_list_tagsAll tags with usage counts

All tags with usage counts

No parameter schema in public metadata yet.

vault_list_tasksVault-wide task index with sub-task depth — Kanban-aware, date/priority/heading filters

Vault-wide task index with sub-task depth — Kanban-aware, date/priority/heading filters

No parameter schema in public metadata yet.

vault_create_taskCreate a correctly-formatted task — dates, priority, recurrence, on_completion, sub-tasks, block_id

Create a correctly-formatted task — dates, priority, recurrence, on_completion, sub-tasks, block_id

No parameter schema in public metadata yet.

vault_update_taskEdit any task field in one call — completing a recurring task creates its next occurrence

Edit any task field in one call — completing a recurring task creates its next occurrence

No parameter schema in public metadata yet.

vault_get_memoryRead structured memory (file, section, or all)

Read structured memory (file, section, or all)

No parameter schema in public metadata yet.

vault_update_memoryAppend a dated entry to a memory section

Append a dated entry to a memory section

No parameter schema in public metadata yet.

vault_delete_memoryRemove a specific memory entry by date

Remove a specific memory entry by date

No parameter schema in public metadata yet.

vault_list_memory_filesDiscover memory files, their sections, and each file's entry policy

Discover memory files, their sections, and each file's entry policy

No parameter schema in public metadata yet.

vault_memory_recallEntry-granular hybrid recall of a topic across memory files, oldest-first

Entry-granular hybrid recall of a topic across memory files, oldest-first

No parameter schema in public metadata yet.

vault_list_property_keysAll property keys with sample values

All property keys with sample values

No parameter schema in public metadata yet.

vault_list_property_valuesDistinct values for a property key

Distinct values for a property key

No parameter schema in public metadata yet.

vault_search_by_propertyFind notes by property key-value

Find notes by property key-value

No parameter schema in public metadata yet.

vault_update_propertiesAdd, update, or replace properties without touching the body

Add, update, or replace properties without touching the body

No parameter schema in public metadata yet.

vault_get_backlinksNotes linking to a given path

Notes linking to a given path

No parameter schema in public metadata yet.

vault_get_outgoing_linksLinks from a given note

Links from a given note

No parameter schema in public metadata yet.

vault_find_orphansNotes with no incoming links

Notes with no incoming links

No parameter schema in public metadata yet.

vault_read_fileRead a non-markdown file — images delivered as images, canvases as readable outlines

Read a non-markdown file — images delivered as images, canvases as readable outlines

No parameter schema in public metadata yet.

vault_list_filesBrowse the vault's non-markdown files with sizes and per-extension counts

Browse the vault's non-markdown files with sizes and per-extension counts

No parameter schema in public metadata yet.

vault_get_daily_noteToday's (or any date's) daily note

Today's (or any date's) daily note

No parameter schema in public metadata yet.

Sponsors

Configuration

MCP_AUTH_TOKEN*secret

Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32

PUBLIC_URLdefault: http://localhost:8000

Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port.

EMBEDDING_ENABLEDdefault: true

Enable or disable the embedding pipeline. When false, no ONNX model is downloaded, no vector tables are created, and search uses FTS5 only.

RERANK_MODEdefault: blended

Cross-encoder reranking mode: blended (position-aware score blending after RRF fusion) or none (skip reranking). Only takes effect when EMBEDDING_ENABLED is true.

WINDOWS_MODEdefault: false

Windows bind-mount mode: enables filesystem polling for the file watcher and rename-based moves across the Docker Desktop/WSL2 bridge. Set to true when the vault lives on a Windows drive.

MEMORY_ENABLEDdefault: true

Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references.

FILE_TOOLS_ENABLEDdefault: true

Enable or disable file tools (vault_read_file, vault_list_files). When false, file tools are hidden and server metadata omits file tool references.

READONLY_MODEdefault: false

Run the server read-only: every vault-writing tool is hidden, the memory folder is not auto-created, and server metadata omits write references.

DISABLED_TOOLS

Hide individual tools by name, comma-separated. Subtractive only — it cannot re-enable a tool another setting hides; an unknown tool name stops the server at startup.

MEMORY_DIRdefault: About Me

Vault folder for structured memory files (About Me-style notes). Memory tools are hidden when MEMORY_ENABLED is false, but this value still feeds the defaults for PROTECTED_PATHS and ORPHAN_EXCLUDE_FOLDERS.

DAILY_NOTES_FOLDERdefault: Daily Notes

Vault folder for daily notes. Overrides the folder configured in Obsidian's daily-notes plugin. When unset, read from the vault's .obsidian/daily-notes.json (an empty folder there follows Obsidian's new-note location), falling back to "Daily Notes" when that file is missing or un

DAILY_NOTES_FORMATdefault: YYYY-MM-DD

Filename date format for daily notes (Moment.js tokens). Overrides the format configured in Obsidian's daily-notes plugin. When unset, read from the vault's .obsidian/daily-notes.json, falling back to "YYYY-MM-DD".

TRUST_PROXY_HOPSdefault: 0

Number of trusted reverse-proxy hops used to derive the client IP from X-Forwarded-For for OAuth rate limiting and request logs. With 0, injected forwarding headers are ignored.

TRUST_FORWARDED_HOPSdefault: 0

How many entries from the end of the RFC 7239 Forwarded header's for= list to count to reach the client IP for OAuth rate limiting and request logs. 0 ignores the header; 1 when the proxy in front writes it (e.g. AWS API Gateway) and is the only way to reach the server; 2 when a

TZdefault: UTC

IANA timezone for timestamps and daily note resolution.

LOG_LEVELdefault: info

Logging verbosity.

LOG_DIR

Directory for log files that survive container re-creation. The container's own log is always written but discarded when the container is recreated; date-stamped files under LOG_DIR persist on the data volume. Default: /data/logs (remote image), $STORAGE_ROOT/data/logs (single-vo

LOG_RETENTION_DAYSdefault: 90

Days to keep log files; cleanup runs at startup and each day. Only applies when LOG_DIR is a path.

LOG_MAX_DAILY_MBdefault: 25

Maximum MB per daily log file (1 MB = 1,000,000 bytes). Whole numbers of at least 1, or none to disable the cap. File logging pauses at the cap until midnight in TZ (UTC by default); console logging continues.

PROTECTED_PATHS

Comma-separated vault folder names blocked from vault_delete_note and vault_move_note. Default: MEMORY_DIR plus the daily notes folder, read from DAILY_NOTES_FOLDER or .obsidian/daily-notes.json (default Daily Notes; none when that setting is the vault root or empty). When set, o

ORPHAN_EXCLUDE_FOLDERS

Comma-separated vault folder names excluded from vault_find_orphans. Default: the daily notes folder, "Templates", and MEMORY_DIR. DAILY_NOTES_FOLDER wins; otherwise .obsidian/daily-notes.json is read per query (fallback "Daily Notes"; no daily folder when that setting is the vau

SERVICE_DOCUMENTATION_URLdefault: https://github.com/aliasunder/vault-cortex

Override the OAuth service documentation URL exposed via discovery metadata.

MAX_FILE_BYTESdefault: 52428800

Largest file vault_read_file will read, in bytes. Reading a larger file returns an error instead of content.

MAX_IMAGE_OUTPUT_BYTESdefault: 49152

Byte budget for images returned by vault_read_file, in binary bytes before base64 encoding. Images exceeding the budget are downscaled/recompressed server-side to fit; raise for clients that accept larger tool responses.

Readme

Details

Repository
github.com/aliasunder/vault-cortex
Website
github.com/aliasunder/vault-cortex
Categories
AI & LLM Tools, Documents & Knowledge, Search & Web Crawling
Package
ghcr.io/aliasunder/vault-cortex:0.57.4
Transport
HTTP
Auth
Required
Registry
MCP registry, active

Related AI & LLM Tools MCP servers

View all
1simplemindedbot avatarMnemexsimplemindedbot/mnemexTemporal memory for AI with decay and reinforcement. Two-layer storage (JSONL + Markdown).36stars
2tosin2013 avatarMcp Adr Analysis Servertosin2013/mcp-adr-analysis-serverADR drift detection, content safety, and decision memory for architectural decisions35stars
3jonradoff avatarLightcmsjonradoff/lightcmsAI-native, open-source CMS (Go) with 128 MCP tools: content, agent sandbox, SEO & AI.34stars
4tokensafe-dev avatarTokenSafetokensafe-dev/tokensafeReduce your AI bills by up to 99% locally: focused code, warm prompt caches & zero secret leaks.33stars
5alejandro-m-p avatarGit Coureralejandro-m-p/git-courerFull git MCP server for LLM agents — 17 tools, AST annotator, auto-backups, real plumbing.32stars
6atxp-dev avatarATXP — Agent Payment & Wallet Infrastructureatxp-dev/atxpAgent wallet, email, phone, and 41 paid tools: search, image/video/music gen, SMS, calls.32stars