5 Commits

Author SHA1 Message Date
75ffe33008 Migrate to FastMCP and add comprehensive improvements
Major changes:
- Migrate from low-level MCP to FastMCP framework for better compatibility
- Add custom exception hierarchy (VultrAPIError, VultrAuthError, etc.)
- Replace basic IPv6 validation with Python's ipaddress module
- Add HTTP request timeouts (30s total, 10s connect)
- Modernize development workflow with uv package manager
- Create FastMCP server with proper async/await patterns

New features:
- FastMCP server implementation with 12 DNS management tools
- Comprehensive Claude Desktop integration guide
- Enhanced error handling with specific exception types
- Professional README with badges and examples
- Complete testing suite with improvement validation

Documentation:
- CLAUDE.md: Consolidated project documentation
- CLAUDE_DESKTOP_SETUP.md: Step-by-step Claude Desktop setup guide
- Updated README.md with modern structure and uv-first approach
- Enhanced TESTING.md with FastMCP testing patterns

Development improvements:
- Updated all scripts to use uv run commands
- Smart development setup with uv/pip fallback
- Added comprehensive test coverage for new features
- PyPI-ready package configuration

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-16 10:09:20 -06:00
Ryan Malloy
1a19a54963 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
2025-06-11 17:45:18 -06:00
Ryan Malloy
863c78bb1f Fix test dependency: replace httpx-mock with pytest-httpx
The package httpx-mock doesn't exist. The correct package for mocking 
httpx in pytest is pytest-httpx which provides the httpx_mock fixture.
2025-06-11 17:41:29 -06:00
Ryan Malloy
cdfa53c9da
Update pyproject.toml 2025-06-11 17:37:50 -06:00
a5fe791756 Initial Commit 2025-06-11 16:16:34 -06:00