@
The wheel installs a top-level src package into site-packages:
[tool.hatch.build.targets.wheel]
packages = ["src"]
[project.scripts]
mcp-ynab = "src.server:main"
Any other distribution that does the same thing collides with us in a shared
environment, and src is a common enough choice that this is a real risk rather
than a theoretical one. Whichever package installs last wins, and the failure
mode is confusing import errors far from the cause.
Scope
Smaller than it looks:
- The console script stays
mcp-ynab, so anyone running uvx mcp-ynab or using
a normal MCP client config is unaffected.
- It breaks
python -m src.server, which is documented in CLAUDE.md and would
become python -m mcp_ynab.server.
- The diff is wide but mechanical:
src/ moves to mcp_ynab/, every
from src.x import y is rewritten, plus tests and the entry point.
Deliberately kept out of #22 so the mcp 2.0.0 outage fix stayed reviewable. There
is a matching TODO in pyproject.toml.
Worth shipping as its own minor release.
@
@
The wheel installs a top-level
srcpackage into site-packages:Any other distribution that does the same thing collides with us in a shared
environment, and
srcis a common enough choice that this is a real risk ratherthan a theoretical one. Whichever package installs last wins, and the failure
mode is confusing import errors far from the cause.
Scope
Smaller than it looks:
mcp-ynab, so anyone runninguvx mcp-ynabor usinga normal MCP client config is unaffected.
python -m src.server, which is documented in CLAUDE.md and wouldbecome
python -m mcp_ynab.server.src/moves tomcp_ynab/, everyfrom src.x import yis rewritten, plus tests and the entry point.Deliberately kept out of #22 so the mcp 2.0.0 outage fix stayed reviewable. There
is a matching TODO in
pyproject.toml.Worth shipping as its own minor release.
@