godaddy-mcp-server

miltonvve/godaddy-mcp-server

3.2

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.

Tools
5
Resources
0
Prompts
0

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

  1. Clone the repository:
cd /home/mh-ai-dev/projects-main/godaddy-mcp-server
  1. Install dependencies:
npm install
  1. Configure environment:
cp .env.example .env
# Edit .env with your GoDaddy API credentials
  1. Build the server:
npm run build
  1. 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

  1. 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"
      }
    }
  }
}
  1. Restart Claude Desktop

Available Tools

Domain Management
  • list_domains - List all domains with filtering
  • get_domain - Get domain details
  • check_availability - Check if domain is available
  • get_domain_suggestions - Get domain name suggestions
  • purchase_domain - Register a new domain
  • renew_domain - Renew existing domain
  • delete_domain - Delete a domain
  • update_domain_privacy - Enable/disable WHOIS privacy
  • update_domain_contacts - Update contact information
DNS Management
  • list_dns_records - List DNS records
  • add_dns_records - Add new DNS records
  • replace_dns_records - Replace all DNS records
  • update_dns_record - Update specific record
  • delete_dns_record - Delete specific record
  • setup_email_records - Configure email DNS (MX, SPF, DKIM, DMARC)
  • get_dnssec - Get DNSSEC information
  • enable_dnssec - Enable DNSSEC
  • disable_dnssec - Disable DNSSEC
SSL Certificates
  • list_certificates - List all certificates
  • get_certificate - Get certificate details
  • create_certificate - Create new certificate
  • reissue_certificate - Reissue certificate
  • revoke_certificate - Revoke certificate
  • renew_certificate - Renew certificate
  • check_certificate_expiry - Check expiring certificates
Bulk Operations
  • bulk_check_availability - Check multiple domains
  • bulk_update_dns - Update DNS for multiple domains
  • bulk_renew_domains - Renew multiple domains
  • bulk_update_privacy - Update privacy for multiple domains
  • portfolio_analysis - Analyze entire portfolio
  • export_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

  1. MCP client sends JSON-RPC request
  2. Transport layer receives and validates
  3. Rate limiter checks request limits
  4. Cache checks for cached response
  5. Tool/Resource handler processes request
  6. GoDaddy API client makes API calls
  7. Response cached if applicable
  8. Audit logger records activity
  9. 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.