The full upstream README, mirrored here for reference. Install config, tool schemas, adoption signals, and an original overview live on the Thatmgmt MCP listing page.
An MCP (Model Context Protocol) server that wraps the ThatMgmt domain API. An AI agent in Cursor, Claude Code, or Replit can check availability, get name suggestions, lock a price quote, and prepare a registration, all without touching a dashboard.
Base API: https://api.thatmgmt.com Spec: https://thatmgmt.com/openapi.json (47 routes) Machine docs: https://thatmgmt.com/llms-full.txt
The public reads need no key and no account. Run the published package with zero install: npx -y @thatmgmt/mcp. Or clone and run:
Then in your MCP client, call tmgmt_capabilities to see the public
surface, domains_check_availability to check a name, and
domains_get_quote for the locked price: wholesale plus the itemized 1%
platform cut, printed plainly. Example quote for a 1-year .com:
$12.99 wholesale + $0.13 cut = $13.12 total.
Prereqs: Node 18+.
The key is only needed for tenant tools: name suggestions, portfolio views, the dry-run planner, and prepare-registration. Everything else works without it.
Add to your MCP client config (Claude Code / Cursor):
Verify:
Optional: TMGMT_BASE_URL overrides the API base (default https://api.thatmgmt.com).
TMGMT_TIMEOUT_MS overrides the per-request timeout in milliseconds (default
30000). Transient failures (network errors, timeouts, 429s, retryable 5xx)
are retried once on side-effect-free calls; the server never retries anything
that could move money.
Spend-effect actions never execute blindly. The intended flow, written into every tool description so agents show the human the price first:
domains_get_quote. It returns the locked price:
wholesaleCents, the itemized 1% cut (platformCutCents,
platformCutBasisPoints), and totalCents. No key needed. Show this to
the human.domains_prepare_registration (needs TMGMT_API_KEY).
It returns the safety-checked plan. It never executes anything.Pricing: no subscription. A flat 1% cut applies to spend-effect actions only. Checkout options (crypto via Privy, or card/bank fallback) are arranged outside this server.
The ThatMgmt API exposes no execute endpoints. Purchase, renewal, transfer, and DNS changes are never executed by the API; the API returns validated plans and preflights instead. This server therefore cannot register, renew, or transfer a domain, and it will never claim it did.
src/approval.js holds the approval gate that future execute tools will
use: quote id passed back plus an explicit approved: true flag, or the
call is refused. The gate is implemented and tested now so the safety
design is ready the day execute routes exist.
Current release: 0.2.1 (read-only public tools plus validated plans). Execute tools are planned for the 0.3.0 release.
| Tool | What it does | API route | Key needed |
|---|---|---|---|
tmgmt_health | Liveness check | GET /health/live | No |
tmgmt_capabilities | Discover the public no-auth surface | GET /v1/public/capabilities | No |
domains_check_availability | Check if a domain is available | GET /v1/public/availability | No |
domains_get_quote | Locked price quote: wholesale + itemized 1% cut + total (step 1) | GET /v1/public/quote | No |
domains_suggest | Suggest alternative names | GET /v1/domains/suggestions | Yes |
domains_prepare_registration | Safety-checked plan, never executes (step 2) | GET /v1/domains/prepare-registration | Yes |
domains_list | List portfolio domains | GET /v1/domains | Yes |
domains_dns | Inspect DNS records for a domain | GET /v1/domains/{resourceId}/dns | Yes |
portfolio_health | Portfolio health summary | GET /v1/portfolio/health | Yes |
portfolio_renewal_risk | Renewal-risk view | GET /v1/portfolio/renewal-risk | Yes |
portfolio_exceptions | Prioritized exception queue | GET /v1/portfolio/exceptions | Yes |
orders_dry_run | Full order plan with itemized pricing, never moves money | POST /v1/orders/dry-run | Yes |
offerings | Offering coverage matrix | GET /v1/offerings | Yes |
Public tools never send an Authorization header and never ask for a key.
Tenant tools return 401 without a key; the server tells you to set
TMGMT_API_KEY. The key is sent as a Bearer token and is never logged.
skills/thatmgmt/SKILL.md is the agent skill for this server: when to use
it, the tool list, and the two-step purchase flow. Point your agent at it
for the fastest start.
server.json is the manifest for the official MCP registry
(io.github.Thingscorp/thatmgmt-mcp). Releases are automated: pushing a
version tag (e.g. v0.2.1) triggers the Publish to npm workflow
(npm publish via the NPM_TOKEN secret) and the Publish to MCP
Registry** workflow (validates server.json, publishes via GitHub OIDC).
Release flow: bump version in package.json (keep the mcpName
field — io.github.Thingscorp/thatmgmt-mcp), push to main, then
create the tag/release. The tag must match package.json; the registry
validates the published npm metadata, so ship a new version for new fields.