Hatchdoor
Self-hosted server for Markdown and Obsidian-style vaults, with a browser UI and an MCP endpoint
Folder of linked Markdown notes served as searchable, editable memory for coding and chat agents
Official · IWE Rust Local · stdio Knowledge and memoryProductivity
62 popularity score ★ 1.8k ↓ 599/wk
Opens the app, which asks before it adds the server.
claude mcp add iwe -- npx -y @iwe-org/mcp{
"mcpServers": {
"iwe": {
"command": "npx",
"args": [
"-y",
"@iwe-org/mcp"
]
}
}
}{
"mcpServers": {
"iwe": {
"command": "npx",
"args": [
"-y",
"@iwe-org/mcp"
]
}
}
}{
"servers": {
"iwe": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@iwe-org/mcp"
]
}
}
}[mcp_servers.iwe]
command = "npx"
args = ["-y", "@iwe-org/mcp"]gemini mcp add --scope user iwe npx -- -y @iwe-org/mcpOpens the app, which asks before it adds the server.
cargo install iwe iwes iwec
cd <NOTES_DIR> && iwe initclaude mcp add iwe -- iwec{
"mcpServers": {
"iwe": {
"command": "iwec",
"args": []
}
}
}{
"mcpServers": {
"iwe": {
"command": "iwec",
"args": []
}
}
}{
"servers": {
"iwe": {
"type": "stdio",
"command": "iwec",
"args": []
}
}
}[mcp_servers.iwe]
command = "iwec"
args = []gemini mcp add --scope user iwe iwecIWE_DEBUG |
Optional: When set to any value, logs at debug level instead of info. |
|---|
IWE's MCP server, `iwec`, treats the Markdown files in the directory it starts in as a graph of linked documents and gives an agent tools to search, read, create, edit and reorganise them. The notes stay ordinary files on disk, so you can open, correct or delete anything the agent saved, keep the folder in git, and use the same notes in IWE's editor plugins (VS Code, Neovim, Helix, Zed), its CLI or the iWe Mac app.
Reading tools do fuzzy and BM25 full-text search, pull a document together with the notes it links to or is included by (with token and document caps), show the note hierarchy, report statistics and broken links, and flatten block references into one document. Writing tools create, replace and delete notes; `iwe_query` runs IWE's query language for frontmatter and block-level edits and refuses any mutation that lacks an `expect` guard. Refactoring tools rename a note and rewrite links to it, extract a section into its own note, inline a reference, re-format every file, and attach a note to targets such as a daily note. It also offers three prompts (explore, review, refactor) and resources for documents, the tree, stats and config, and it watches the folder so edits made elsewhere show up without a restart.
The docs say every write and refactoring tool accepts `dry_run`; in the source at iwec-v0.26.1 only `iwe_delete`, `iwe_query`, `iwe_rename`, `iwe_extract`, `iwe_inline` and `iwe_attach` take it, while `iwe_create`, `iwe_update` and `iwe_normalize` write straight away (crates/iwec/src/lib.rs). It runs over stdio by default, or as Streamable HTTP at `/mcp` with `--transport http`.
| Runtime | Node.jsorRust |
|---|
Node.js with npx for the npm way (the package fetches a prebuilt `iwec` binary for macOS arm64/x64, Linux x64/arm64 with glibc, or Windows x64), or Homebrew (`brew install iwe-org/iwe/iwe`) or Rust's cargo to install `iwec` directly. A folder of Markdown notes, ideally set up with `iwe init`; the client must start the server with that folder as its working directory. No account or API key.
It only works on the folder it is started in: there is no path setting, so a client that launches it from another directory (for example a desktop app's default) serves the wrong files. `iwe_create`, `iwe_update` and `iwe_normalize` have no dry-run in 0.26.1, despite the docs. `iwe_create` and `iwe_update` reject the `template`, `variables` and `frontmatter` parameters, reserved for a later release. In HTTP mode it speaks plain HTTP with no sign-in; its docs say to put a reverse proxy in front for TLS or authentication before exposing it beyond localhost. It has no AI model of its own and no cloud sync.
Suits developers and note-takers who want an agent's memory as plain Markdown they can read and correct, kept per project or in one notes folder, and who may also edit those notes in an editor with IWE's language server. It runs fully local and writes to your files, so keep the folder in git if you let an agent refactor it. If you want a memory store the agent manages without files you curate, or one shared across machines through a service, look at a hosted memory server instead.
iwe_findiwe_retrieveiwe_treeiwe_statsiwe_squashiwe_createiwe_updateiwe_deleteiwe_queryiwe_renameiwe_extractiwe_inlineiwe_normalizeiwe_attach