Skip to main content
Glama
gglessner

ZIM RAG MCP Server

by gglessner

ZIM RAG MCP Server

MCP (Model Context Protocol) server for reading .zim archives and exposing search/content retrieval tools over stdio.

What This Server Provides

  • 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

Related MCP server: ZIM MCP Server

Project Layout

  • server.py - MCP stdio server and tool/resource handlers

  • zim_reader.py - binary ZIM parser and article extraction

  • rag_engine.py - chunking + TF-IDF retrieval engine

  • requirements.txt - Python dependencies

Requirements

  • Python 3.10+

  • A directory containing one or more .zim files

Install dependencies:

pip install -r requirements.txt

Run Locally

From this folder (MCPs/ZIM_MCP):

python server.py

Environment variable:

  • ZIM_DIRECTORY (optional): directory containing .zim files

    • default: current working directory

Example:

set ZIM_DIRECTORY=E:\ZIMs
python server.py

MCP Client Configuration

Use script execution (not -m MCPs.ZIM_MCP), because this package does not define __main__.py.

Example (Windows / Cline-style JSON)

{
  "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": []
    }
  }
}

Tools

  • list_zim_files

    • List .zim files discovered in ZIM_DIRECTORY.

  • 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.

Resource URIs

  • zim://{file}/info

  • zim://{file}/article/{url}

  • zim://{file}/search/{query}

  • zim://{file}/rag/{query}

Notes

  • 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 zstandard package).

Troubleshooting

  • Server starts but no files found

    • Verify ZIM_DIRECTORY points to the folder that contains .zim files.

  • No module named ... errors

    • Reinstall deps: pip install -r requirements.txt

  • MCP fails to launch from client

    • Use the full script path in args (...\\server.py), not -m MCPs.ZIM_MCP.

Author

Garland Glessner (gglessner@gmail.com)

License

GNU General Public License v3 (GPLv3)

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    Enables AI models to access and search offline Wikipedia and other knowledge bases stored in ZIM format files. Provides intelligent content retrieval, structured browsing, advanced search capabilities, and metadata extraction for comprehensive offline knowledge access.
    8
    530 PyPI
    133
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables large language models to directly access and search content in ZIM files, allowing offline question answering and information retrieval from resources like Wikipedia.
    20
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables offline CRUD and semantic search on Wikipedia ZIM archives via MCP tools for reading, writing, editing, deleting, and searching articles.
    1
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Provides offline search and retrieval of Wikipedia articles using Kiwix .zim files, enabling LLMs to access full Wikipedia content without internet.
    2
    MIT