Standalone MCP server for Obsidian vaults — hybrid search, notes & files, memory, tasks, OAuth 2.1.
- ✓Open-source license (MIT)
- ✓Actively maintained (<30d)
- ✓Clear description
- ✓Topics declared
claude mcp add vault-cortex -- npx -y vault-cortex{
"mcpServers": {
"vault-cortex": {
"command": "npx",
"args": ["-y", "vault-cortex"]
}
}
}MCP Servers overview
<p align="center">
<img src="./assets/banner.svg" width="720" alt="Vault Cortex">
</p>
<div align="center">
[](https://github.com/aliasunder/vault-cortex/actions/workflows/ci.yml)
[](https://github.com/aliasunder/vault-cortex/actions/workflows/gitleaks.yml)
[](https://github.com/aliasunder/vault-cortex/actions/workflows/trivy.yml)
[](https://github.com/aliasunder/vault-cortex/releases)
[](https://www.npmjs.com/package/vault-cortex)
[](https://github.com/aliasunder/vault-cortex/blob/main/LICENSE)
[](https://deepwiki.com/aliasunder/vault-cortex)
[](https://glama.ai/mcp/servers/aliasunder/vault-cortex)
</div>
**Vault Cortex** is a standalone MCP server that gives any AI agent **hybrid search, task management, structured memory, and read/write access** to your [Obsidian](https://obsidian.md) vault. No plugins, no running Obsidian, no separate bridge. One Docker container, your vault folder, a full tool suite + guided prompts. Deploy on a VPS with Obsidian Sync and the same vault is accessible from your phone, claude.ai, or any remote MCP client, secured with OAuth 2.1.
**Contents** — [What you get](#what-you-get) · [Quick Start](#quick-start) · [How It Works](#how-it-works) · [Hybrid Search](#hybrid-search) · [Memory](#memory) · [Tasks](#tasks) · [Files](#files) · [Tools](#tools) · [Prompts](#prompts) · [Properties](#properties) · [Config](#configuration) · [Data Integrity](#data-integrity) · [Auth](#authentication) · [Deployment](#deployment-options)
## What you get
<table align="center">
<tr>
<td align="center"><strong>Search the vault</strong></td>
<td align="center"><strong>Reason over notes</strong></td>
<td align="center"><strong>Write back to Obsidian</strong></td>
</tr>
<tr>
<td><img src="./assets/demo-remember.gif" width="240" alt="Ask Claude about a past trip — it searches the vault and recalls the route, cities, and highlights"></td>
<td><img src="./assets/demo-reason.gif" width="240" alt="Ask what went wrong — Claude synthesizes lessons from session logs and itinerary notes"></td>
<td><img src="./assets/demo-writeback.gif" width="240" alt="Save lessons learned to the vault, update travel preferences, then see both in Obsidian"></td>
</tr>
</table>
<p align="center"><em>All three demos run on Claude mobile. The vault is on a remote server, not the phone.</em></p>
- **[Remote access](#deployment-options)** — works from your phone, a remote server, or any MCP client via OAuth 2.1. Deploy on a VPS with Obsidian Sync for access from anywhere.
- **[Plugin-free](#how-it-works)** — Obsidian doesn't need to be running. The server works directly with `.md` files on disk. Headless sync keeps the vault current.
- **[Hybrid search](#hybrid-search)** — FTS5 keyword matching + vector semantic similarity via RRF fusion, refined by cross-encoder reranking for intent-heavy queries. Keywords stay precise on exact terms and jargon; vectors find notes even when your words differ from the vault's.
- **[Structured memory](#memory)** — dated, append-only entries accumulate into a personal knowledge layer, auto-initialized for AI personalization. Topic recall answers "what do I think about X?" with the current take and the dated history behind it — evolution included.
- **[Tasks](#tasks)** — Kanban-aware task queries and updates: triage by status, dates, or priority, then complete, reprioritize, or move tasks between lanes in one call. Parses both [Tasks plugin](https://publish.obsidian.md/tasks/) emoji and [Dataview](https://blacksmithgu.github.io/obsidian-dataview/) inline-field formats.
- **[Link graph](#tools)** — backlinks, outgoing links, and orphan detection across the vault
- **[Files](#files)** — read the vault's non-markdown files too: images arrive as actual images (shrunk to fit when needed), PDFs as structured text or rendered pages, canvases as readable outlines, data files as text
- **[Obsidian-native](#properties)** — understands frontmatter, wikilinks, tags, headings, and daily notes
- **[Guided workflows](#prompts)** — built-in prompts for vault health, memory review, and daily reconciliation — assembled from live vault data each time
**Tested across a 15-day trip through Europe.** 30+ sessions from a phone, 216 tool calls, zero laptop access needed. Writes in one session were immediately available in the next, across cities and days.
## Quick Start
### Local (2 minutes — Docker + your vault folder)
**Prerequisites:** [Docker](https://docs.docker.com/get-docker/) (or a Docker-compatible runtime, e.g. OrbStack, Colima, Podman), Node.js >= 20.12 (only for the CLI — the server itself runs in Docker), and an Obsidian vault (or any folder of `.md` files).
```bash
npx vault-cortex@latest init
```
That's it — the CLI asks for your vault path, generates the auth token and config files, starts the server, and prints the connection details for your MCP client ([CLI reference →](./cli/)).
**Set up with the CLI?** Upgrade later with `npx vault-cortex@latest upgrade` ([details →](./cli/#upgrade))
<details>
<summary><strong>Manual setup</strong> (no Node.js needed)</summary>
```bash
# 1. Get the quickstart files
curl -O https://raw.githubusercontent.com/aliasunder/vault-cortex/main/deploy/local/docker-compose.yml
curl -O https://raw.githubusercontent.com/aliasunder/vault-cortex/main/deploy/local/.env.example
# 2. Configure
cp .env.example .env
# Edit .env — set MCP_AUTH_TOKEN (openssl rand -hex 32) and VAULT_PATH
# 3. Start
docker compose up
```
</details>
**[Full local guide →](./deploy/local/)** (includes [Windows setup](./deploy/local/#windows-docker-desktop))
### Remote (access from anywhere — Docker + Obsidian Sync)
**Prerequisites:** a VPS with [Docker](https://docs.docker.com/engine/install/) (or a Docker-compatible runtime), an [Obsidian Sync](https://obsidian.md/sync) subscription, and Node.js >= 20.12 (only for the CLI — the server itself runs in Docker).
```bash
# On your VPS:
npx vault-cortex@latest init --mode remote
```
That's it — the CLI walks through the public URL, Obsidian Sync token (it can run [`get-sync-token`](./cli/#get-sync-token) for you), and auth config, then starts the server ([CLI reference →](./cli/)).
**Set up with the CLI?** Upgrade later with `npx vault-cortex@latest upgrade` ([details →](./cli/#upgrade))
<details>
<summary><strong>Manual setup</strong> (no Node.js needed)</summary>
```bash
# On your VPS:
mkdir -p /opt/vault-cortex && cd /opt/vault-cortex
curl -O https://raw.githubusercontent.com/aliasunder/vault-cortex/main/deploy/remote/docker-compose.yml
curl -O https://raw.githubusercontent.com/aliasunder/vault-cortex/main/deploy/remote/.env.example
cp .env.example .env
# Edit .env — set MCP_AUTH_TOKEN, PUBLIC_URL, OBSIDIAN_AUTH_TOKEN, VAULT_NAME
docker compose up -d
```
</details>
**[Full remote guide →](./deploy/remote/)**
### Connect your MCP client
| Setup | Server URL |
| ---------- | --------------------------- |
| **Local** | `http://localhost:8000/mcp` |
| **Remote** | `<PUBLIC_URL>/mcp` |
Add the server URL in any MCP client — Claude Code, Claude Desktop, Cursor, OpenCode, or any other. OAuth clients open a consent page in your browser — approve with your token, and the client handles token renewal from then on. Clients without OAuth (MCP Inspector, scripts) send the token directly as an `Authorization: Bearer` header.
**Claude Code:**
```bash
claude mcp add --scope user --transport http vault-cortex http://localhost:8000/mcp # local (or <PUBLIC_URL>/mcp)
```
`--scope user` registers the server for every project; omit it to scope it to the current directory only.
<details>
<summary><strong>Claude Desktop</strong> (localhost requires mcp-remote bridge)</summary>
The "Add custom connector" dialog only accepts `https` URLs. With an `https` PUBLIC_URL, add it directly in the connector dialog; for a localhost server, register it in `claude_desktop_config.json` through the [mcp-remote](https://github.com/geelen/mcp-remote) stdio bridge instead:
```json
{
"mcpServers": {
"vault-cortex": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"http://localhost:8000/mcp",
"--header",
"Authorization: Bearer <your MCP_AUTH_TOKEN>"
]
}
}
}
```
</details>
**claude.ai (web and mobile)** connects to the remote setup only — its connectors are fetched server-side and can never reach localhost.
> "Remote MCP server" refers to the connection type (HTTP) — in the local setup the server still runs entirely on your machine.
See [Authentication](#authentication) for both methods and token lifetimes.
## How It Works
```mermaid
graph LR
Client["MCP Client"] -->|OAuth 2.1 / Bearer| Server["MCP server"]
Server -->|read/write| Vault[("/vault<br/>.md files")]
Server -->|FTS5 + vector| SQLite[("SQLite\nFTS5 + sqlite-vec")]
Sync["Obsidian Sync service"] <-->|Obsidian Sync| Vault
```
The search index is rebuildable derived state — FTS5 keyword tables rebuild on startup, vector embeddings persist across restarts with content-hash gating (onlWhat people ask about vault-cortex
What is aliasunder/vault-cortex?
+
aliasunder/vault-cortex is mcp servers for the Claude AI ecosystem. Standalone MCP server for Obsidian vaults — hybrid search, notes & files, memory, tasks, OAuth 2.1. It has 12 GitHub stars and was last updated today.
How do I install vault-cortex?
+
You can install vault-cortex by cloning the repository (https://github.com/aliasunder/vault-cortex) or following the README instructions on GitHub. ClaudeWave also provides quick install blocks on this page.
Is aliasunder/vault-cortex safe to use?
+
Our security agent has analyzed aliasunder/vault-cortex and assigned a Trust Score of 87/100 (tier: Trusted). See the full breakdown of passed checks and flags on this page.
Who maintains aliasunder/vault-cortex?
+
aliasunder/vault-cortex is maintained by aliasunder. The last recorded GitHub activity is from today, with 0 open issues.
Are there alternatives to vault-cortex?
+
Yes. On ClaudeWave you can browse similar mcp servers at /categories/mcp, sorted by popularity or recent activity.
Deploy vault-cortex to your cloud
Ship this repo to production in minutes. Each platform spins up its own environment with editable env vars.
Maintain this repo? Add a badge to your README
Drop the badge into your GitHub README to show it's tracked on ClaudeWave. Each badge links back to this page and reflects the live Trust Score.
[](https://claudewave.com/repo/aliasunder-vault-cortex)<a href="https://claudewave.com/repo/aliasunder-vault-cortex"><img src="https://claudewave.com/api/badge/aliasunder-vault-cortex" alt="Featured on ClaudeWave: aliasunder/vault-cortex" width="320" height="64" /></a>More MCP Servers
Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.
User-friendly AI Interface (Supports Ollama, OpenAI API, ...)
An open-source AI agent that brings the power of Gemini directly into your terminal.
The fastest path to AI-powered full stack observability, even for lean teams.
Real-time global intelligence dashboard. AI-powered news aggregation, geopolitical monitoring, and infrastructure tracking in a unified situational awareness interface
🕷️ An adaptive Web Scraping framework that handles everything from a single request to a full-scale crawl!