miltonvve/godaddy-mcp-server
If you are the rightful owner of godaddy-mcp-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
A production-ready Model Context Protocol (MCP) server for comprehensive GoDaddy API integration.
GoDaddy MCP Server
A production-ready Model Context Protocol (MCP) server for comprehensive GoDaddy API integration. This server enables AI assistants to manage domain portfolios, DNS records, SSL certificates, and perform bulk operations through a standardized interface.
Features
Core Capabilities
- Domain Management: Register, renew, transfer, and manage domains
- DNS Management: Full CRUD operations for all DNS record types (A, AAAA, CNAME, MX, TXT, NS, SOA, SRV, CAA)
- SSL Certificates: Create, renew, reissue, and revoke SSL certificates
- Bulk Operations: Handle large portfolios with 1000+ domains efficiently
- Portfolio Analytics: Comprehensive analysis and reporting tools
- DNSSEC Support: Enable and manage DNSSEC for enhanced security
Enterprise Features
- Multi-transport Support: stdio, HTTP, and Server-Sent Events (SSE)
- Multi-tier Caching: In-memory LRU + Redis for optimal performance
- Rate Limiting: Configurable limits with token bucket algorithm
- Audit Logging: Complete activity tracking for compliance
- Health Monitoring: Liveness, readiness, and metrics endpoints
- Prometheus Metrics: Production-ready observability
Installation
Prerequisites
- Node.js 18+
- npm or yarn
- GoDaddy API credentials (API Key and Secret)
- Redis (optional, for distributed caching)
Quick Start
- Clone the repository:
cd /home/mh-ai-dev/projects-main/godaddy-mcp-server
- Install dependencies:
npm install
- Configure environment:
cp .env.example .env
# Edit .env with your GoDaddy API credentials
- Build the server:
npm run build
- Start the server:
npm start
Configuration
Environment Variables
# GoDaddy API Configuration
GODADDY_API_KEY=your_api_key_here
GODADDY_API_SECRET=your_api_secret_here
GODADDY_API_BASE_URL=https://api.godaddy.com
GODADDY_OTE_MODE=false # Set to true for test environment
# Server Configuration
MCP_SERVER_PORT=3000
MCP_TRANSPORT=stdio # Options: stdio, http, sse
MCP_LOG_LEVEL=info
# Redis Configuration (optional)
REDIS_HOST=localhost
REDIS_PORT=6379
REDIS_PASSWORD=
REDIS_DB=0
# Rate Limiting
RATE_LIMIT_REQUESTS_PER_MINUTE=60
RATE_LIMIT_BURST_SIZE=10
# Cache Configuration
CACHE_TTL_SECONDS=300
CACHE_MAX_SIZE=1000
# Monitoring
ENABLE_HEALTH_CHECK=true
HEALTH_CHECK_PORT=3001
ENABLE_METRICS=true
METRICS_PORT=3002
Usage
With Claude Desktop
- Add to Claude Desktop configuration (
~/Library/Application Support/Claude/claude_desktop_config.json
):
{
"mcpServers": {
"godaddy": {
"command": "node",
"args": ["/home/mh-ai-dev/projects-main/godaddy-mcp-server/dist/index.js"],
"env": {
"GODADDY_API_KEY": "your_key",
"GODADDY_API_SECRET": "your_secret"
}
}
}
}
- Restart Claude Desktop
Available Tools
Domain Management
list_domains
- List all domains with filteringget_domain
- Get domain detailscheck_availability
- Check if domain is availableget_domain_suggestions
- Get domain name suggestionspurchase_domain
- Register a new domainrenew_domain
- Renew existing domaindelete_domain
- Delete a domainupdate_domain_privacy
- Enable/disable WHOIS privacyupdate_domain_contacts
- Update contact information
DNS Management
list_dns_records
- List DNS recordsadd_dns_records
- Add new DNS recordsreplace_dns_records
- Replace all DNS recordsupdate_dns_record
- Update specific recorddelete_dns_record
- Delete specific recordsetup_email_records
- Configure email DNS (MX, SPF, DKIM, DMARC)get_dnssec
- Get DNSSEC informationenable_dnssec
- Enable DNSSECdisable_dnssec
- Disable DNSSEC
SSL Certificates
list_certificates
- List all certificatesget_certificate
- Get certificate detailscreate_certificate
- Create new certificatereissue_certificate
- Reissue certificaterevoke_certificate
- Revoke certificaterenew_certificate
- Renew certificatecheck_certificate_expiry
- Check expiring certificates
Bulk Operations
bulk_check_availability
- Check multiple domainsbulk_update_dns
- Update DNS for multiple domainsbulk_renew_domains
- Renew multiple domainsbulk_update_privacy
- Update privacy for multiple domainsportfolio_analysis
- Analyze entire portfolioexport_portfolio
- Export portfolio data
Example Usage
// Check domain availability
{
"tool": "check_availability",
"arguments": {
"domain": "example.com"
}
}
// Add DNS records
{
"tool": "add_dns_records",
"arguments": {
"domain": "example.com",
"records": [
{
"type": "A",
"name": "@",
"data": "192.168.1.1",
"ttl": 3600
},
{
"type": "MX",
"name": "@",
"data": "mail.example.com",
"priority": 10,
"ttl": 3600
}
]
}
}
// Bulk check availability
{
"tool": "bulk_check_availability",
"arguments": {
"domains": [
"example1.com",
"example2.net",
"example3.org"
]
}
}
Monitoring
Health Check
curl http://localhost:3001/health
Metrics
# JSON format
curl http://localhost:3002/metrics
# Prometheus format
curl http://localhost:3002/metrics/prometheus
Audit Logs
Audit logs are written to ./logs/audit.log
by default.
Docker Deployment
Build Image
npm run docker:build
Run Container
npm run docker:run
Docker Compose
version: '3.8'
services:
godaddy-mcp:
build: .
ports:
- "3000:3000"
- "3001:3001"
- "3002:3002"
environment:
- GODADDY_API_KEY=${GODADDY_API_KEY}
- GODADDY_API_SECRET=${GODADDY_API_SECRET}
- REDIS_HOST=redis
depends_on:
- redis
redis:
image: redis:alpine
ports:
- "6379:6379"
Development
Running in Development
npm run dev
Running Tests
npm test
Linting
npm run lint
Type Checking
npx tsc --noEmit
Architecture
Component Overview
godaddy-mcp-server/
āāā src/
ā āāā index.ts # Entry point
ā āāā server.ts # Main MCP server
ā āāā config/ # Configuration management
ā āāā clients/ # GoDaddy API client
ā āāā tools/ # MCP tool implementations
ā āāā resources/ # MCP resource providers
ā āāā prompts/ # MCP prompt templates
ā āāā cache/ # Caching layer
ā āāā transport/ # Transport implementations
ā āāā monitoring/ # Health and metrics
ā āāā utils/ # Utilities
Request Flow
- MCP client sends JSON-RPC request
- Transport layer receives and validates
- Rate limiter checks request limits
- Cache checks for cached response
- Tool/Resource handler processes request
- GoDaddy API client makes API calls
- Response cached if applicable
- Audit logger records activity
- Response sent back to client
Security
Best Practices
- Store API credentials in environment variables
- Enable audit logging for compliance
- Use WHOIS privacy protection
- Enable domain lock for transfer protection
- Implement rate limiting to prevent abuse
- Regular security audits of domain configurations
- Enable DNSSEC where supported
API Key Security
- Never commit API keys to version control
- Rotate keys regularly
- Use separate keys for production/development
- Monitor API usage for anomalies
Troubleshooting
Common Issues
Connection Errors
- Verify API credentials are correct
- Check network connectivity
- Ensure GoDaddy API is accessible
- Review rate limit settings
DNS Issues
- Allow 24-48 hours for full propagation
- Verify nameserver configuration
- Check TTL values
- Validate record syntax
Cache Issues
- Clear cache if seeing stale data
- Check Redis connection if using
- Review cache TTL settings
Debug Mode
Enable debug logging:
MCP_LOG_LEVEL=debug npm start
Support
Resources
Contributing
Contributions are welcome! Please read our contributing guidelines and submit pull requests.
License
MIT License - see LICENSE file for details
Acknowledgments
Built with the Model Context Protocol SDK and designed for production use with Claude and other MCP-compatible AI assistants.