llmwiki

Builds a cited, interlinked wiki from your documents and serves evidence from it over local MCP

By Atomic Strata TypeScript Local · stdio Knowledge and memoryAI and ML

79 popularity score ★ 2.2k ↓ 4.2k/wk

Connect your client

Local (npm)

Add in one click

Opens the app, which asks before it adds the server. Then replace each <NAME> in its settings with your value.

Or add it by command or config

It needs ANTHROPIC_API_KEY. Replace each <NAME> with your value.

Claude CodeTerminal
claude mcp add llmwiki -e ANTHROPIC_API_KEY=<ANTHROPIC_API_KEY> -- npx -y llm-wiki-compiler serve --root '<ABSOLUTE_PATH_TO_WIKI_PROJECT>'
Claude Desktopclaude_desktop_config.json
{
  "mcpServers": {
    "llmwiki": {
      "command": "npx",
      "args": [
        "-y",
        "llm-wiki-compiler",
        "serve",
        "--root",
        "<ABSOLUTE_PATH_TO_WIKI_PROJECT>"
      ],
      "env": {
        "ANTHROPIC_API_KEY": "<ANTHROPIC_API_KEY>"
      }
    }
  }
}
Cursor~/.cursor/mcp.json
{
  "mcpServers": {
    "llmwiki": {
      "command": "npx",
      "args": [
        "-y",
        "llm-wiki-compiler",
        "serve",
        "--root",
        "<ABSOLUTE_PATH_TO_WIKI_PROJECT>"
      ],
      "env": {
        "ANTHROPIC_API_KEY": "<ANTHROPIC_API_KEY>"
      }
    }
  }
}
VS Code.vscode/mcp.json
{
  "servers": {
    "llmwiki": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "llm-wiki-compiler",
        "serve",
        "--root",
        "<ABSOLUTE_PATH_TO_WIKI_PROJECT>"
      ],
      "env": {
        "ANTHROPIC_API_KEY": "<ANTHROPIC_API_KEY>"
      }
    }
  }
}
Codex~/.codex/config.toml
[mcp_servers.llmwiki]
command = "npx"
args = ["-y", "llm-wiki-compiler", "serve", "--root", "<ABSOLUTE_PATH_TO_WIKI_PROJECT>"]

[mcp_servers.llmwiki.env]
ANTHROPIC_API_KEY = "<ANTHROPIC_API_KEY>"
Gemini CLITerminal
gemini mcp add --scope user -e ANTHROPIC_API_KEY=<ANTHROPIC_API_KEY> llmwiki npx -- -y llm-wiki-compiler serve --root '<ABSOLUTE_PATH_TO_WIKI_PROJECT>'

Settings 12

Set together: anthropic
ANTHROPIC_API_KEY secret Required: Key for the default Anthropic provider; ANTHROPIC_AUTH_TOKEN or ~/.claude/settings.json can supply it instead, or pick another provider with LLMWIKI_PROVIDER. For compile_wiki, query_wiki, search_pages, full eval.
LLMWIKI_PROVIDER Optional: Model provider: anthropic, openai, converse, ollama, copilot, atlascloud, orcarouter, minimax, claude-agent, codex-agent or offline. Default anthropic.
LLMWIKI_MODEL Optional: Model to use; each provider has its own default, and the converse provider requires it.
GITHUB_TOKEN secret Optional: Token when LLMWIKI_PROVIDER=copilot, e.g. from gh auth token.
LLMWIKI_EMBEDDING_PROVIDER Optional: Separate provider for embeddings, needed by converse and codex-agent when embeddings are on.
LLMWIKI_COMPILE_CONCURRENCY Optional: Parallel model calls during compile, clamped at 50. Default 5. For compile_wiki.
LLMWIKI_VIEW_PORT Optional: Port for the separate llmwiki view command when --port is not given; the MCP server does not use it. For llmwiki view.
Set together: openai
OPENAI_API_KEY secret Optional: Key when LLMWIKI_PROVIDER=openai.
OPENAI_BASE_URL Optional: Endpoint of an OpenAI-compatible server.
Set together: converse
LLMWIKI_CONVERSE_BASE_URL Optional: HTTP(S) address of the Converse gateway when LLMWIKI_PROVIDER=converse; no credentials, query or fragment in it.
LLMWIKI_CONVERSE_API_KEY secret Optional: Bearer key for the Converse gateway when LLMWIKI_PROVIDER=converse.
Set together: ollama
OLLAMA_HOST Optional: Address of the Ollama server when LLMWIKI_PROVIDER=ollama. Default http://localhost:11434/v1.

What it does

llmwiki is the MCP mode of the llm-wiki-compiler command-line tool. You point it at a project folder; it copies documents or web pages into a sources/ folder, then uses a language model to turn them into typed wiki pages that link to each other and cite the passages they came from. An assistant connected over stdio can add sources, trigger a compile, ask questions, and pull back pages or a bundled evidence pack.

The tools split into two kinds. Reading the wiki, checking its health, linting and building a context pack work with no model credentials; get_context_pack ranks pages lexically when no embeddings or key are available and says so in a warning. Compiling, answering questions and search_pages call the configured model provider each time and fail without a valid credential. Writes from the assistant are fenced: OKF imports and workflow actions only stage changes, and a human approves them later with llmwiki review on the command line.

