@hofmeister/godaddy-mcp
@hofmeister/godaddy-mcp
Model Context Protocol (MCP) server for the GoDaddy Domains API. Exposes domain listing, DNS management, availability search, and domain registration as MCP tools — for use with Claude Desktop, opencode, Cursor, or any other MCP client.
Published to GitHub Packages.
Features
Tool | What it does |
| List domains owned by the account (status, expiration, auto-renew, privacy, transfer lock). Filters by status, lifecycle group, expiration date, and update time, with cursor pagination. |
| Full detail for one domain, including |
| Renew a domain for 1–10 years (v1 API). Charges the account. |
| DNS records for a zone, filterable by type and name; returns the |
| Add an A/AAAA/CNAME/MX/TXT/NS/SRV/CAA record. |
| Fully replace a record by |
| Delete a record by |
| Availability + per-term pricing for one or many domains (cached |
| Available-name suggestions from a keyword query. |
| Lock a registration price ( |
| Execute a quote with consent. Charges the account. Polls until the registration completes. |
| Replace the authoritative nameservers (2–13). Polls the registry operation. |
Registration is deliberately two-step: get_registration_quote returns the price and the legal agreements to review, and register_domain only runs with the quoteToken and accepted agreementTypes from that quote.
Prerequisites
Node.js 20+
A GoDaddy account (read operations work on any account; registration/renewal additionally need a payment method on file and a complete registrant contact)
A Personal Access Token (PAT) — see below
How to get a GoDaddy PAT
Sign in at GoDaddy, then open the Personal Access Token dashboard (you can also get there from the GoDaddy dashboard via Developer Tools → API Tokens, or by visiting the developer docs).
Click Create token (or the equivalent "New token" button), give it a name (e.g.
mcp-server), and set an expiry if you like (optional).Select the scopes the server needs:
Scope
Required for
domains.domain:readlist_domains,get_domain,list_dns_records,check_domain_availability,suggest_domainsdomains.dns:updateadd_dns_record,update_dns_record,delete_dns_recorddomains.domain:createget_registration_quote,register_domaindomains.nameserver:updateset_nameserversGranting all four is fine — the server only calls what you ask it to.
Create the token and copy it immediately — GoDaddy shows it only once.
Put it somewhere safe. It is a secret, like a password: it gives whoever holds it programmatic control of your domains.
Account profile gotcha: registration quotes resolve the registrant contact from your account profile. If any contact field (e.g. the city name) contains non-ASCII characters, GoDaddy rejects quotes with
422 VALIDATION_ERROR— make the fields plain ASCII.
Legacy API key/secret (sso-key) pairs are not supported. They are deprecated, cannot access the v3 registration/availability APIs, and the API will drop them.
Installation
The repository is public, so no GitHub tokens are needed — npx clones, builds, and runs the server for you:
npx -y github:hofmeister/godaddy-mcpThe first run takes about a minute (clone + npm install + build); afterwards npx serves it from its cache (~/.npm/_npx) and starts in seconds. GODADDY_PAT (see Setup) is the only secret involved.
Pin a version:
npx -y github:hofmeister/godaddy-mcp#v0.1.0(once release tags exist).Stale cache: npx caches git dependencies; if an update doesn't show up, run
npm cache clean --forceor use the pinned tag.
Alternatives
From source (development):
git clone https://github.com/hofmeister/godaddy-mcp, thennpm install && npm run build— the entry point isdist/index.js.GitHub Packages: after the first release,
@hofmeister/godaddy-mcpis available on GitHub Packages. It requires a read-only GitHub token in.npmrc(a GitHub-registry requirement, not a repository one), so prefer npx.
Setup
export GODADDY_PAT="your-personal-access-token"Environment variables:
Variable | Required | Description |
| yes | GoDaddy Personal Access Token (Bearer). |
| no | API base URL override (default |
If GODADDY_PAT is missing, the server still starts; tool calls return a clear error telling you to set it.
Verify without an MCP client
Both commands run in a source checkout:
GODADDY_PAT=... npm run smoke # read-only API smoke test
npm test # unit tests (no network, no credentials needed)MCP client configuration
The server speaks MCP over stdio; each client launches it with npx -y github:hofmeister/godaddy-mcp, which handles installing and building automatically. The first launch takes about a minute while npx fetches the repository — that is normal, do not kill the client.
Claude Desktop (claude_desktop_config.json)
{
"mcpServers": {
"godaddy": {
"command": "npx",
"args": ["-y", "github:hofmeister/godaddy-mcp"],
"env": {
"GODADDY_PAT": "your-personal-access-token"
}
}
}
}opencode (opencode.json)
{
"mcp": {
"godaddy": {
"type": "local",
"command": ["npx", "-y", "github:hofmeister/godaddy-mcp"],
"enabled": true,
"environment": {
"GODADDY_PAT": "your-personal-access-token"
}
}
}
}Cursor (.cursor/mcp.json)
{
"mcpServers": {
"godaddy": {
"command": "npx",
"args": ["-y", "github:hofmeister/godaddy-mcp"],
"env": { "GODADDY_PAT": "your-personal-access-token" }
}
}
}PATH note: desktop apps inherit a minimal PATH. If the client cannot find
npx(e.g. Node is managed by nvm), use its absolute path ascommand(such as/opt/homebrew/bin/npx) — or fall back tonodewith the absolute path todist/index.jsfrom a source install.
Security note: the PAT grants programmatic control of your domains. Store it in the MCP client's env config (or a secrets manager), never in files that get committed.
Development
npm install # dependencies
npm run build # compile to dist/
npm test # vitest unit tests (mocked API, no credentials needed)
npm run dev # run the server from source via tsx
npm run smoke # read-only live API check (needs GODADDY_PAT)Releasing
Releases are cut by the Release workflow (.github/workflows/release.yml), which publishes to GitHub Packages and cuts a GitHub Release in one go.
Triggering a release: run the Release workflow from the Actions tab and pick patch, minor, or major. It works off master: the tests run first, then the new version is written to package.json, committed and tagged (vX.Y.Z), and the package is published from that commit. The version counts up from the newest vX.Y.Z tag; with no tags yet, the version already in package.json is released as it stands and the choice is ignored.
Pushing a tag vX.Y.Z that matches the version in package.json also releases the commit the tag points at.
The versioning logic lives in scripts/version.mjs (no dependencies, unit-testable):
node scripts/version.mjs --bump patch # print the next version
node scripts/version.mjs --bump minor --write # and write it to package.jsonError handling
All GoDaddy API errors are surfaced to the LLM with the HTTP status, the GoDaddy code, and per-field details (e.g. 422 QUOTE_MISMATCH, 409 dns_record_not_mutable on GoDaddy-managed SOA/NS records), so agents can correct themselves. Rate limits (429) report the Retry-After seconds.
Notes & limits
Prices are returned by GoDaddy in cents and are converted to whole currency units in tool output.
register_domainwaits up to ~90s for the async registration to reach a terminal state; if it's still executing it reportsEXECUTING— verify later withget_domain.GoDaddy rate limits API calls per credential (60 requests/minute); avoid hammering the API from tools.
The legacy key/secret (
sso-key) credentials are not supported: they are deprecated and cannot access the v3 registration/availability APIs.
This project was written by Amber — a model by 2ba.ai.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/hofmeister/godaddy-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server