What it takes off you is the bookkeeping that normally stops people restructuring: renaming a note, splitting a section out of one, or folding a reference back in all rewrite the links across the graph in the same operation. Reads are shaped for a model rather than a person — retrieval expands outward from what it found, under explicit caps on how many documents and tokens come back.
IWE's own MCP server over a directory of Markdown files. The files stay yours — plain .md, versioned with git — while the server reads them as a graph: documents addressed by key, connected by block references, with every structural operation repairing the links it affects.
- A document created from complete Markdown at an explicit key, written verbatim, with a skip-if-exists mode that makes retries safe
- A full-content update of an existing document, and a delete that cleans up every reference and inline link pointing at it
- A rename that rewrites every reference and link across the graph to the new key
- A section extracted into its own document, with a block reference left in its place — and the reverse, a reference replaced by the referenced content, optionally as a quote
- Search by fuzzy text, by root, by what a document references or is referenced by, and by a structural selector with AND, OR, NOT and a depth limit
- Retrieval that expands the graph around what it finds — includes, included-by, references, referenced-by — with caps on seeds, documents and tokens
- The tree of how documents connect through block references, restricted to a selected set
- A query document that finds, counts, updates or deletes, with operators for replace, insert before or after, append and delete, and a required expectation on every mutation
- A whole document tree flattened into one Markdown file for export
- Graph statistics: document counts, reference patterns, broken links and the most connected documents
- A normalize pass that re-parses and rewrites every document to one consistent format
- Attachment of a document as a block reference into targets derived from configured actions, skipping targets that already hold it
Npx on your PATH, and a notes directory that has had `iwe init` run in it. The server reads the directory it is started in, so set the MCP entry's working directory to that folder — otherwise it has no graph to work on. Documents are addressed by an explicit key rather than by title, the attach call resolves its targets from configured attach actions, and mutating queries must carry an expectation, so a query that matched something unintended fails instead of applying.
One command — npx -y @iwe-org/mcp
