PluginBench
MCP Server
Active
Apache-2.0

IWE MCP Server

io.github.iwe-org/iwe

Markdown knowledge base as queryable agent memory—structured retrieval without cloud or database.

What is the IWE MCP server?

IWE is a memory system that turns a directory of markdown files into a knowledge graph accessible to AI agents. It provides structured retrieval through an MCP server and CLI, letting agents query notes by hierarchy and relationships rather than similarity guessing, while keeping all data local and version-controlled in git.

IWE organizes your markdown notes as a connected graph with inclusion links (nesting) and cross-references, making them queryable by structure. AI agents can retrieve notes with full parent context in a single call, search with fuzzy and full-text ranking, and make guarded edits validated against schemas. It works alongside Claude, Cursor, and other tools via MCP, and includes IDE features (search, refactor, rename, autocomplete) for VS Code, Neovim, Zed, and Helix.

How to install IWE

Copy-paste configuration for popular MCP clients.

transport: stdio
Config generated by PluginBench — verify against the source before use.
~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "iwe": {
      "command": "npx",
      "args": [
        "-y",
        "@iwe-org/mcp"
      ]
    }
  }
}

Tools & capabilities

Tools this server exposes to the agent.

  • find — Search notes with fuzzy and full-text ranking, plus filters over frontmatter and graph edges.
  • retrieve — Get a document with its linked context (parents, children, cross-references) in one call.
  • tree — Show the hierarchy from any starting point.
  • update — Guarded edits with scope validation: frontmatter changes and targeted block operations.
  • schema — Infer the store's schemas or validate documents against them; supports Open Knowledge Format (OKF).
  • new — Create new notes.
  • extract — Pull sections into new notes.
  • inline — Embed note content back into parent.
  • rename — Rename files with automatic link updates.
  • delete — Remove notes.
  • squash — Merge notes.
  • stats — Analyze the knowledge graph; flag near-duplicates and graph hygiene issues.
  • normalize — Standardize document format.
  • export — Export notes in various formats.

Use cases

  • Store and retrieve agent memory as structured markdown—decisions, corrections, and in-flight state—without re-reading a flat file each session.
  • Query your notes by structure: 'all drafts under this subtree', 'every accepted decision in Q1', 'notes mentioning this person'.
  • Give AI agents IDE-like navigation over your knowledge: parent context, children, cross-references, and link-safe refactoring.
  • Validate agent writes against document schemas and scope guards before they touch your files.
  • Organize notes with multiple parents (e.g., a 'Meditation' note under both 'Health' and 'Productivity') without duplication.

IWE MCP server FAQ

What is IWE?

IWE is a markdown-based knowledge graph system that lets you and AI agents query your notes by structure and relationships. You write plain markdown in a local directory, link notes together, and agents retrieve full context in a single call—no cloud, no database, no lock-in.

Is IWE free?

Yes, IWE is open source under the Apache License 2.0. The CLI, LSP server, and MCP server are all free to install and use.

How do I install IWE in Cursor or Claude?

Install the CLI (via Homebrew, npm, or Cargo), then add the MCP server to your config with `iwec` as the command and your notes directory as the working directory. For Claude Desktop or Cursor, point to the MCP server in your mcpServers config; you can also use `npx -y @iwe-org/mcp` to fetch it on demand.

Does IWE require authentication or cloud services?

No. IWE runs entirely locally against the notes directory it is started in. All data stays on your machine and can be version-controlled with git.

What editors does IWE support?

IWE includes LSP integration for VS Code, Neovim, Zed, and Helix, providing search, navigation, autocomplete, refactoring, and other IDE features.

Can agents make changes to my notes?

Yes, via the `update` command. All agent writes are validated: mutations declare their scope (how many documents and blocks they may touch), and changes are checked against document schemas before being written. Mismatches abort with offending blocks named.

README (reference)

Source of truth, from the repository.

IWE - Memory system for you and your AI agents

Turn your thinking into queryable context

Crates.io Downloads License Build Documentation Discussions Twitter Reddit

Knowledge Graph

IWE turns a directory of markdown files into a knowledge graph — a connected structure you browse from your editor and your AI queries from the command line. Same files, same links, two interfaces. No cloud, no database, no lock-in. Version everything with git.

