MCP (Model Context Protocol) server for reading .zim archives and exposing
search/content retrieval tools over stdio.
- ZIM file discovery from a configured directory
- Metadata and article listing tools
- Title/url search
- Article content retrieval
- TF-IDF based RAG retrieval over extracted article chunks
server.py- MCP stdio server and tool/resource handlerszim_reader.py- binary ZIM parser and article extractionrag_engine.py- chunking + TF-IDF retrieval enginerequirements.txt- Python dependencies
- Python 3.10+
- A directory containing one or more
.zimfiles
Install dependencies:
pip install -r requirements.txtFrom this folder (MCPs/ZIM_MCP):
python server.pyEnvironment variable:
ZIM_DIRECTORY(optional): directory containing.zimfiles- default: current working directory
Example:
set ZIM_DIRECTORY=E:\ZIMs
python server.pyUse script execution (not -m MCPs.ZIM_MCP), because this package does not
define __main__.py.
{
"mcpServers": {
"ZIM-MCP": {
"type": "stdio",
"command": "C:\\Program Files\\Python310\\python.exe",
"args": [
"e:\\ZIM-MCP\\MCPs\\ZIM_MCP\\server.py"
],
"env": {
"ZIM_DIRECTORY": "e:\\ZIMs"
},
"timeout": 60,
"disabled": false,
"autoApprove": []
}
}
}list_zim_files- List
.zimfiles discovered inZIM_DIRECTORY.
- List
zim_info- Return metadata and namespace counts for a specific ZIM file.
zim_search- Search by title/url substring.
zim_get_article- Return article title/url/content.
zim_rag_retrieve- Return top semantic matches from TF-IDF retrieval.
zim_list_articles- Paginated article list with namespace filter.
zim://{file}/infozim://{file}/article/{url}zim://{file}/search/{query}zim://{file}/rag/{query}
- RAG indexing now gracefully handles small/stopword-heavy corpora and returns empty results instead of crashing.
- ZIM cluster parsing supports common compression formats, including Zstandard
(via Python
zstandardpackage).
- Server starts but no files found
- Verify
ZIM_DIRECTORYpoints to the folder that contains.zimfiles.
- Verify
No module named ...errors- Reinstall deps:
pip install -r requirements.txt
- Reinstall deps:
- MCP fails to launch from client
- Use the full script path in
args(...\\server.py), not-m MCPs.ZIM_MCP.
- Use the full script path in
Garland Glessner (gglessner@gmail.com)
GNU General Public License v3 (GPLv3)