Vault Cortex

io.github.aliasunder/vault-cortex

Standalone MCP server for Obsidian vaults — hybrid search, notes & files, memory, tasks, OAuth 2.1

Connect this server

Add this to your MCP client config — claude_desktop_config.json (Claude Desktop) or .cursor/mcp.json (Cursor).Suits: Claude Desktop · Cursor.

{
  "mcpServers": {
    "vault-cortex": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "ghcr.io/aliasunder/vault-cortex:0.57.0"
      ],
      "env": {
        "MCP_AUTH_TOKEN": "<your MCP_AUTH_TOKEN>",
        "PUBLIC_URL": "http://localhost:8000",
        "EMBEDDING_ENABLED": "true",
        "RERANK_MODE": "blended",
        "WINDOWS_MODE": "false",
        "MEMORY_ENABLED": "true",
        "FILE_TOOLS_ENABLED": "true",
        "READONLY_MODE": "false",
        "MEMORY_DIR": "About Me",
        "DAILY_NOTES_FOLDER": "Daily Notes",
        "DAILY_NOTES_FORMAT": "YYYY-MM-DD",
        "TRUST_PROXY_HOPS": "0",
        "TRUST_FORWARDED_HOPS": "0",
        "TZ": "UTC",
        "LOG_LEVEL": "info",
        "LOG_RETENTION_DAYS": "90",
        "SERVICE_DOCUMENTATION_URL": "https://github.com/aliasunder/vault-cortex",
        "MAX_FILE_BYTES": "52428800",
        "MAX_IMAGE_OUTPUT_BYTES": "49152",
        "MAX_PDF_RENDER_PAGES": "5"
      }
    }
  }
}
Environment variables
  • MCP_AUTH_TOKENrequiredsecretBearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32
  • PUBLIC_URLPublic 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_ENABLEDEnable or disable the embedding pipeline. When false, no ONNX model is downloaded, no vector tables are created, and search uses FTS5 only.
  • RERANK_MODECross-encoder reranking mode: blended (position-aware score blending after RRF fusion) or none (skip reranking). Only takes effect when EMBEDDING_ENABLED is true.
  • WINDOWS_MODEWindows 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_ENABLEDEnable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references.
  • FILE_TOOLS_ENABLEDEnable or disable file tools (vault_read_file, vault_list_files). When false, file tools are hidden and server metadata omits file tool references.
  • READONLY_MODERun the server read-only: every vault-writing tool is hidden, the memory folder is not auto-created, and server metadata omits write references.
  • MEMORY_DIRVault 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_FOLDERVault 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 unreadable. Set to / for the vault root.
  • DAILY_NOTES_FORMATFilename 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_HOPSNumber 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_HOPSHow 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); 2 when a CDN fronts that proxy and is the only way to reach it.
  • TZIANA timezone for timestamps and daily note resolution.
  • LOG_LEVELLogging verbosity.
  • LOG_RETENTION_DAYSDays to keep log files before automatic cleanup on startup; only applies when LOG_DIR is a path.
  • SERVICE_DOCUMENTATION_URLOverride the OAuth service documentation URL exposed via discovery metadata.
  • MAX_FILE_BYTESLargest file vault_read_file will read, in bytes. Reading a larger file returns an error instead of content.
  • MAX_IMAGE_OUTPUT_BYTESByte 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.
  • MAX_PDF_RENDER_PAGESMaximum PDF pages to render as images when raw: true is set on vault_read_file. The per-page byte budget is MAX_IMAGE_OUTPUT_BYTES divided evenly across the rendered pages.

A starting point — check the repository for exact arguments and setup. Restart your client after editing the config.

Category
Developer Tools
Version
0.57.0
Registry
active
Published
11/8/2026
Browse all Developer Tools →

Add the badge to your site

Show visitors that Vault Cortex is listed here — it’s also the link we check for a free listing.

Vault Cortex — listed on Serverdex

HTML — for your website

<a href="https://serverdex.io/server/io-github-aliasunder-vault-cortex?utm_source=badge"><img src="https://serverdex.io/brand/badge.svg" alt="Vault Cortex — listed on Serverdex" width="123" height="40" loading="lazy"></a>

Recommended. A dofollow link from your own domain is the one that counts for search engines, and it's the link we check for a free listing.

Markdown — for your README

[![Vault Cortex — listed on Serverdex](https://serverdex.io/brand/badge.svg)](https://serverdex.io/server/io-github-aliasunder-vault-cortex?utm_source=badge)

Nice for visibility, but GitHub marks README links nofollow, so it doesn't pass authority. Use the HTML badge on your site as well.