<!-- 构建和质量徽章 --> <!-- 包和版本徽章 --> <!-- 代码质量和标准 --> <!-- 社区和贡献 -->现在支持双模式! 可以选择简单模式(1个智能自然语言工具,默认)或高级模式(15个专业工具),以匹配您的大语言模型的能力。
OpenZIM MCP 将静态的 ZIM 存档转换成大型语言模型的动态知识引擎。 不同于基本文件读取器,此工具提供 智能、结构化的访问,使大语言模型能够有效地导航和理解庞大的知识库。
为什么大语言模型喜欢 OpenZIM MCP:
无论您是构建研究助手、知识聊天机器人还是内容分析系统,OpenZIM MCP 都能为您提供大语言模型所需的结构化访问模式,解锁离线知识存档的全部潜力。再也不用在原始文本转储中摸索了!
OpenZIM MCP 是一个现代、安全且高性能的 MCP(模型上下文协议)服务器,它使 AI 模型能够访问和搜索 ZIM 格式的知识库,即使在离线状态下也能使用。
ZIM(Zeno 改进版)是由 openZIM 项目 开发的一种开放文件格式,专门用于离线存储和访问网站内容。该格式使用 Zstandard 压缩(自 2021 年起默认使用)支持高压缩率,并允许快速全文搜索,使其非常适合存储整个维基百科内容和其他大型参考材料,以相对紧凑的文件形式。openZIM 项目由 Wikimedia CH 赞助,并得到 Wikimedia 基金会的支持,确保该格式继续发展并被采用,特别是在没有可靠互联网连接的环境中进行离线知识访问。
# 从 PyPI 安装(推荐)
pip install openzim-mcp
对于贡献者和开发者:
# 克隆仓库
git clone https://github.com/cameronrye/openzim-mcp.git
cd openzim-mcp
# 安装依赖
uv sync
# 安装开发依赖
uv sync --dev
从 Kiwix 图书馆下载 ZIM 文件(例如,维基百科、维基词典等),并将它们放在一个目录中:
mkdir ~/zim-files
# 将 ZIM 文件下载到 ~/zim-files/
# 简单模式(默认)- 1个智能自然语言工具
openzim-mcp /path/to/zim/files
python -m openzim_mcp /path/to/zim/files
# 高级模式 - 所有15个专业工具
openzim-mcp --mode advanced /path/to/zim/files
python -m openzim_mcp --mode advanced /path/to/zim/files
# 开发(从源码)
uv run python -m openzim_mcp /path/to/zim/files
uv run python -m openzim_m_ cp --mode advanced /path/to/zim/files
# 或使用 make(开发)
make run ZIM_DIR=/path/to/zim/files
OpenZIM MCP 支持两种模式:
zim_query),接受自然语言查询详见 简单模式指南 获取详细信息。
简单模式(默认):
{
"openzim-mcp": {
"command": "openzim-mcp",
"args": ["/path/to/zim/files"]
}
}
高级模式:
{
"openzim-mcp-advanced": {
"command": "openzim-mcp",
"args": ["--mode", "advanced", "/path/to/zim/files"]
}
}
使用 Python 模块的替代配置:
{
"openzim-mcp": {
"command": "python",
"args": [
"-m",
"openzim_mcp",
"/path/to/zim/files"
]
}
}
对于开发(从源码):
{
"openzim-mcp": {
"command": "uv",
"args": [
"--directory",
"/path/to/openzim-mcp",
"run",
"python",
"-m",
"openzim_mcp",
"/path/to/zim/files"
]
}
}
# 运行所有测试
make test
# 运行带覆盖率的测试
make test-cov
# 运行特定测试文件
uv run pytest tests/test_security.py -v
# 运行带 ZIM 测试数据的测试(全面测试)
make test-with-zim-data
# 仅运行集成测试
make test-integration
# 运行需要 ZIM 测试数据的测试
make test-requires-zim-data
OpenZIM MCP 与官方 zim-testing-suite 集成,进行全面测试,使用真实的 ZIM 文件:
# 下载基本测试文件(基本测试)
make download-test-data
# 下载所有测试文件(全面测试)
make download-test-data-all
# 列出可用的测试文件
make list-test-data
# 清理下载的测试数据
make clean-test-data
测试数据包括:
测试文件按类别和优先级级别自动组织。
# 格式化代码
make format
# 运行代码检查
make lint
# 类型检查
make type-check
# 运行所有检查
make check
openzim-mcp/
├── openzim_mcp/ # 主包
│ ├── __init__.py # 包初始化
│ ├── __main__.py # 模块入口点
│ ├── main.py # 主入口点
│ ├── server.py # MCP 服务器实现
│ ├── config.py # 配置管理
│ ├── security.py # 安全性和验证
│ ├── cache.py # 缓存功能
│ ├── content_processor.py # 内容处理
│ ├── zim_operations.py # ZIM 文件操作
│ ├── exceptions.py # 自定义异常
│ └── constants.py # 应用常量
├── tests/ # 测试套件
├── pyproject.toml # 项目配置
├── Makefile # 开发命令
└── README.md # 本文档
无需参数。
必需参数:
zim_file_path(字符串):ZIM 文件路径query(字符串):搜索查询词可选参数:
limit(整数,默认值:10):返回的最大结果数量offset(整数,默认值:0):结果的起始偏移量(用于分页)必需参数:
zim_file_path(字符串):ZIM 文件路径entry_path(字符串):条目路径,例如 'A/Some_Article'可选参数:
max_content_length(整数,默认值:100000,最小值:1000):返回内容的最大长度智能检索特性:
必需参数:
zim_file_path(字符串):ZIM 文件路径返回: 包含 ZIM 元数据的 JSON 字符串,包括条目计数、存档信息以及标题、描述、语言、创建者等元数据条目。
必需参数:
zim_file_path(字符串):ZIM 文件路径返回: 主页面内容或关于主页面条目的信息。
必需参数:
zim_file_path(字符串):ZIM 文件路径返回: 包含命名空间信息的 JSON 字符串,包括条目计数、描述和每个命名空间(C、M、W、X 等)的示例条目。
必需参数:
zim_file_path(字符串):ZIM 文件路径namespace(字符串):要浏览的命名空间(C、M、W、X、A、I 等)可选参数:
limit(整数,默认值:50,范围:1-200):返回的最大条目数量offset(整数,默认值:0):分页的起始偏移量返回: 包含命名空间条目的 JSON 字符串,包括标题、内容预览和分页信息。
必需参数:
zim_file_path(字符串):ZIM 文件路径query(字符串):搜索查询词可选参数:
namespace(字符串):可选的命名空间过滤器(C、M、W、X 等)content_type(字符串):可选的内容类型过滤器(text/html、text/plain 等)limit(整数,默认值:1_0,范围:1-100):返回的最大结果数量offset(整数,默认值:0):分页的起始偏移量返回: 带有命名空间和内容类型信息的过滤搜索结果。
必需参数:
zim_file_path(字符串):ZIM 文件路径partial_query(字符串):部分搜索查询(至少2个字符)可选参数:
limit(整数,默认值:10,范围:1-50):返回的最大建议数量返回: 基于文章标题和内容的搜索建议的 JSON 字符串。
必需参数:
zim_file_path(字符串):ZIM 文件路径entry_path(字符串):条目路径,例如 'C/Some_Article'返回: 包含文章结构的 JSON 字符串,包括标题、章节、元数据和字数统计。
必需参数:
zim_file_path(字符串):ZIM 文件路径entry_path(字符串):条目路径,例如 'C/Some_Article'返回: 包含分类链接(内部、外部、媒体)的 JSON 字符串,包括标题和元数据。
{
"name": "list_zim_files"
}
响应:
找到 1 个 ZIM 文件在 1 个目录中:
[
{
"name": "wikipedia_en_100_2025-08.zim",
"path": "C:\\zim\\wikipedia_en_100_2025-08.zim",
"directory": "C:\\zim",
"size": "310.77 MB",
"modified": "2025-09-11T10:20:50.148427"
}
]
{
"name": "search_zim_file",
"arguments": {
"zim_file_path": "C:\\zim\\wikipedia_en_100_2025-08.zim",
"query": "biology",
"limit": 3
}
}
响应:
找到 51 个匹配项 "biology",显示 1-3:
## 1. 分类学(生物学)
路径:Taxonomy_(biology)
摘要:# 分类学(生物学)系列的一部分
---
进化生物学
达尔文的雀鸟由约翰·古尔德绘制