# Hatchdoor

A server that puts an MCP endpoint and a web UI on the same folder of Markdown notes. Your agent writes to it, you edit in the browser.

- MCP server · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed · ★ 62
- Author: BatterWorks
- License: AGPL-3.0 · policy=link-only · description only; the file stays with the author
- Source: https://github.com/BatterWorks/Hatchdoor
- Updated: 2026-10-19
- HTML: https://affpapa.org/en/nevibecode/mcp/hatchdoor

## What it does

Point Hatchdoor at a directory of Markdown files and it serves both a web interface and an MCP endpoint from it. Nothing else has to be installed on the machine: no Obsidian, no community plugin, no desktop app left open in the background.

Browsing, backlinks and the knowledge graph run off a throwaway SQLite read model. Delete the cache and it gets rebuilt from the files on disk, since the Markdown stays authoritative. Agent edits go through the same atomic operations the UI uses, with optimistic concurrency and, if you switch it on, an automatic git commit and push. A single instance can serve several vaults with separate sources and separate agent scopes.

The published container image is distroless and runs as `nonroot`, with no shell inside, so a broken mount is not something you repair from a terminal in the container. Mount a vault read-only and the in-browser editor stays off; you keep browsing and search.

## Requirements
- Needs: Docker
- Works with: Obsidian

## Install

### Claude Code (native platform)

**Install**
- The MCP registry has no launch command for it: see the repository README

## When to use it
- find a note by meaning rather than exact wording
- rename a tag across the whole vault in one checked operation
- give a coding agent access to a personal note folder
- serve a Markdown directory over HTTP without installing Obsidian
- keep a git history of everything the agent changes

## Example prompts
- Search the vault for notes on Postgres indexes and show me only the GIN part
- Create `projects/hatchdoor.md` and link it from `[[Roadmap]]`
- Rename the `draft` tag to `archive` everywhere in the vault

## Similar
- [REA](https://affpapa.org/en/nevibecode/mcp/rea.md) — MCP server · ★ 386989
- [GitHub](https://affpapa.org/en/nevibecode/mcp/github.md) — MCP server · ★ 33918
- [Netdata](https://affpapa.org/en/nevibecode/mcp/netdata.md) — MCP server · ★ 81115
- [browser-use](https://affpapa.org/en/nevibecode/mcp/browser-use.md) — MCP server · ★ 119160
- [Codebase Memory](https://affpapa.org/en/nevibecode/mcp/codebase-memory.md) — MCP server · ★ 47392
- [mcp-server](https://affpapa.org/en/nevibecode/mcp/mcp-server.md) — MCP server · ★ 43872

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