IWE is for people who want database-style queries on their notes — "all drafts under this subtree", "every accepted decision in Q1" — without moving them into an actual database. Write in Markdown, structure with links, give AI agents the tools to navigate your knowledge. IWE itself has no built-in AI — it works alongside Claude, Codex, Gemini, and any tool that speaks the Model Context Protocol.

What You Get

  • Plain markdown, full ownership. Your notes are .md files in a local directory. Read them, edit them, git push them. Nothing proprietary.
  • A graph, not a folder tree. Link notes together and the same note can belong to multiple topics without copying the file. (How linking works)
  • IDE features for your editor. Real LSP integration with VS Code, Neovim, Zed, and Helix — search, refactor, rename, autocomplete.
  • Structured access for AI agents. CLI tools and an MCP server give agents parent context and structural navigation over the same notes you edit by hand — retrieval by structure, not similarity guessing.
  • Speaks OKF. An Open Knowledge Format bundle is markdown with YAML frontmatter — the format IWE already manages. iwe init --okf scaffolds a conformant bundle, iwe schema validate checks conformance mechanically, and iwe find --filter '{type: …}' queries OKF frontmatter directly.
  • Fast. Built in Rust, processes 20,000 files in under a second.

Instructions Aren't Memory

Agents ship with an instructions file — CLAUDE.md, AGENTS.md — and it's tempting to let memory accumulate there too. It doesn't hold. Instructions are rules; memory is what builds up: decisions, corrections, the state of everything in flight. Kept in one flat file, the agent appends, contradictions pile up side by side each looking authoritative, and every session re-reads the whole thing.

IWE stores memory as many small linked documents, so the agent asks instead of re-reading. Most recall is a structured question — what's still open, what did we decide about X, which notes mention this person — answered by a query and one retrieve call that expands the linked context. The rest of the graph stays out of the context window. And because it's markdown in git, the memory is inspectable: open what the agent believes, diff what changed, git-blame when.

How It Works

IWE treats your notes as a connected structure. You organize them with two types of links:

  • Nesting — a link on its own line means "this topic includes that subtopic." Your notes form a tree you can browse and refactor. IWE calls these inclusion links.
  • Cross-references — regular inline links connect notes across topics, creating a web of relationships.
  • Multiple parents — the same note can live under several places at once. A "Meditation" note can belong to both "Health" and "Productivity" without duplicating the file.
  • Context from parents — when you retrieve a note, IWE can include context from the notes above it in the hierarchy.

This structure makes retrieval powerful — whether you're browsing in your editor or an agent is querying via CLI, ask for a topic and get its full context in a single call.

Working with AI

IWE gives AI agents structured access to your notes through two interfaces: a CLI for scripting and shell-based workflows, and an MCP server for native connection with AI tools. Both expose the same operations — search, retrieve, create, refactor — so you can choose whichever fits your setup.

IWE pairs search with structure: built-in fuzzy and full-text search finds the entry point, and the graph turns a hit into usable context — parent context, children, cross-references, link-safe refactoring. It also composes cleanly with any external tooling you already use (ripgrep, full-text, vector): whatever finds the note, IWE supplies the context around it.

What the Engine Checks

Agent writes are checked, not trusted:

  • Declared scope. A mutation carries expect guards stating how many documents and blocks it may touch. The whole update validates before anything is written; a mismatch aborts with the offending blocks named. Over MCP the guards are mandatory — an edit that won't declare its blast radius is refused.
  • Schemas. Frontmatter and document structure are validated against per-type document schemas — required fields, enums, ISO dates, required sections. A schema-violating MCP write is rejected with the violation named; from the CLI, iwe schema validate runs the same checks on demand.
  • Graph hygiene. Mutations surface warnings for what they disturbed — dangling links, orphan pages — and iwe stats similarity flags near-duplicates.

Integration Server (MCP)

IWE includes a server (iwec) that lets AI tools like Claude Desktop, Cursor, and Windsurf work directly with your notes using the Model Context Protocol. The server watches your files for changes, so edits you make in your editor are reflected immediately.

Command-Line Tools

The CLI lets you (and AI agents) work with your notes from the terminal or in scripts.

Example: preparing context for an AI conversation

iwe find --fuzzy auth

iwe retrieve --key authentication --expand-includes 2

iwe tree --key oauth

Core commands:

