Skip to content

v0.3.0

Latest

Choose a tag to compare

@partymola partymola released this 02 Aug 23:51

Changed

  • Ported to the mcp 2.x server API. 2.0.0 renamed mcp.server.fastmcp to mcp.server.mcpserver and the FastMCP class to MCPServer, with no compatibility alias. The tool contract is unchanged: every tool keeps its name, description, and input and output schemas.
  • Every dependency is pinned to an exact version instead of a lower bound: mcp 2.0.0, anyio 4.14.2, python-dotenv 1.2.2, pydantic 2.13.4 and tzlocal 5.4.4, and for development pytest 9.1.1, pytest-asyncio 1.4.0 and ruff 0.16.1.

Fixed

  • A fresh install no longer breaks on import. The mcp spec was >=1.6.0 with no upper bound, so once 2.0.0 was published the resolver picked it and the server failed to start.
  • Strict tool-argument validation is now pinned by a test that invokes a registered tool with an unknown kwarg, rather than only asserting the setting the patch writes. The strictness comes from patching a private mcp internal; if that internal stops being what argument models are built on, the patch still applies cleanly to an object nothing reads and typo'd kwargs silently fall through to their defaults again - which the previous checks could not distinguish from working.

Packaging

  • The build toolchain is pinned alongside the dependencies: setuptools to an exact version, the python:3.13-slim base image by digest, and every GitHub Action to a full commit SHA rather than a moving major tag. The uv binary image, previously referenced as :latest, is pinned to 0.12.1 by digest. A floating tag can change what a build produces with nobody deciding, which is the same failure the dependency pins address.