IWE

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

Connect your client

Local (npm)

Add in one click

Opens the app, which asks before it adds the server.

Or add it by command or config

Claude CodeTerminal
claude mcp add iwe -- npx -y @iwe-org/mcp
Claude Desktopclaude_desktop_config.json
{
  "mcpServers": {
    "iwe": {
      "command": "npx",
      "args": [
        "-y",
        "@iwe-org/mcp"
      ]
    }
  }
}
Cursor~/.cursor/mcp.json
{
  "mcpServers": {
    "iwe": {
      "command": "npx",
      "args": [
        "-y",
        "@iwe-org/mcp"
      ]
    }
  }
}
VS Code.vscode/mcp.json
{
  "servers": {
    "iwe": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@iwe-org/mcp"
      ]
    }
  }
}
Codex~/.codex/config.toml
[mcp_servers.iwe]
command = "npx"
args = ["-y", "@iwe-org/mcp"]
Gemini CLITerminal
gemini mcp add --scope user iwe npx -- -y @iwe-org/mcp
Local (from source)

Add in one click

Opens the app, which asks before it adds the server.

Or add it by command or config

FirstTerminal
cargo install iwe iwes iwec
cd <NOTES_DIR> && iwe init
Claude CodeTerminal
claude mcp add iwe -- iwec
Claude Desktopclaude_desktop_config.json
{
  "mcpServers": {
    "iwe": {
      "command": "iwec",
      "args": []
    }
  }
}
Cursor~/.cursor/mcp.json
{
  "mcpServers": {
    "iwe": {
      "command": "iwec",
      "args": []
    }
  }
}
VS Code.vscode/mcp.json
{
  "servers": {
    "iwe": {
      "type": "stdio",
      "command": "iwec",
      "args": []
    }
  }
}
Codex~/.codex/config.toml
[mcp_servers.iwe]
command = "iwec"
args = []
Gemini CLITerminal
gemini mcp add --scope user iwe iwec

Settings 1

IWE_DEBUG Optional: When set to any value, logs at debug level instead of info.

What it does

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`.

What it needs

RuntimeNode.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.

Limits

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.

Who it suits

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.

Tools 14

iwe_find
Searches notes by fuzzy title/key match or BM25 full text, with link and hierarchy filters
iwe_retrieve
Returns notes plus linked or including notes up to chosen depths, within token and count caps
iwe_tree
Shows the hierarchy of notes from a root or selection
iwe_stats
Reports statistics for the notes, broken links, orphans and near-duplicate pages
iwe_squash
Expands block references into one flat document
iwe_create
Writes a new note at a key from the full Markdown you pass
iwe_update
Replaces the whole content of an existing note
iwe_delete
Deletes a note and removes references to it
iwe_query
Runs a query-language find, count, update or delete; edits require expect guards
iwe_rename
Changes a note's key and rewrites every link to it
iwe_extract
Moves a section into a new note and leaves a block reference
iwe_inline
Replaces a block reference with the referenced note's content
iwe_normalize
Re-formats and rewrites every note for consistent Markdown
iwe_attach
Adds a note as a reference in targets set by configured attach actions

Similar servers