🚨 Breaking changes
- Python floor raised to 3.11. Users on Python 3.8, 3.9, or 3.10 must upgrade.
csv-editor>=1,<2users are unaffected. --transport sseremoved. Use--transport http(Streamable HTTP) for remote deployments — aligned with MCP spec 2025-11-25 and FastMCP 3 guidance that SSE is "backward compatibility only."- FastMCP bumped to
>=3.2,<4. Consumers importing FastMCP APIs transitively may need updates per the FastMCP 3 upgrade guide.
✨ Added
- GitHub Actions pytest matrix workflow (Python 3.11–3.14).
tests/test_server_boot.py— regression tests for server import, tool registry, CLI.- Python 3.14 classifier and test coverage.
- CONTRIBUTING guide entry for rebuilding the local virtualenv.
- Design spec + implementation plan under
specs/andplans/.
🔧 Changed
- Dependencies: pydantic 2.13, pyarrow 23, httpx 0.28, aiofiles 25, tabulate 0.10, pydantic-settings 2.13.
- Tooling:
black→ py311/312/313,ruff→ py311,mypy→ 3.11. - Applied
ruff --fix+blackformatting across src/ and tests/ (large format-only diff, no behavior change). - Dockerfile base pinned to
python:3.11-slim-bookworm. main()now accepts optionalargvparameter for testability.- README Python badge updated from 3.8+ to 3.11+.
🗑️ Removed
--transport sseCLI option.- Python 3.8 / 3.9 / 3.10 classifier entries.
⏭️ Deferred (follow-up release)
- pandas 3.0 and numpy 2.4. Pandas 3.0's Copy-on-Write and Arrow-backed default string dtype are behavioral changes meriting a dedicated sub-project with focused test coverage.
Full CHANGELOG
See CHANGELOG.md.
Design + roadmap
- Design spec:
specs/2026-04-19-fastmcp3-migration-design.md - Implementation plan:
plans/2026-04-19-fastmcp3-migration-plan.md - 2026 relevance audit (what's next): DuckDB/Polars engine, async Tasks, remote HTTP + OAuth, elicitation — tracked in follow-up issues.