Major new feature: DNS Zone File Management - Add export_zone_file() method to export domain records as standard zone files - Add import_zone_file() method to import records from zone file format - Add comprehensive zone file parser with $TTL and $ORIGIN support - Add dry-run mode for import validation without making changes - Add zone file tools to FastMCP server (export_zone_file_tool, import_zone_file_tool) - Add dns://domains/{domain}/zone-file resource for MCP clients Features: - Standard zone file format compliance (BIND, PowerDNS compatible) - Support for all DNS record types (A, AAAA, CNAME, MX, TXT, NS, SRV) - Proper handling of quoted strings and record priorities - Line-by-line error reporting for invalid zone data - Backup and migration capabilities This enables easy DNS configuration backup, restoration, and bulk operations. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
5.2 KiB
5.2 KiB
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[1.1.0] - 2025-01-16
Added
- Zone File Import/Export - Major new feature for DNS backup and migration
export_zone_file_tool(domain)
- Export domain records as standard DNS zone file formatimport_zone_file_tool(domain, zone_data, dry_run)
- Import DNS records from zone file formatdns://domains/{domain}/zone-file
resource for zone file access- Support for all standard DNS record types (A, AAAA, CNAME, MX, TXT, NS, SRV)
- Comprehensive zone file parsing with proper handling of $TTL and $ORIGIN directives
- Dry-run mode for import validation without making changes
- Standard zone file format compliance for interoperability
Features
- Backup & Migration: Easy DNS configuration backup and restoration
- Bulk Operations: Import multiple records at once from zone files
- Validation: Pre-import validation with detailed error reporting
- Compatibility: Standard zone file format works with BIND, PowerDNS, and other DNS servers
Technical
- Added comprehensive zone file parsing engine with quoted string handling
- Proper record type detection and formatting
- Error handling with line-by-line validation feedback
- Support for both tool and resource access patterns
[1.0.4] - 2025-01-16
Fixed
- Fixed tool wrappers to properly call underlying VultrDNSServer methods instead of trying to call FunctionResource objects
- Resolved "FunctionResource object is not callable" error in Claude Desktop
- Tool wrappers now directly call
vultr_client.list_domains()
,vultr_client.get_domain()
, etc.
Technical
- Changed tool wrapper implementation from calling resource functions to calling the underlying client methods
- Maintains functionality while fixing the callable object error
[1.0.3] - 2025-01-16
Added
- Tool wrappers for resource access to ensure Claude Desktop compatibility
list_domains_tool()
- wrapper for dns://domains resourceget_domain_tool()
- wrapper for dns://domains/{domain} resourcelist_records_tool()
- wrapper for dns://domains/{domain}/records resourceget_record_tool()
- wrapper for dns://domains/{domain}/records/{record_id} resourceanalyze_domain_tool()
- wrapper for dns://domains/{domain}/analysis resource
Technical
- Hybrid approach: resources for direct MCP access, tools for Claude Desktop compatibility
- Maintains both patterns to support different MCP client implementations
[1.0.2] - 2025-01-16
Changed
- Refactored read operations to use MCP resources instead of tools
- List domains endpoint:
@mcp.resource("dns://domains")
- Get domain endpoint:
@mcp.resource("dns://domains/{domain}")
- List records endpoint:
@mcp.resource("dns://domains/{domain}/records")
- Get record endpoint:
@mcp.resource("dns://domains/{domain}/records/{record_id}")
- Analyze domain endpoint:
@mcp.resource("dns://domains/{domain}/analysis")
Improved
- Better alignment with MCP best practices (resources for read, tools for write)
- Enhanced Claude Desktop integration documentation with uvx support
[1.0.1] - 2024-12-20
Fixed
- Fixed FastMCP server initialization by removing unsupported parameters
- Corrected MCP server creation to use proper FastMCP constructor
- Resolved "unexpected keyword argument 'description'" error
Changed
- Simplified FastMCP initialization to use only the name parameter
- Updated server creation to be compatible with current FastMCP version
[1.0.0] - 2024-12-20
Added
- Initial release of Vultr DNS MCP package
- Complete MCP server implementation for Vultr DNS management
- Python client library for direct DNS operations
- Command-line interface for DNS management
- Support for all major DNS record types (A, AAAA, CNAME, MX, TXT, NS, SRV)
- DNS record validation and configuration analysis
- MCP resources for client discovery
- Comprehensive error handling and logging
- Natural language interface through MCP tools
- Convenience methods for common DNS operations
- Setup utilities for websites and email
- Full test suite with pytest
- Type hints and mypy support
- CI/CD configuration for automated testing
- Comprehensive documentation and examples
Features
- Domain Management: List, create, delete, and get domain details
- DNS Records: Full CRUD operations for all record types
- Validation: Pre-creation validation with helpful suggestions
- Analysis: Configuration analysis with security recommendations
- CLI Tools: Complete command-line interface
- MCP Integration: Full Model Context Protocol server
- Python API: Direct async Python client
- Error Handling: Robust error handling with actionable messages
Supported Operations
- Domain listing and management
- DNS record creation, updating, and deletion
- Record validation before creation
- DNS configuration analysis
- Batch operations for common setups
- Natural language DNS management through MCP
Documentation
- Complete API documentation
- Usage examples and tutorials
- MCP integration guides
- CLI reference
- Development guidelines