MCP Hub
Back to servers

@themkn/gandi-mcp

Validation Failed

MCP server for Gandi LiveDNS — manage DNS records, domains, and zone snapshots from Claude Code or any MCP client.

npm75/wk
Stars
3
Updated
Apr 27, 2026
Validated
May 6, 2026

Validation Error:

Process exited with code 1. stderr: npm warn EBADENGINE Unsupported engine { npm warn EBADENGINE package: '@themkn/gandi-mcp@0.1.0', npm warn EBADENGINE required: { node: '>=24' }, npm warn EBADENGINE current: { node: 'v20.20.2', npm: '10.8.2' } npm warn EBADENGINE } gandi-mcp: Config not found at /home/runner/.gandi-mcp/config.json. Create it with mode 0600, e.g. mkdir -p ~/.gandi-mcp && chmod 700 ~/.gandi-mcp echo '{"apiKey":"...","defaultDomain":"example.com"}' > /home/runner/.gandi-mcp/config.json chmod 600 /home/r

Quick Install

npx -y @themkn/gandi-mcp

gandi-mcp — Gandi LiveDNS MCP Server

npm license

An MCP server for Gandi LiveDNS. Manage DNS records, list domains, and take zone snapshots — directly from Claude Code or any MCP-compatible client.

What this gives you

  • 8 MCP tools: list_domains, list_records, get_record, add_record, update_record, delete_record, list_snapshots, create_snapshot
  • Safety by default: every add/update/delete writes a timestamped local JSON backup of the full zone before mutating. Configurable.
  • One-JSON config: no env vars, one file with strict 0600 perms

Prerequisites

  • A Gandi account
  • Node.js 24+

Get a Gandi Personal Access Token

Gandi replaced legacy API keys with Personal Access Tokens (PATs). To create one for gandi-mcp:

  1. Sign in at admin.gandi.net.
  2. Top-right menu → User settingsAuthentication options (or visit account.gandi.net/security).
  3. Under Personal Access Tokens, click Create a token.
  4. Give it a name (e.g. gandi-mcp) and pick an expiration (max 1 year — Gandi will email you when it nears expiry).
  5. Scope — which domains: pick Specific organizations or Specific domains and select the ones you want this MCP to manage. Don't grant access to the whole account if you don't need it.
  6. Permissions: the only one you need for DNS is "Manage domain technical configurations" (covers LiveDNS read + write). Leave everything else (billing, organizations, transfers, etc.) unchecked.
  7. Click Create. Copy the token immediately — Gandi only shows it once. If you miss it, delete and create a new one.

That token is your apiKey value in the config below.

Install

npm install -g @themkn/gandi-mcp

The binary is gandi-mcp regardless of the scoped package name.

Configure

The server reads a JSON config from ~/.gandi-mcp/config.json. Create it with 0600:

mkdir -p ~/.gandi-mcp
chmod 700 ~/.gandi-mcp
cat > ~/.gandi-mcp/config.json <<'EOF'
{
  "apiKey": "YOUR_GANDI_PAT",
  "defaultDomain": "example.com"
}
EOF
chmod 600 ~/.gandi-mcp/config.json

Full config reference

FieldRequiredDefaultDescription
apiKeyyesYour Gandi Personal Access Token
defaultDomainnononeUsed when a tool call omits domain
autoBackupnotrueWrite local zone backup before each mutation
backupDirno~/.gandi-mcp/backupsWhere backup files land

The server refuses to start if the config file is group- or world-readable.

Hook into Claude Code

Add this to your .mcp.json (project-scoped) or ~/.config/claude/mcp.json (global):

{
  "mcpServers": {
    "gandi": {
      "command": "gandi-mcp"
    }
  }
}

Auto-approve tools

By default Claude Code prompts on every tool call. To allow all gandi-mcp tools without prompting, add to ~/.claude/settings.json:

{
  "permissions": {
    "allow": ["mcp__gandi__*"]
  }
}

Tool reference

ToolWhat it does
list_domainsList all domains on your Gandi account
list_recordsList records for a domain, with optional type and nameFilter (anchored, case-insensitive glob — * = any, ? = one)
get_recordFetch a single record by name + type
add_recordAdd a new record; auto-backup runs first
update_recordReplace values/TTL on an existing record; auto-backup runs first
delete_recordDelete a record; auto-backup runs first
list_snapshotsList Gandi server-side zone snapshots
create_snapshotCreate a server-side zone snapshot on Gandi

Mutation tools return the local backup path in their response — reference it if you need to roll back manually.

Backups

Each mutation writes ~/.gandi-mcp/backups/<domain>-<timestamp>.json:

{
  "domain": "example.com",
  "date": "2026-04-24T11:47:03.123Z",
  "records": [ /* full zone */ ]
}

Format matches the gandi CLI's backup shape. Disable via "autoBackup": false in config.

Development

git clone git@github.com:themkn/gandi-mcp.git
cd gandi-mcp
pnpm install
pnpm test
pnpm build

License

MIT

Reviews

No reviews yet

Sign in to write a review