Skip to content

v0.2.0 — mcp 2.x

Choose a tag to compare

@musharna musharna released this 31 Jul 00:52
3757667

Migration to the mcp 2.x SDK. No change to what the tools do.

mcp.server.fastmcp no longer exists in 2.0.0 — but FastMCP was renamed, not removed. It is now mcp.server.mcpserver.MCPServer: the same class, the same decorator, the same annotations and structured_output kwargs. ToolError moved to mcp.server.mcpserver.exceptions; mcp.types.ToolAnnotations did not move.

The dependency moves to mcp>=2,<3 rather than widening to <3. This package imports mcp.server.mcpserver, which does not exist in 1.x, so a range spanning both majors could resolve to a version that cannot import the server. The old 1.28.1 floor was a security floor rather than a feature one, and every 2.x release is above it.

mcp.types field names went camelCase → snake_case (inputSchemainput_schema), which touched a test assertion rather than the server.

__version__ is read from installed metadata instead of restated

It was a literal beside a pyproject.toml version, with nothing enforcing agreement. They happened to agree here — but plantcv-mcp shipped 0.2.0 reporting "0.1.0" from exactly that arrangement, so this is a latent form of a defect that has already shipped elsewhere.

There was no version test at all. tests/test_version.py now compares the reported version against what pyproject.toml declares — deliberately not against importlib.metadata, which is what __version__ now reads from, since asserting those agree would compare a value to itself. Confirmed to fail against a reintroduced literal before being kept.

Full changelog: https://github.com/musharna/phylokit-mcp/blob/main/CHANGELOG.md