Self-hosted Vault MCP
Provides access to a Markdown notes folder, enabling file listing, note reading, search across Markdown notes, and atomic creation or updates of Markdown files.
Provides access to an Obsidian vault folder, enabling MCP clients to list, read, search, create, and update Markdown notes without requiring the Obsidian app or a sync plugin.
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
Self-hosted Vault MCP
Give an MCP client access to a Markdown or Obsidian folder on your server. Read relevant files, search a selected subtree, and create or update notes in one configured folder (default Agents). No running Obsidian app or synchronization plugin is needed.
Cloudflare Access authenticates every request. The server verifies signed Access assertions and uses stateless Streamable HTTP at /mcp.
Quick start
You need a Linux server with Docker Engine and Docker Compose v2, an existing vault folder, and a Cloudflare account with a domain, Tunnel, and Access. The image uses Python 3.12. A direct Python installation needs Python 3.12+ with venv/pip and the dependencies in requirements.txt.
Download this source and copy
.env.exampleto.env. Set the vault, state, and write-folder paths. Follow the concrete storage permission instructions to match the vault owner's numeric UID/GID, or use a dedicated service identity and shared group. The defaults are nonroot10001:10001; do not recursively change your vault's ownership.Follow the ordered Cloudflare setup: create the tunnel route, protect the entire hostname with Access, configure Managed OAuth (or a bot's Service Auth policy), and save the tunnel token through your password manager into its private file. Fill the corresponding
.envsettings and choose a published cloudflared image version, pinned to its digest for production.Run
docker compose up -d --build. Compose publishes no origin host port.Connect your Streamable HTTP MCP client to
https://vault.example.com/mcp, complete Access login, and callbootstrap.
Ask your agent to follow AGENTS.md for detailed configuration and a synthetic-note verification. Missing AGENTS.md or optional context in the served vault is reported honestly; the server invents no owner rules.
Related MCP server: L4
Tools
Tool | Purpose |
| Live owner instructions and optional context, including hashes or missing metadata |
| Recursive files in the write folder by default; explicit |
| One explicit visible file, with SHA-256 (up to 256 KiB) |
| Markdown search, defaulting to the write folder; explicit |
| Exclusive atomic creation, including new nested folders |
| Atomic replacement with an expected SHA-256 precondition |
| Local persistence mode or optional external readiness guard |
Writes require agent_write, a portable .md path inside the write folder, content no larger than 64 KiB, and a canonical UUID request_id. Use the same UUID and payload on retry. Hash conflicts do not overwrite the file. A crash after possible publication leaves an ambiguous ledger entry: inspect the actual file before deciding what to do. Do not bypass ambiguity with a fresh UUID blindly.
Storage and limits
A successful save confirms local filesystem persistence. It does not confirm synchronization to another device. Use a separately managed synchronization solution if needed; this project bundles none. Standalone writes work as soon as valid storage and authentication are configured. An optional external-readiness guard is documented in AGENTS.md and fails closed whenever configured.
The mutex coordinates MCP writers sharing the state directory. It is not a distributed lock; external editors and synchronizers can race a hash check. Use one MCP instance and avoid concurrent external edits to agent-owned notes. Keep backups of the vault and private state together; the state ledger preserves retry history and contains stored operation receipts.
Hidden paths, traversal, and symlinks are blocked. Visible files elsewhere in the vault can be read explicitly. This is one vault trust boundary, not a per-folder multi-user permission system. Notes are untrusted data; the owner's instructions govern permitted use.
Development
python3 -m venv .venv
.venv/bin/python -m pip install --index-url https://pypi.org/simple --require-hashes -r requirements.txt
.venv/bin/python -m unittest discover -s tests -v
.venv/bin/python -m pip wheel --no-deps --wheel-dir dist .The tests use synthetic temporary files and locally signed assertions through the real ASGI/MCP transport, with a fixture signing key resolver. They do not establish real Cloudflare configuration or native-client compatibility. CI also builds the container. Follow the deployment verification in AGENTS.md for your actual environment.
Source-available under PolyForm Perimeter 1.0.1. Personal and internal business use are allowed; providing competing products or services is restricted, including free competing offerings. Exceptions for competing commercial or free offerings require separate permission from the copyright owner. See NOTICE. Runtime dependencies FastMCP, PyJWT with cryptography, and Uvicorn retain their respective upstream licenses; cloudflared is a separate container maintained by Cloudflare.
This server cannot be deployed
Maintenance
Related MCP Connectors
Notes and memory assistant: one Markdown vault that Claude, ChatGPT and any MCP client can share.
Markdown-based note-taking with a hosted MCP server. Your notes serve you and your AI.
Encrypted Markdown notes and team knowledge base. Search, read and write notes in vaults you allow.
Google Keep-style notes app with an MCP server for AI agents to read/write notes.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceRemote MCP server for Obsidian vaults, enabling secure access to markdown notes from Claude clients without the Obsidian desktop app. Provides tools for searching, reading, listing recent notes, resolving daily notes, and creating/appending notes via HTTPS.4 npmMIT
- AlicenseNot gradedqualityDmaintenanceEnables MCP clients to access and manage a personal markdown knowledge base stored in Cloudflare R2. Provides tools for listing, reading, writing, searching (full-text and semantic), and following backlinks between notes.18 npm3MIT
- AlicenseAqualityBmaintenanceEnables MCP clients to read, write, search, and manage notes, canvases, kanban boards, and other Obsidian vault content over a network, without requiring the Obsidian desktop app.33MIT
- AlicenseAqualityAmaintenanceExposes Obsidian-style Markdown vaults to MCP clients, enabling reading, writing, searching, and version-controlled editing of notes with automatic git snapshots and restore.1424 npm1MIT