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
This commit is contained in:
Ryan Malloy 2025-06-11 17:45:18 -06:00
parent ac3c04e8d1
commit 1a19a54963

View File

@ -21,7 +21,7 @@ keywords = [
"model-context-protocol", "model-context-protocol",
"dns-management", "dns-management",
"api", "api",
"fastmcp" "mcp-server"
] ]
classifiers = [ classifiers = [
"Development Status :: 5 - Production/Stable", "Development Status :: 5 - Production/Stable",
@ -30,11 +30,10 @@ classifiers = [
"License :: OSI Approved :: MIT License", "License :: OSI Approved :: MIT License",
"Operating System :: OS Independent", "Operating System :: OS Independent",
"Programming Language :: Python :: 3", "Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Topic :: Internet :: Name Service (DNS)", "Topic :: Internet :: Name Service (DNS)",
"Topic :: System :: Systems Administration", "Topic :: System :: Systems Administration",
"Topic :: Software Development :: Libraries :: Python Modules", "Topic :: Software Development :: Libraries :: Python Modules",
@ -42,9 +41,9 @@ classifiers = [
"Environment :: Console", "Environment :: Console",
"Framework :: AsyncIO" "Framework :: AsyncIO"
] ]
requires-python = ">=3.8" requires-python = ">=3.10"
dependencies = [ dependencies = [
"fastmcp>=0.1.0", "mcp>=1.0.0",
"httpx>=0.24.0", "httpx>=0.24.0",
"pydantic>=2.0.0", "pydantic>=2.0.0",
"click>=8.0.0" "click>=8.0.0"
@ -92,7 +91,7 @@ vultr_dns_mcp = ["py.typed"]
[tool.black] [tool.black]
line-length = 88 line-length = 88
target-version = ["py38", "py39", "py310", "py311", "py312"] target-version = ["py310", "py311", "py312", "py313"]
include = '\.pyi?$' include = '\.pyi?$'
extend-exclude = ''' extend-exclude = '''
/( /(
@ -115,7 +114,7 @@ line_length = 88
known_first_party = ["vultr_dns_mcp"] known_first_party = ["vultr_dns_mcp"]
[tool.mypy] [tool.mypy]
python_version = "3.8" python_version = "3.10"
warn_return_any = true warn_return_any = true
warn_unused_configs = true warn_unused_configs = true
disallow_untyped_defs = true disallow_untyped_defs = true
@ -131,7 +130,7 @@ strict_equality = true
show_error_codes = true show_error_codes = true
[[tool.mypy.overrides]] [[tool.mypy.overrides]]
module = ["fastmcp.*"] module = ["mcp.*"]
ignore_missing_imports = true ignore_missing_imports = true
[tool.pytest.ini_options] [tool.pytest.ini_options]