Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Gandi MCP ServerShow me all the DNS records for my domain example.com"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Gandi MCP Server
A comprehensive Model Context Protocol (MCP) server for managing Gandi domains and DNS records via the Gandi API v5. This server enables AI assistants like Claude to manage domains and LiveDNS records directly through Gandi's API.
Features
🌐 Domain Management
List Domains: View all domains in your account
Domain Details: Get comprehensive domain information
Domain Check: Check domain availability for registration
Contact Management: List domain contacts
📝 LiveDNS Management
DNS Records: Full CRUD operations for DNS records
Record Types: Support for A, AAAA, CNAME, MX, NS, PTR, SRV, TXT, CAA
Smart Filtering: Filter records by type or name
TTL Control: Manage record time-to-live settings
🛡️ Security & Reliability
Secure Authentication: Environment-based API token management
Error Handling: Comprehensive error handling with clear messages
Type Safety: Full TypeScript support with proper type definitions
Quick Start
Run the server directly with npx (requires Node.js 18+):
Or install locally:
Environment Variables
Create a .env file in your working directory:
Variable | Required | Description |
| ✅ | Your Gandi API token with domain and LiveDNS permissions |
Getting Your Gandi API Token
Log in to Gandi Dashboard
Go to Organizations > [Your Organization] > Billing & Cards
Click on Account Settings > Security
In the API Keys section, click Generate API keys
Create a new API key with:
Domain: See and edit permissions
LiveDNS: See and edit permissions
Billing: See permission (optional, for domain pricing)
MCP Client Configuration
Claude Desktop
Add this to your Claude Desktop configuration:
Other MCP Clients
Use the command npx @artik0din/mcp-gandi with the appropriate environment variables set.
Available Tools
Domain Management Tools
gandi_domains_list
List all domains in your Gandi account.
Parameters: None
Example:
gandi_domains_get
Get detailed information about a specific domain.
Parameters:
domain(string, required): Domain name (e.g., example.com)
Example:
gandi_domains_check
Check if a domain name is available for registration.
Parameters:
domain(string, required): Domain name to check
Example:
gandi_domains_contacts
List contacts associated with a domain.
Parameters:
domain(string, required): Domain name
Example:
DNS Management Tools
gandi_dns_records_list
List all DNS records for a domain.
Parameters:
domain(string, required): Domain nametype(string, optional): Filter by record type (A, AAAA, CNAME, MX, NS, PTR, SRV, TXT, CAA)
Example:
gandi_dns_record_get
Get a specific DNS record by name and type.
Parameters:
domain(string, required): Domain namename(string, required): Record name (e.g., www, @, subdomain)type(string, required): Record type
Example:
gandi_dns_record_create
Create a new DNS record.
Parameters:
domain(string, required): Domain namename(string, required): Record name (e.g., www, @, subdomain)type(string, required): Record type (A, AAAA, CNAME, MX, NS, PTR, SRV, TXT, CAA)values(array, required): Record values (IP addresses, hostnames, text content)ttl(number, optional): TTL in seconds (300-2592000, defaults to 300)
Example:
gandi_dns_record_update
Update an existing DNS record.
Parameters:
domain(string, required): Domain namename(string, required): Record nametype(string, required): Record typevalues(array, required): New record valuesttl(number, optional): New TTL in seconds
Example:
gandi_dns_record_delete
Delete a DNS record.
Parameters:
domain(string, required): Domain namename(string, required): Record nametype(string, required): Record type
Example:
DNS Record Types
The server supports all standard DNS record types:
A: IPv4 address records
AAAA: IPv6 address records
CNAME: Canonical name records (aliases)
MX: Mail exchange records
NS: Name server records
PTR: Pointer records (reverse DNS)
SRV: Service records
TXT: Text records (SPF, DKIM, verification, etc.)
CAA: Certification Authority Authorization records
Security Considerations
API Token Security: Never commit your API token to version control
Minimal Permissions: Use API tokens with only the required permissions
Regular Rotation: Rotate API tokens regularly for security
Environment Variables: Always use environment variables for credentials
Domain Safety: Be careful when deleting DNS records in production
Error Handling
The server provides clear error messages for common scenarios:
Invalid API token: Check your token and permissions
Domain not found: Verify domain ownership and spelling
Record not found: Check record name, type, and domain
Rate limiting: Gandi API has rate limits; the server will indicate if you hit them
Invalid record data: Validation errors for malformed DNS records
Development
API Compatibility
This server is compatible with Gandi API v5. It uses:
Domain API: For domain management operations
LiveDNS API: For DNS record management
License
MIT License - see LICENSE file for details.
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
Credits
Built with: