Summary
pyproject.toml:7 declares version = "0.1.2". server.json:6 declares "version": "0.1.1". The two should match (or both derive from a single source of truth).
Reproduction
$ grep -A1 '^\[project\]' pyproject.toml | grep version
version = "0.1.2"
$ grep '"version"' server.json
"version": "0.1.1",
Why this matters
Downstream consumers pinning a paperbanana version (e.g. paperbanana>=0.1.2 in an integration that needs a recent fix) will see one number in package metadata and a different number in the MCP server descriptor. Cosmetic but easily confusing, especially for MCP-directory listings that may key on server.json.
Suggested fix
Two reasonable options:
- Manual unification (5-min fix): bump
server.json to 0.1.2. Document a release-checklist line item that bumps both files together.
- Single source of truth: have
server.json read its version from paperbanana.__version__ (which itself reads from pyproject.toml via importlib.metadata) at server-init time. Slightly more code, never drifts again.
Context for filing
Surfaced incidentally during an integration spike. Trivial change; happy to PR.
Summary
pyproject.toml:7declaresversion = "0.1.2".server.json:6declares"version": "0.1.1". The two should match (or both derive from a single source of truth).Reproduction
Why this matters
Downstream consumers pinning a paperbanana version (e.g.
paperbanana>=0.1.2in an integration that needs a recent fix) will see one number in package metadata and a different number in the MCP server descriptor. Cosmetic but easily confusing, especially for MCP-directory listings that may key onserver.json.Suggested fix
Two reasonable options:
server.jsonto0.1.2. Document a release-checklist line item that bumps both files together.server.jsonread its version frompaperbanana.__version__(which itself reads frompyproject.tomlviaimportlib.metadata) at server-init time. Slightly more code, never drifts again.Context for filing
Surfaced incidentally during an integration spike. Trivial change; happy to PR.