Openzim MCP logo

Openzim MCP

by cameronrye

Access and search offline ZIM knowledge archives through MCP tools, with simple and advanced modes for AI research workflows.

Install Openzim MCP

Pick your client, then add it in one click or paste the config.

STDIOPython
~/Library/Application Support/Claude/claude_desktop_config.json
claude_desktop_config.json
{
  "mcpServers": {
    "cameronrye-openzim-mcp": {
      "command": "uvx",
      "args": [
        "openzim-mcp"
      ]
    }
  }
}

Settings → Developer → Edit Config, merge this into mcpServers, then fully quit and reopen Claude Desktop.

We couldn’t confirm it starts correctly

The install command installed and started the server, which then stopped for configuration (such as an API key) that our sandbox does not have — expected for servers that connect to your account.

uvx openzim-mcp

No response to initialize.

This is an experimental automated check and can have false negatives — missing environment variables, a slow cold install, etc. It doesn’t necessarily mean something’s wrong. Last checked .

Overview

cameronrye/openzim-mcp MCP server exposes ZIM archives to AI models through structured MCP tools for searching, reading, browsing, and inspecting offline knowledge bases. It supports a one-tool Simple mode or an eight-tool Advanced mode, with archive-type presets, caching, pagination, and link discovery for sources such as Wikipedia, Wiktionary, and Stack Exchange. Run it over standard input/output or configure streamable HTTP with bearer authentication, CORS, and health endpoints. Reach for it when an agent needs local access to large compressed knowledge archives without depending on a live web search service.

Use cases

  • Search offline Wikipedia archives for research questions
  • Retrieve sections from local educational knowledge bases
  • Analyze links and related entries across ZIM content
  • Build knowledge chatbots around local Kiwix archives

Key features

  • Simple natural-language query mode
  • Eight-tool advanced MCP surface
  • Full-text and multi-archive search
  • Archive-aware retrieval presets
  • Per-entry MCP resources and change notifications
  • Stdio and streamable HTTP transports

Security & health

What it can reach and how reliably it runs — from our own checks, not the maintainer’s claims.

ActiveLast checked

Recent health check succeeded.

15/15 checks healthy over the last 95d

Supply-chain signal

No high-severity advisories surfaced by our automated scan.

Critical 0High 0Medium 0Low 0

Scanned 9d ago via OSV.dev · openzim-mcp (PyPI)

Adoption & maintenance

Factual signals from GitHub, npm, and our automated checks — not a rating.

GitHub stars151Stargazers on the source repository.
Last commit4d agoMost recent push to the default branch.
Install checkRunsOur sandbox started it; it then asked for an API key or config.
Directory activity6 viewsConfig copies, upvotes, and views on AllMCPs.

How Openzim MCP works

What cameronrye/openzim-mcp does

cameronrye/openzim-mcp turns local ZIM files into queryable MCP knowledge sources. ZIM is used for offline collections including Wikipedia, Wiktionary, Stack Exchange, educational material, and other content distributed through the Kiwix Library. Agents can search archive contents, retrieve entries, navigate sections, inspect metadata, browse namespaces, and follow relationships between entries.

The server offers two operating modes. Simple mode exposes zim_query, a natural-language entry point that selects the appropriate operation for a request. Advanced mode exposes eight focused tools: zim_query, zim_search, zim_get, zim_get_section, zim_browse, zim_metadata, zim_links, and zim_health. The smaller tool surface is intended to reduce schema overhead for clients and smaller models.

How it works

Start the process with a directory containing one or more .zim files. The server reads those archives locally and makes their contents available through MCP. Retrieval supports archive-aware behavior: the server detects archive types such as Wikipedia and Stack Exchange and applies corresponding retrieval and summarization presets. Operators can replace bundled preset values with a TOML file.

Search and navigation include namespace-aware access, full-text search, suggestions, sections, tables of contents, related articles, and inbound-link discovery. Cached and paginated operations help manage large archives. Native libzim introspection is used to inspect and validate archives, while input validation and path-traversal protection constrain file access.

In addition to tools, entries can be exposed as MCP resources using URIs such as zim://{name}/entry/{path}. Resource subscriptions can notify connected clients when an archive is added, removed, or replaced. Standard input/output is the default transport; streamable HTTP is available for a long-running service.