CommandWhat it does
findSearch with fuzzy and full-text ranking, plus filters over frontmatter and graph edges
retrieveGet a document with its linked context in one call
treeShow the hierarchy from any starting point
updateGuarded edits: frontmatter changes and targeted block operations
schemaInfer the store's schemas, or validate documents against them

The full set — new, extract, inline, rename, delete, squash, stats, normalize, export and more — is in the CLI Reference.

More information: Working with AI · CLI Reference · MCP Server

Editor Integration

IWE gives your editor IDE-like features for markdown notes. It works with VS Code, Neovim, Zed, Helix, and any editor that supports the Language Server Protocol (LSP).

  • Search — find notes by title or content
  • Navigate — go to definition, find references (backlinks)
  • Preview — hover over links to see content
  • Auto-complete — link suggestions as you type
  • Inlay hints — show parent references and link counts
  • Extract — pull sections into new notes
  • Inline — embed note content back into parent
  • Rename — rename files with automatic link updates
  • Format — normalize documents, update link titles
  • Transform — pipe text through external commands
  • Templates — create notes from templates (daily notes, etc.)
  • Outline conversion — switch between headers and lists

More information: Editor Features

Quick Start

  1. Install the CLI and LSP server:

    Using Homebrew (macOS/Linux):

    brew tap iwe-org/iwe
    brew install iwe
    

    Or using npm (macOS/Linux/Windows):

    npm install -g @iwe-org/iwe
    

    Or using Cargo:

    cargo install iwe iwes iwec
    

    Or from conda-forge (community-maintained — thanks, salim-b):

    conda install -c conda-forge iwe
    
  2. Initialize your workspace:

    cd ~/notes
    iwe init
    
  3. Pick your path:

    Set up your editor — VS Code · Neovim · Helix · Zed

    Connect your AI agent — point it at the MCP server. iwec serves the directory it runs in, so set the working directory to your notes:

    {
      "mcpServers": {
        "iwe": {
          "command": "iwec",
          "cwd": "~/notes"
        }
      }
    }
    

    No install needed — npx fetches the server on demand:

    {
      "mcpServers": {
        "iwe": {
          "command": "npx",
          "args": ["-y", "@iwe-org/mcp"],
          "cwd": "~/notes"
        }
      }
    }
    

    Or hand the setup to the agent — paste this into Claude Code or any agent with shell access:

    Set up IWE for my notes: install it (brew tap iwe-org/iwe && brew install iwe,
    npm install -g @iwe-org/iwe, or cargo install iwe iwes iwec), run `iwe init`
    in my notes directory, then add the `iwec` MCP server with its working
    directory set to that folder.
    Docs: https://iwe.md/docs/agentic/
    

Documentation

Get Involved

IWE is open source and community-driven. Join the discussions, report issues, or contribute to the documentation.

Community: Twitter/X · Reddit · Discussions

Editor plugins: VS Code · Neovim · Zed

Workspace templates: marketing-workspace — campaign memory for a marketing agent · dev-workspace — project memory for a coding agent. Both ship as conformant OKF v0.2 bundles, validated in CI on every commit.

Agentic skills: iwe-org/skills — agentic AI skills for knowledge graph management. Contributors welcome.

Building on IWE: projects already embed IWE — as an agent-memory backend, as the graph layer of an LLM wiki engine, in research tooling. The practical integration surfaces today are the CLI and the MCP server; the liwe library is published but not yet API-stable, so pin your version if you build against it. A declared, stable integration surface is on the roadmap — if you're building on IWE, tell us what you depend on, so we know what not to break.

License

Apache License 2.0

Related MCP servers

Indexes codebase into a local knowledge graph with 40+ AI tools and codebase-guard.

2
Rust
View repository →

An MCP server that provides Bitcoin price data from Binance API

0
Python
View repository →
AVAVCS logo

AVCS

Active

AI-native version control where intent, operation, evidence and decision are first-class objects.

1
TypeScript
Apache-2.0
View repository →

Search and retrieve agent instruction files: system prompts, skills, workflows, and safety filters.

0
JavaScript
MIT
View repository →

Search, fetch docs, and ask questions about any open-source repo via codewiki.google

15
TypeScript
MIT
View repository →

Tolk smart contract compiler for TON — compile, check, and deploy from AI assistants

2
TypeScript
MIT
View repository →