MCP Polib服务器
用于读取、写入和操作GNU Gettext的模型上下文协议(MCP)服务器 .po 文件夹。概述
该项目提供了 快速API-基于MCP服务器,该服务器提供了一组工具,用于使用 脊髓灰质炎 图书馆。它与 FastMCP 将所有操作作为MCP兼容工具公开,实现与语言模型和AI代理的无缝集成。
主要特点
- 文件操作:阅读完整的采购订单文件或按上下文查找特定条目。
- 出入管理:使用完整的上下文支持(msgid、msgstr、注释、标志、事件)创建、更新和修改PO条目。
- 部分更新:将新条目合并到现有PO文件中,而不覆盖无关的数据。
- 模糊入口检测:识别并列出所有标记为“模糊”的条目以供审查。
- 自动格式化:申请 火药 写入后进行格式化,以保持PO文件标准。
- Docker化部署:已准备好使用Docker镜像,并预装了Python 3.12和所有依赖项。
- MCP传输灵活性:支持两者
stdio和http运输。
可用工具
所有端点都在PO文件的绝对文件路径上运行:
read_po–从PO文件加载所有条目。write_po–在采购订单文件中创建或更新条目。智能合并:通过以下方式更新现有条目msgid+msgctxt,附加新条目,并保留未修改的条目。自动格式化powrap.read_po_context–通过以下方式获取特定条目msgid加上周围环境(可配置的窗口大小)。find_fuzzy–返回所有标有“模糊”标志的条目。
工具详细信息
read_po
- 输入:
file_path(绝对路径.po文件) - 输出:包含msgid、msgstr、注释、标志和事件的所有PO条目列表
- 用例:从文件中提取所有翻译以供审查或处理
write_po
- 输入:
file_path以及包含msgid、msgstr、可选元数据的条目列表 - 行为:
- 如果条目存在(相同的msgid+msgtxt),则更新它 - 否则,作为新条目追加 - 未修改的条目保持不变 - 跑动 powrap --modified 用于自动格式化
- 输出:成功状态和消息(包括电源错误(如果有的话))
- 用例:批量更新或创建翻译
read_po_context
- 输入:
file_path,msgid,context_size(默认值:1) - 输出:目标条目及其前后的周围条目
- 用例:查看翻译及其邻近上下文,以便更好地理解
find_fuzzy
- 输入:
file_path - 输出:所有标记为“模糊”的条目
- 用例:查找不完整或不确定的翻译以供审查
入门指南
本地开发
- 安装依赖项:
uv sync- 运行MCP服务器:
# stdio transport (default)
uv run fastmcp run mcp_tools/main.py # http transport
uv run fastmcp run mcp_tools/main.py --transport http- 运行测试:
uv run pytest码头工人
- 塑造形象:
docker build -t mcp-polib:latest .- 使用stdio传输运行容器:
docker run -i --rm mcp-polib:latest- 使用http传输运行容器:
docker run --rm -p 8000:8000 mcp-polib:latest uv run fastmcp run mcp_tools/main.py --transport http在Claude桌面中配置
要将此服务器与Claude Desktop一起使用,请将以下内容添加到您的 claude_desktop_config.json:
macOS:
{
"mcpServers": {
"mcp-polib": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"-v",
"/Users:/Users",
"mcp-polib:latest"
]
}
}
}Linux:
{
"mcpServers": {
"mcp-polib": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"-v",
"/home:/home",
"mcp-polib:latest"
]
}
}
}窗户:
{
"mcpServers": {
"mcp-polib": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"-v",
"C:\\Users:C:\\Users",
"mcp-polib:latest"
]
}
}
}项目结构
mcp-polib/
├── mcp_tools/
│ ├── main.py # FastAPI app and MCP tool implementations
│ ├── schemas.py # Pydantic models for request/response validation
│ └── __init__.py
├── tests/
│ ├── test_po_tools.py # Comprehensive test suite
│ └── test.po # Sample PO file for testing
├── scripts/
│ ├── build_docs.sh # Documentation build script
│ ├── build_image.sh # Docker image build helper
│ ├── export_openapi.py # Extract OpenAPI spec
│ └── openapi_to_markdown.py # Convert OpenAPI to Markdown
├── docs/ # MkDocs documentation
├── Dockerfile # Production-ready Docker image
├── pyproject.toml # Project metadata and dependencies
└── README.md # This file文档
API完整文档可在以下位置获取:
- OpenAPI规范:
docs/reference/endpoints_swagger.md - MkDocs:运行
uv run mkdocs serve在本地查看
要重建文档,请执行以下操作:
chmod +x scripts/build_docs.sh
scripts/build_docs.sh
uv run mkdocs build技术栈
- 框架:FastAPI+FastMCP
- PO文件处理:polib
- 包管理器:紫外线
- 容器:Docker(Python 3.12,Bookworm slim)
- 格式化:粉末
- 测试:pytest
- 文档:MkDocs
