Skip to main content

A comprehensive Model Context Protocol (MCP) server for managing Vultr DNS records

Project description

🌐 Vultr DNS MCP

PyPI version Python Support License: MIT Tests

A comprehensive Model Context Protocol (MCP) server for managing Vultr DNS records with AI assistants and direct Python integration

InstallationQuick StartFeaturesDocumentationContributing


✨ Features

🤖 AI Assistant Integration

  • MCP Server - Full Model Context Protocol support
  • Claude Integration - Direct integration with Claude AI
  • Natural Language - Understand complex DNS requests
  • Smart Validation - Built-in DNS record validation

🐍 Python Developer Tools

  • Client Library - Direct Python API for DNS operations
  • CLI Tool - Command-line interface for DNS management
  • Async Support - Full async/await compatibility
  • Type Safety - Complete type hints and validation

🌐 Complete DNS Management

  • All Record Types - A, AAAA, CNAME, MX, TXT, NS, SRV
  • Domain Operations - Create, update, delete domains
  • Bulk Operations - Efficient batch processing
  • TTL Management - Flexible time-to-live settings

📊 Advanced Features

  • Configuration Analysis - Analyze DNS setup with recommendations
  • Best Practices - Built-in DNS validation and suggestions
  • Error Handling - Comprehensive error management
  • Monitoring - Track DNS changes and performance

🚀 Quick Start

Installation

# Install from PyPI
pip install vultr-dns-mcp

# Or install with development dependencies
pip install vultr-dns-mcp[dev]

Get Your API Key

Get your Vultr API key from the Vultr Control Panel.

export VULTR_API_KEY="your_vultr_api_key_here"

Start the MCP Server

# Start the MCP server for AI assistant integration
vultr-dns-mcp server

🛠️ CLI Usage

The package includes a comprehensive CLI for all DNS operations:

# List domains
vultr-dns-mcp domains list

# Get domain information  
vultr-dns-mcp domains info example.com

# Create a new domain
vultr-dns-mcp domains create example.com 192.168.1.100

# List DNS records
vultr-dns-mcp records list example.com

# Add DNS records
vultr-dns-mcp records add example.com A www 192.168.1.100
vultr-dns-mcp records add example.com MX @ mail.example.com --priority 10

# Set up a website
vultr-dns-mcp setup-website example.com 192.168.1.100

# Set up email
vultr-dns-mcp setup-email example.com mail.example.com

🤖 AI Assistant Integration

Claude Integration

Add to your ~/.config/claude/mcp.json:

{
  "mcpServers": {
    "vultr-dns": {
      "command": "vultr-dns-mcp",
      "args": ["server"],
      "env": {
        "VULTR_API_KEY": "your_vultr_api_key_here"
      }
    }
  }
}

Available MCP Tools

The server provides comprehensive MCP resources and tools that any MCP-compatible client can discover and use:

Tool Description Example Usage
list_dns_domains() List all domains "Show me all my domains"
get_dns_domain(domain) Get domain details "Get info for example.com"
create_dns_domain(domain, ip) Create domain "Create domain newsite.com"
delete_dns_domain(domain) Delete domain "Remove old.example.com"
list_dns_records(domain) List records "Show DNS records for mysite.com"
create_dns_record(...) Create record "Add A record for www"
update_dns_record(...) Update record "Change the IP for www"
delete_dns_record(domain, record_id) Delete record "Remove the CNAME record"
validate_dns_record(...) Validate record "Check this MX record"
analyze_dns_records(domain) Analyze configuration "Analyze DNS setup for mysite.com"

📋 Supported DNS Record Types

Type Description Example
A IPv4 address 192.168.1.100
AAAA IPv6 address 2001:db8::1
CNAME Domain alias example.com
MX Mail server mail.example.com (requires priority)
TXT Text data v=spf1 include:_spf.google.com ~all
NS Name server ns1.example.com
SRV Service record 0 5 443 example.com (requires priority)

Error Handling

All operations include comprehensive error handling:

result = await client.add_a_record("example.com", "www", "192.168.1.100")
if "error" in result:
    print(f"Error: {result['error']}")
else:
    print(f"Success: Created record {result['id']}")

🧪 Development

Setup

# Clone the repository
git clone https://github.com/rsp2k/vultr-dns-mcp.git
cd vultr-dns-mcp

# Install development dependencies
pip install -e .[dev]

Running Tests

# Run all tests
pytest

# Run with coverage
pytest --cov=vultr_dns_mcp

# Run specific test file
pytest tests/test_server.py -v

Code Quality

# format
black check --diff

# lint
ruff check src/

# Type checking TODO
# mypy src

📖 Documentation


🤝 Contributing

We welcome contributions! Please see our Contributing Guide for details.

Quick Contribution Setup

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Make your changes
  4. Test your changes (pytest)
  5. Commit your changes (git commit -m 'Add amazing feature')
  6. Push to the branch (git push origin feature/amazing-feature)
  7. Open a Pull Request

📝 License

This project is licensed under the MIT License - see the LICENSE file for details.


🆘 Support


🙏 Acknowledgments


⬆ Back to Top

Made with ❤️ by rsp2k

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

vultr_dns_mcp-1.0.2.tar.gz (23.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

vultr_dns_mcp-1.0.2-py3-none-any.whl (16.5 kB view details)

Uploaded Python 3

File details

Details for the file vultr_dns_mcp-1.0.2.tar.gz.

File metadata

  • Download URL: vultr_dns_mcp-1.0.2.tar.gz
  • Upload date:
  • Size: 23.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for vultr_dns_mcp-1.0.2.tar.gz
Algorithm Hash digest
SHA256 b87fc046aa2cc0d5e793f95843aad3f3e0831bb0d4fa5db2ba73f1a8c12c8254
MD5 8316da164fec3177be09289650b43514
BLAKE2b-256 a3e128c655adfbb966c887457fa36c96fe37cb9fa4b7b91f0fa439fbf0847c24

See more details on using hashes here.

Provenance

The following attestation bundles were made for vultr_dns_mcp-1.0.2.tar.gz:

Publisher: publish.yml on rsp2k/vultr-dns-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file vultr_dns_mcp-1.0.2-py3-none-any.whl.

File metadata

  • Download URL: vultr_dns_mcp-1.0.2-py3-none-any.whl
  • Upload date:
  • Size: 16.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for vultr_dns_mcp-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 cdf9c4968e8accec77b1f5b209bfff302f83990a9e5caf615ba8ec74b230ed2c
MD5 efc4ff06c87f5dea3a0e85e649c3a015
BLAKE2b-256 7b00fd48313ac33886fd2724fdbe6c6100f1d0277aa27198b52c2a8a0b87c8fc

See more details on using hashes here.

Provenance

The following attestation bundles were made for vultr_dns_mcp-1.0.2-py3-none-any.whl:

Publisher: publish.yml on rsp2k/vultr-dns-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page