# cameronrye/openzim-mcp [Health: Active]

**Category:** 🧠 Knowledge & Memory  
**Repository:** https://github.com/cameronrye/openzim-mcp  
**GitHub Stars:** 151  
**Views:** 6  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/cameronrye-openzim-mcp

## Description
Modern, secure MCP server for accessing ZIM format knowledge bases offline. Enables AI models to search and navigate Wikipedia, educational content, and other compressed knowledge archives with smart retrieval, caching, and comprehensive API.

## Claude Desktop Quick Installation
Install path detected from listing signals. Uses `uvx` (confidence: high):

```json
"mcpServers": {
  "openzim-mcp": {
    "command": "uvx",
    "args": ["openzim-mcp"]
  }
}
```

## Documentation

## 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:

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

_Full upstream README: https://allmcps.com/mcp/cameronrye-openzim-mcp/readme_

