MZFileServer
服务介绍
MZFileServer (Python版本)
用于扫描和搜索需求文档的MCP服务器(Python实现)。
功能特性
- 按版本号搜索需求
- 按模块名搜索需求
- 按关键词搜索需求内容
- 列出所有版本及其需求数量
- 列出所有模块及其涉及的需求
- 获取特定需求的详细信息
- 自动缓存需求数据,支持重新加载
- 支持 SSE 传输,可通过 HTTP 协议访问
安装依赖
pip3 install -r requirements_mcp_requirements.txt
或者直接安装:
pip3 install mcp
使用
启动服务器
前台运行(开发调试):
python3 requirements_mcp.py
后台运行(推荐):
nohup python3 requirements_mcp.py > server.log 2>&1 &
查看日志:
tail -f server.log
停止服务:
ps aux | grep requirements_mcp.py
kill <PID>
服务器将启动在 http://0.0.0.0:7000,通过 SSE 协议提供服务。
MCP配置
SSE 模式配置(推荐)
在 MCP 客户端中添加以下配置:
Windows:
{
"mcpServers": {
"mzfileserver": {
"transport": "sse",
"url": "http://127.0.0.1:7000/sse"
}
}
}
注意:
- 需要先运行
python3 requirements_mcp.py启动服务器 - 确保端口 7000 未被占用
- 如需修改端口,可以编辑
requirements_mcp.py中的uvicorn.run(app, host="0.0.0.0", port=7000)
工具说明
search_by_version
按版本号搜索需求
参数:
version: 版本号,如 "5.7.8"
示例: "搜索v5.7.8版本的所有需求"
search_by_module
按模块名搜索需求
参数:
module: 模块名称,如 "销售单"、"退货单"
示例: "搜索销售单模块的所有需求"
search_by_keyword
按关键词搜索需求内容
参数:
keyword: 关键词
示例: "搜索关键词'退款'的所有需求"
list_all_versions
列出所有版本及其需求数量
示例: "列出所有版本"
list_all_modules
列出所有模块及其涉及的需求
示例: "列出所有模块"
get_requirement_detail
获取特定需求的详细信息
参数:
version: 版本号index: 需求序号
示例: "获取v5.7.8版本第1个需求的详细信息"
reload_cache
重新加载需求数据缓存
示例: "重新加载缓存"
文件命名规范
需求txt文件应遵循以下命名格式:
序号.{标题}.txt
文件应存放在版本目录中:
output/
├── v5.7.8/
│ ├── 1.(盛)布匹细码扫码出库.txt
│ ├── 2.(陈)净利润报表优化.txt
│ └── ...
├── v5.7.9/
│ ├── 1.某需求.txt
│ └── ...
└── ...
目录结构
filemcp/
├── requirements_mcp.py # MCP服务器主文件(SSE模式)
├── requirements_mcp_requirements.txt # Python依赖(mcp、uvicorn、starlette)
├── parse_docx.py # Word文档解析脚本(支持批量)
├── output/ # 需求txt文件目录(按版本组织)
│ ├── v5.7.8/ # 版本目录
│ │ ├── 1.需求1.txt
│ │ └── ...
│ └── v5.7.9/ # 其他版本目录
└── README_PYTHON.md # Python版本说明文档
工作流程
- 使用
parse_docx.py从Word文档批量提取需求到txt文件- 自动扫描目录下所有.docx文件
- 每个文档生成一个以版本命名的目录
- 需求文件按序号组织
- 启动
requirements_mcp.pyMCP服务器(SSE模式) - 在MCP客户端配置服务器URL(
http://127.0.0.1:7000/sse) - 通过MCP客户端调用工具搜索需求
与Node.js版本的对比
Python版本具有以下优势:
- 更容易集成到Python开发环境
- 使用异步I/O,性能更优
- 代码更简洁,易于维护
- 更适合中文处理
常见问题
Q: 如何添加新的需求文件?
A: 将新的需求txt文件放入 output 目录,文件名需符合命名规范,然后调用 reload_cache 工具重新加载。
Q: 支持哪些搜索方式?
A: 支持按版本号、模块名、关键词三种搜索方式。
Q: 如何获取完整的需求内容?
A: 使用 get_requirement_detail 工具,指定版本号和序号。
开发者信息
- 版本: 1.0.0
- 语言: Python 3.8+
- MCP版本: 1.0.0+