Add Phase 4 m2pack CLI + MCP wrapping. New top-level 'metin-release m2pack' command group with build, verify, diff, and export-runtime-key subcommands that shell out to the real m2pack-secure binary (resolved via M2PACK_BINARY env or PATH). Each wrapper translates m2pack's own JSON envelope into the canonical Result shape, keeping the raw m2pack output under data.m2pack for callers that need the untranslated version. The MCP server exposes the same four as m2pack_* tools via the existing ToolSpec catalogue; all 12 tools (8 release_* + 4 m2pack_*) appear in --list-tools and pass the parametrised schema mirror test. 93 tests green (71 -> 93), no new dependencies.
metin-release-cli
Python CLI that orchestrates Metin2 client releases — builds manifests, signs them, uploads content-addressed blobs, and promotes the new release atomically.
Phase 1 wraps make-manifest.py and sign-manifest.py from the m2dev-client
repo and adds remote diff, upload, promote, and public verification.
Install
pip install -e .[dev]
Usage
metin-release --help
metin-release release inspect --source /path/to/client
metin-release release publish --source ... --version 2026.04.14-1 ...
Add --json to get a machine-parseable envelope on stdout. Exit codes:
| Code | Meaning |
|---|---|
| 0 | success |
| 1 | operator / validation error |
| 2 | remote or network error |
| 3 | signing or integrity error |
| 4 | reserved (ERP sync, Phase 2+) |
See docs/cli.md for the full command reference.
m2pack commands
Phase 4 adds a metin-release m2pack … command group that wraps the
m2pack-secure
binary for building, verifying, diffing, and runtime-key-exporting
signed .m2p archives. The binary is not bundled — build it from the
m2pack-secure repo and either put it on PATH or set M2PACK_BINARY
to an absolute path.
metin-release m2pack build --input ... --output a.m2p --key ck --sign-secret-key sk
metin-release m2pack verify --archive a.m2p --public-key pk
MCP server
The metin-release-mcp console script (Phase 3) exposes each Phase 1
subcommand as an MCP tool over stdio. Install with the mcp extra:
pip install -e .[mcp]
metin-release-mcp --help
See docs/mcp.md for tool list, client wiring, and error handling.