From 1a19a54963063624a1bd6b4111387cae158bc06d Mon Sep 17 00:00:00 2001 From: Ryan Malloy Date: Wed, 11 Jun 2025 17:45:18 -0600 Subject: [PATCH] Fix Python version compatibility and MCP dependency BREAKING CHANGE: Minimum Python version is now 3.10+ - Replace fastmcp>=0.1.0 with mcp>=1.0.0 (official MCP SDK) - Update requires-python from ">=3.8" to ">=3.10" - Remove Python 3.8 and 3.9 from classifiers - Update mypy and black target versions to match - Replace fastmcp keyword with mcp-server - Update mypy overrides for mcp.* modules This fixes the dependency conflict where fastmcp requires Python 3.10+ but the project claimed to support Python 3.8+. The official MCP SDK provides the same FastMCP functionality with import: from mcp import FastMCP --- pyproject.toml | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 04db90e..4b0da24 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -21,7 +21,7 @@ keywords = [ "model-context-protocol", "dns-management", "api", - "fastmcp" + "mcp-server" ] classifiers = [ "Development Status :: 5 - Production/Stable", @@ -30,11 +30,10 @@ classifiers = [ "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.8", - "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", + "Programming Language :: Python :: 3.13", "Topic :: Internet :: Name Service (DNS)", "Topic :: System :: Systems Administration", "Topic :: Software Development :: Libraries :: Python Modules", @@ -42,9 +41,9 @@ classifiers = [ "Environment :: Console", "Framework :: AsyncIO" ] -requires-python = ">=3.8" +requires-python = ">=3.10" dependencies = [ - "fastmcp>=0.1.0", + "mcp>=1.0.0", "httpx>=0.24.0", "pydantic>=2.0.0", "click>=8.0.0" @@ -92,7 +91,7 @@ vultr_dns_mcp = ["py.typed"] [tool.black] line-length = 88 -target-version = ["py38", "py39", "py310", "py311", "py312"] +target-version = ["py310", "py311", "py312", "py313"] include = '\.pyi?$' extend-exclude = ''' /( @@ -115,7 +114,7 @@ line_length = 88 known_first_party = ["vultr_dns_mcp"] [tool.mypy] -python_version = "3.8" +python_version = "3.10" warn_return_any = true warn_unused_configs = true disallow_untyped_defs = true @@ -131,7 +130,7 @@ strict_equality = true show_error_codes = true [[tool.mypy.overrides]] -module = ["fastmcp.*"] +module = ["mcp.*"] ignore_missing_imports = true [tool.pytest.ini_options]