Openzim
БесплатноНе проверенMCP server for reading and searching ZIM archives, optimized for single-user deployments with a persistent Wikipedia archive.
Описание
MCP server for reading and searching ZIM archives, optimized for single-user deployments with a persistent Wikipedia archive.
README
openzim-mcp is an MCP server for reading and searching ZIM archives.
This fork keeps the same package name but is intentionally opinionated for a single-user deployment:
- bare-metal, not Docker-first
systemd-managed HTTP service- simple mode as the default operating model
- one persistent Wikipedia archive at a known path
- reduced prompt surface:
/researchonly
Current fork version: 2.0.1
Maintainer: sibyl
What This Fork Changes
Compared with upstream, this fork is optimized for a narrow and stable setup.
- simple mode still exposes
zim_query - simple mode exposes only the
/researchMCP prompt summarizeandexploreprompts are not registered- when a client mistakenly passes an entry path into
zim_file_path, simple mode treats that as a slot error and falls back to the single loaded archive
That last point matters for small models and weak MCP clients. A payload like this:
{
"compact": true,
"query": "summary of A/Marcellina_(gnostic)",
"zim_file_path": "A/Marcellina_(gnostic)"
}
now resolves against the real archive instead of treating
A/Marcellina_(gnostic) as a filesystem path.
Intended Deployment
This fork is written around a single persistent archive:
/srv/zim/wikipedia_en_all_maxi_2022-05.zim
and a local HTTP service bound to loopback, typically behind a reverse proxy.
Example service command:
uv run openzim-mcp --mode simple --transport http --host 127.0.0.1 --port 3338 /srv/zim
Features Kept In This Fork
zim_querynatural-language interface- advanced mode codepath and tooling
- HTTP transport
- search, article retrieval, structure, links, title lookup
- compact simple-mode rendering
- single registered MCP prompt:
/research
Features Intentionally De-Emphasized
- Docker-first deployment guidance
- broad multi-client prompt workflows
- prompt flows that require the caller to supply
zim_file_path
The code still contains far more capability than this README emphasizes. The difference is intentional: this document is for operating this fork, not for advertising every upstream feature.
Installation
Requirements:
- Python
3.12+ uv- a readable directory containing your
.zimfiles
Clone the repo:
git clone <your-fork-url>
cd openzim-mcp
Install dependencies:
uv sync
Run locally:
uv run openzim-mcp --mode simple /srv/zim
Run over HTTP:
uv run openzim-mcp --mode simple --transport http --host 127.0.0.1 --port 3338 /srv/zim
Bare-Metal systemd Deployment
This fork is expected to run directly on a host, not in a container.
Example unit:
[Unit]
Description=OpenZIM MCP Server
After=network-online.target
Wants=network-online.target
[Service]
User=openzim-mcp
Group=openzim-mcp
WorkingDirectory=/opt/openzim-mcp/app
EnvironmentFile=/etc/openzim-mcp/openzim-mcp.env
ExecStart=/var/lib/openzim-mcp/.local/bin/uv run openzim-mcp --mode simple --transport http --host 127.0.0.1 --port 3338 /srv/zim
Restart=always
RestartSec=5
NoNewPrivileges=true
PrivateTmp=true
ProtectSystem=strict
ProtectHome=true
ReadOnlyPaths=/srv/zim /opt/openzim-mcp
ReadWritePaths=/var/lib/openzim-mcp
RestrictSUIDSGID=true
LockPersonality=true
[Install]
WantedBy=multi-user.target
Enable it:
sudo systemctl daemon-reload
sudo systemctl enable --now openzim-mcp
sudo systemctl status openzim-mcp
Updating The Deployment
For this setup, do not copy local virtual environments into the server tree.
Deploy source only:
- copy or pull the repo into
/opt/openzim-mcp/app - keep
.venvoff the server copy - rebuild the environment on the target host with
uv sync
Typical update flow:
sudo systemctl stop openzim-mcp
cd /opt/openzim-mcp/app
git pull
sudo -u openzim-mcp /var/lib/openzim-mcp/.local/bin/uv sync
sudo systemctl start openzim-mcp
If you are deploying by copying files rather than pulling on-host, replace the whole app tree rather than pasting selected files over an existing checkout.
MCP Surface In Simple Mode
Simple mode in this fork is intentionally small.
Tools:
zim_query
Prompts:
/research/article/compare/timeline/map
That is the interface you should expect clients to see.
All prompts are workflow macros over zim_query; they do not reference the
advanced-mode tools. They assume a single offline Wikipedia archive and tell
clients to omit zim_file_path so the server can auto-select the loaded
archive.
Example Queries
These are the kinds of simple-mode requests this fork is tuned for:
tell me about Marcellinasummary of A/Marcellina_(gnostic)show structure of Photosynthesislinks in Ada Lovelacefind article titled Hypatiasearch for gnosticism
Versioning
This fork now uses a normal release version:
2.0.1
That replaces the upstream alpha train version that was present in this tree.
Development Notes
Useful commands:
uv run pytest tests/test_server.py tests/test_simple_tools.py tests/test_prompts.py -q
uv run pytest -q
The fork-specific behavior currently pinned by tests includes:
- simple mode prompt registration
- entry-like
zim_file_pathfallback in single-archive mode - reduced prompt surface
- Wikipedia-oriented simple-mode prompts over
zim_query
License
This repository remains under the existing project license unless you change it separately.
Установка Openzim
У этого сервера нет опубликованного пакета — он собирается из исходников. Открой репозиторий и следуй инструкции в README.
▸ github.com/flammafex/mcp-openzimFAQ
Openzim MCP бесплатный?
Да, Openzim MCP бесплатный — установка в пару кликов через Unyly без оплаты.
Нужен ли API-ключ для Openzim?
Нет, Openzim работает без API-ключей и переменных окружения.
Openzim — hosted или self-hosted?
Self-hosted: сервер запускается локально на твоей машине командой из раздела установки.
Как установить Openzim в Claude Desktop, Claude Code или Cursor?
Открой Openzim на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.
Похожие MCP
GitHub
PRs, issues, code search, CI status
автор: GitHubFilesystem
Secure file operations with configurable access controls.
Memory
Knowledge graph-based persistent memory system.
Template MCP Server
A CLI tool to create a new Model Context Protocol server project with TypeScript support, dual transport options, and an extensible structure
автор: mcpdotdirectCompare Openzim with
Не уверен что выбрать?
Найди свой стек за 60 секунд
Автор?
Embed-бейдж для README
Похожее
Все в категории development
