| FMRS | 56 / 100 · C | 84 / 100 · B | 79 / 100 · B |
| Reliability | 8 / 20 | 17 / 20 | 12 / 20 |
|---|
| Security and permissions | 11 / 20 | 16 / 20 | 18 / 20 |
|---|
| Maintenance | 13 / 20 | 16 / 20 | 15 / 20 |
|---|
| Documentation | 13 / 20 | 17 / 20 | 19 / 20 |
|---|
| Setup experience | 11 / 20 | 18 / 20 | 15 / 20 |
| Best for | - Individuals whose knowledge lives in plain markdown files and who value local-first, git-versioned notes.
- AI agent users who want their note graph as agent memory and want retrieval by structure rather than similarity guessing.
- Developers and writers who use both an editor LSP workflow and the command line over the same notes.
- Teams that need agent writes to declare their blast radius and to pass schema and graph-hygiene checks.
| - Local assistants that need to work inside explicitly approved directories
- Individuals and development teams that want path-based data boundaries
| - Serious Obsidian users who want AI agents reading and writing their vault
- Users wanting self-hosted, plugin-free operation with no external APIs
- Mobile/multi-device workflows accessing the vault remotely
- Security-conscious users (OAuth 2.1, atomic writes, container hardening)
|
| Not for | - People who want a cloud-hosted notes or memory service with no local file directory.
- Users expecting the server to include its own AI model or inference — IWE has no built-in AI and must be paired with an external agent.
- Scenarios that only need generic vector search and do not care about note hierarchy or link structure.
- Builders who need a stable library-level API — the liwe crate is published but not yet API-stable.
| - Highly sensitive environments that cannot allow model access to local file contents
- Shared remote file-service use cases
| - Users unwilling to run Docker or self-host a server
- Non-Obsidian note tools (Notion, Logseq, etc.)
- Scenarios requiring only a stdio local process without an HTTP server
- Remote multi-device sync without an Obsidian Sync subscription (the remote image requires one)
|
| Required permissions | - Read markdown note files under the working directory the server is started in.
- Write and modify note files in that directory, including creating, renaming, deleting, refactoring, and targeted block updates.
- Watch the notes directory for file changes so editor edits are reflected immediately.
- Communicate over stdio with MCP clients; running via npx requires network access to fetch the @iwe-org/mcp package.
| - Read access to every local directory listed in the configuration
- Filesystem write access when write or move tools are enabled
| - Read/write access to the Obsidian vault folder (bind mount /vault, rw)
- Persistent /data volume (search index, OAuth token DB, logs)
- MCP_AUTH_TOKEN as Bearer token (also the JWT signing key)
- Obsidian Sync token for headless sync in remote mode
- Local download of embedding/reranker models (~45MB total), no external API calls
|
| Risks and side effects | - The agent holds write access to the notes directory; MCP writes must declare expect guards and validate before writing, but permitted changes still land on disk.
- Pointing the MCP server at the wrong working directory lets the agent read and write markdown files in an unintended folder.
- Using npx fetches an npm package from the network on first run, adding a dependency on the network and the upstream package.
- Validation covers schemas, frontmatter, and graph-hygiene warnings, but dangling links, orphan pages, and near-duplicates are surfaced as warnings and still need human judgement.
- The liwe crate in the repository is published but not yet API-stable, so projects building on it should pin versions.
| - Sensitive files inside an allowed directory may enter model context
- Write and move tools change real files; keep scopes narrow and maintain backups
| - The server can read and write personal notes — guard MCP_AUTH_TOKEN carefully; leaking it exposes the whole vault
- Writes to real note files; despite atomic writes and protected paths, misconfiguration can alter data
- OAuth token DB lives on the /data volume; container compromise could expose valid sessions
- Remote deployments expose a public port — set PUBLIC_URL and reverse proxy correctly
- The remote image bundles proprietary obsidian-headless (not MIT-licensed); requires an active Obsidian Sync subscription
|
| Supported clients | Claude Code, Claude Desktop, Cursor, Windsurf | Claude Desktop, Cursor, Cline, Windsurf | Claude Code, Claude Desktop, claude.ai, Cursor, OpenCode, MCP Inspector |
| Tools | 5 | 6 | 30 |