In version 1.5.0 the server registers 16 tools (ten in src/mcp/tools.ts, two OKF tools and four workflow tools) and seven read-only resources such as llmwiki://index and llmwiki://state. Version 1.5.0 adds a Converse gateway provider (LLMWIKI_PROVIDER=converse) and keeps progress output off the stdio stream. When ANTHROPIC_API_KEY is unset, the default Anthropic provider falls back to a key, token or base URL in the env block of ~/.claude/settings.json (src/utils/claude-settings.ts), and compile runs 5 model calls at once by default, clamped at 50 (src/utils/constants.ts).

What it needs

RuntimeNode.js 24+
Runs onmacOS, Windows, Linux
Anthropic APIPaid planDefault provider for compile, query and search_pages; OpenAI-compatible, Ollama, Copilot, Atlas Cloud, OrcaRouter or a Converse gateway can stand in
Also
  • A wiki project folder passed with --root (an empty one is fine)

A model provider is needed only for compile_wiki, query_wiki, search_pages and the full eval suite: Anthropic by default via ANTHROPIC_API_KEY, or another set with LLMWIKI_PROVIDER, including a local Claude Code or Codex CLI login (claude-agent, codex-agent) and copilot with GITHUB_TOKEN=$(gh auth token). The converse provider needs LLMWIKI_MODEL, LLMWIKI_CONVERSE_BASE_URL and LLMWIKI_CONVERSE_API_KEY plus two optional peer packages that npx does not bring: install them with npm install -g llm-wiki-compiler @aws-sdk/client-bedrock-runtime @smithy/node-http-handler and launch llmwiki serve --root <ABSOLUTE_PATH_TO_WIKI_PROJECT> instead.

Limits

  • Not covered Runs over stdio only, against the one project folder given by --root
  • Not covered Workflow actions over MCP are capped at staged writes and cannot satisfy human approval gates; import_okf only stages
  • Not covered verify_artifact returns manifest metadata and a health verdict, never the artifact body; no artifact write or list tool over MCP
  • Limit ingest_source is trusted-input only: it fetches any http(s) URL and reads local .md/.txt files you name, truncating content past its size limit
  • Limit query_wiki without save returns advisory citations that have not passed publication checks
  • Cost run_eval runs the fast suite by default; the full suite samples 1 to 100 citations and calls the provider
  • Limit The codex-agent and converse providers serve no embeddings; a separate embedding provider (LLMWIKI_EMBEDDING_PROVIDER) is needed when embeddings are on
  • Cost Hosted providers bill your own account for every compile, query and search_pages call

Runs over stdio only, against the one project folder given by --root. Workflow actions over MCP are capped at staged writes and cannot satisfy human approval gates; import_okf is staging-only, and verify_artifact never returns an artifact body. The makers call ingest_source a trusted-input-only tool because it fetches URLs and reads local files on your machine. query_wiki has no review option; without save it returns advisory citations that have not passed publication checks. run_eval runs the fast suite by default; the full suite samples 1 to 100 citations and needs a provider. The Codex provider needs a separate embedding provider set.

Who it suits

Suits someone who keeps a body of research, project notes or documentation and wants an assistant to reason over a compiled, cited version of it instead of re-reading raw files, with a human approving what gets published. The code runs locally, and reading an existing wiki works offline without keys. Less suited to one-off file reads or live web search, which its own guide says need no wiki, or to anyone who cannot run Node 24 or does not want to send document text to a model provider for compiling (Ollama or a local OpenAI-compatible runtime avoids a hosted service).

Tools 16

9 only read, 7 change things. A ? marks an optional parameter.

ingest_source changes
Fetches a URL or copies a local .md/.txt file into the project's sources foldersource: string
compile_wiki changes
Runs the incremental compile that turns sources into wiki pages; needs a provider
query_wiki changes
Answers a question from the wiki with citations, optionally saving the answer as a page; needs a providerquestion: stringsave?: booleandebug?: boolean
search_pages
Picks pages relevant to a question and returns their full text; needs a providerquestion: string
read_page
Returns one concept or saved-query page by its slugslug: string
lint_wiki
Checks links, citations and page quality and returns diagnostics
wiki_status
Reports page and source counts, stale or orphaned pages and pending review items
get_context_pack
Assembles a token-budgeted bundle of pages, chunks and citations for a taskprompt: stringbudget?: numberdepth?: numbertopPages?: numbertopChunks?: numberomitRoot?: booleanincludeSources?: boolean
run_eval changes
Scores wiki quality with a fast check or a model-judged full suitesuite?: enumsampleSize?: integerrecord?: boolean
export_okf changes
Writes the wiki as an Open Knowledge Format bundle inside the projectout?: string
import_okf changes
Previews or stages an OKF bundle from the project as review candidatesdir: stringdryRun?: boolean
verify_artifact
Checks a hash-pinned artifact reference and returns its metadataartifactType: stringslug: stringsha256: string
list_workflow_actions
Lists the workflow actions the project declares
describe_workflow_action
Shows one workflow action and the inputs it expectsactionId: string
run_workflow_action changes
Runs a declared workflow action, limited to staged writesactionId: stringinputs?: object
workflow_run_status
Shows the state of one workflow run, or all runsrunId?: string

Resources 7

llmwiki://index
The wiki's generated table of contents
llmwiki://sources
Ingested source files with their metadata
llmwiki://state
Per-source hashes, concepts and last compile times
llmwiki://concept/{slug}
One concept page
llmwiki://query/{slug}
One saved query page
llmwiki://eval/report
Latest eval report
llmwiki://eval/history
Past eval reports as a trend table

Similar servers