Setup and configuration

Install with the recommended isolated CLI approach:

bash
uv tool install openzim-mcp

A regular pip installation is also supported:

Terminal
pip install openzim-mcp

Run Simple mode by passing the archive directory as the positional argument:

bash
openzim-mcp ~/zim-files

Use Advanced mode when the client should see each specialized tool:

bash
openzim-mcp --mode advanced ~/zim-files

The directory must contain ZIM archives. Docker is available through the ghcr.io/cameronrye/openzim-mcp image; mount the host archive directory at /data and run the container interactively for stdio MCP communication. HTTP deployment can be enabled with OPENZIM_MCP_TRANSPORT=http, alongside host, port, and bearer-token configuration such as OPENZIM_MCP_HOST=0.0.0.0 and OPENZIM_MCP_AUTH_TOKEN. The preset override file is selected with OPENZIM_MCP_PRESETS_OVERRIDE_PATH.

Tools and capabilities

  • zim_query: Accepts a natural-language request in Simple mode and dispatches it to the appropriate operation.
  • zim_search: Searches archive contents, including full-text queries and suggestions.
  • zim_get: Retrieves an archive entry.
  • zim_get_section: Retrieves a specific section or structured portion of an entry.
  • zim_browse: Navigates archive namespaces and entries.
  • zim_metadata: Inspects archive metadata.
  • zim_links: Extracts relationships and discovers inbound links.
  • zim_health: Provides a health check for the running service.

The server also supports per-entry resources with native MIME types, multi-archive search, structure-aware retrieval, pagination, caching, and archive validation.

Limitations and notes

The server requires local ZIM files; it has no useful knowledge source until an archive is placed in the configured directory. Archive sizes can range from small test extracts to Wikipedia, Wiktionary, or Stack Exchange collections measuring hundreds of megabytes or tens of gigabytes. HTTP mode should be configured with its bearer token when exposed as a service. The default container transport is stdio, while HTTP must be explicitly enabled.

Reviews

No reviews yet — be the first to share how it worked for you.

Frequently Asked Questions about Openzim MCP

cameronrye/openzim-mcp is an MCP server that connects AI clients to local ZIM knowledge archives, including Wikipedia, Wiktionary, and Stack Exchange collections. Its main tools search, retrieve, browse, inspect metadata, extract links, fetch sections, and check service health, with Simple and Advanced operating modes.

Install it with `uv tool install openzim-mcp` or `pip install openzim-mcp`. Docker is also available from `ghcr.io/cameronrye/openzim-mcp`. After installation, provide a directory containing ZIM files, for example `openzim-mcp ~/zim-files`.

Add an MCP server entry that runs `uvx` with `openzim-mcp` and the ZIM directory, such as `"args": ["openzim-mcp", "~/zim-files"]`. The server uses stdio by default, and the same transport pattern works with MCP clients that support stdio.

Set `OPENZIM_MCP_TRANSPORT=http` and configure the host, port, and bearer token for the service. Docker can run the HTTP deployment with `OPENZIM_MCP_HOST=0.0.0.0`, `OPENZIM_MCP_AUTH_TOKEN`, and port publishing such as `-p 8000:8000`.

Simple mode exposes only `zim_query`, which dispatches natural-language requests to the appropriate operation. Advanced mode exposes eight specialized tools, including search, retrieval, section access, browsing, metadata, links, and health checks.

Related MCP servers

Add a badge to your READMEShow it’s listed — live SVG, Markdown or HTML.

AllMCPs Directory Badge

Full Badge Customizer

Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.

Badge Style:
Live Dynamic SVG PreviewOpenzim MCP AllMCPs Directory Badge
Markdown (GitHub README)
[![AllMCPs](https://allmcps.com/api/badge/cameronrye-openzim-mcp?style=directory)](https://allmcps.com/mcp/cameronrye-openzim-mcp)
HTML Embed
<a href="https://allmcps.com/mcp/cameronrye-openzim-mcp"><img src="https://allmcps.com/api/badge/cameronrye-openzim-mcp?style=directory" alt="Openzim MCP on AllMCPs" /></a>