thatmgmt-mcp
The server provides read-only domain management and purchase planning tools for the ThatMgmt API, including public availability checks, price quotes, and tenant portfolio insights, but never executes purchases.
Check API health and discover public capabilities (
tmgmt_health,tmgmt_capabilities).Check domain availability (
domains_check_availability).Get locked price quotes for domain registration (
domains_get_quote), the first step of the two-step purchase flow.Prepare (not execute) a registration plan (
domains_prepare_registration), step two of the flow.Suggest alternative domain names (
domains_suggest, requires API key).List and inspect tenant portfolio domains and DNS records (
domains_list,domains_dns).Get portfolio health, renewal risk, and exception queues (
portfolio_health,portfolio_renewal_risk,portfolio_exceptions).View reseller offering coverage matrix (
offerings).All tools are read-only or plan‑only; no purchases, renewals, transfers, or DNS changes are executed.
Click on "Deploy 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., "@thatmgmt-mcpIs example.com available? If not, suggest alternatives."
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.
thatmgmt-mcp
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
Try it with zero signup (no API key)
The public reads need no key and no account. Clone and run:
git clone https://github.com/thingscorp/thatmgmt-mcp.git thatmgmt-mcp
cd thatmgmt-mcp
npm install
node src/index.js(Once @thatmgmt/mcp is published on npm, npx -y @thatmgmt/mcp will run
it with zero install.)
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.
Related MCP server: Domain Checker MCP Server
Setup with an API key (tenant tools)
Prereqs: Node 18+.
git clone https://github.com/thingscorp/thatmgmt-mcp.git thatmgmt-mcp
cd thatmgmt-mcp
npm install
export TMGMT_API_KEY="your-thatmgmt-api-key"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):
{
"mcpServers": {
"thatmgmt": {
"command": "node",
"args": ["/path/to/thatmgmt-mcp/src/index.js"],
"env": { "TMGMT_API_KEY": "your-thatmgmt-api-key" }
}
}
}Verify:
npm testOptional: 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.
The two-step purchase flow
Spend-effect actions never execute blindly. The intended flow, written into every tool description so agents show the human the price first:
Quote. Call
domains_get_quote. It returns the locked price:wholesaleCents, the itemized 1% cut (platformCutCents,platformCutBasisPoints), andtotalCents. No key needed. Show this to the human.Plan. Call
domains_prepare_registration(needsTMGMT_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.
Important: what this server cannot do
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.0 (read-only public tools plus validated plans). Execute tools are planned for the 0.3.0 release.
Tools
Tool | What it does | API route | Key needed |
| Liveness check |
| No |
| Discover the public no-auth surface |
| No |
| Check if a domain is available |
| No |
| Locked price quote: wholesale + itemized 1% cut + total (step 1) |
| No |
| Suggest alternative names |
| Yes |
| Safety-checked plan, never executes (step 2) |
| Yes |
| List portfolio domains |
| Yes |
| Inspect DNS records for a domain |
| Yes |
| Portfolio health summary |
| Yes |
| Renewal-risk view |
| Yes |
| Prioritized exception queue |
| Yes |
| Full order plan with itemized pricing, never moves money |
| Yes |
| Offering coverage matrix |
| 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.
Agent skill
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.
Development
npm test # 47 tests, mocked HTTP, no live callsRegistry
server.json is the manifest for the official MCP registry
(io.github.thingscorp/thatmgmt-mcp). It is published automatically by the
publish-mcp GitHub Actions workflow when a version tag (e.g. v0.2.0) is
pushed; the workflow validates the manifest against the registry schema and
authenticates the namespace via GitHub OIDC, so no manual login is needed.
Prerequisite the workflow cannot do itself: the @thatmgmt/mcp
npm package must exist on the public npm registry before the first publish,
since the manifest references it. Publish it once with npm publish
(requires npm access for the @thatmgmt scope), then push the version tag.
Available Tools
13 toolsdomains_check_availabilityA
Check whether a domain name is available to register. Read-only, no API key needed: this uses the public endpoint, so any agent can try it with zero signup. Pass the fully qualified domain name, e.g. "example.com".
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | Fully qualified domain name, e.g. example.com |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and it does disclose meaningful traits: read-only operation, no API key requirement, and use of a public endpoint. It omits rate limits, behavior on malformed input, and whether results are cached, so it is solid but not exhaustive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core action and three tight sentences. The final sentence largely duplicates the schema's own example, which is mild redundancy rather than a structural flaw.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter, annotation-free tool with no output schema, the description covers the essential invocation facts. The one remaining gap is the shape of the result (availability boolean vs. richer status), which an agent must infer.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the description only restates the schema's example ('example.com') without adding format, TLD, or normalization details. Baseline 3 applies when the schema already documents the single parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('check whether a domain name is available to register'), which implicitly separates it from pricing/registration siblings like domains_get_quote and domains_prepare_registration. It does not explicitly name a sibling it is not, so it falls short of the 5 bar.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It tells the agent it can call this with zero signup, which sets the context, but gives no explicit when/when-not guidance or routing to alternatives (e.g., price lookup after availability, or domains_suggest for generating candidates). Usage is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
domains_dnsA
Inspect DNS records for a domain resource. Read-only; use the resource id from domains_list. Optionally filter by record type (A, CNAME, ...) or name.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Record name filter | |
| type | No | Record type filter, e.g. A, CNAME | |
| resourceId | Yes | Server-side domain resource id |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure, and it does so by stating 'Read-only' upfront. It also explains the dependency on a prior domains_list call and optional filtering. It does not mention error behavior or response format, but for a read-only inspection tool the safety profile is adequately disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no filler. The first sentence states purpose and read-only behavior; the second gives the prerequisite and optional filters. Every clause earns its place and the critical information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers what the tool does, the required input source, and the optional filters. Without an output schema, it does not explicitly describe the return value, but 'Inspect DNS records' sufficiently implies a list of DNS records. Minor missing details like whether results are paginated or include TTL values are not critical for calling this simple tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds value beyond the schema by telling the agent that the resourceId should come from domains_list and giving concrete examples of record types (A, CNAME). This enriches parameter understanding without just repeating schema labels.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Inspect' with the resource 'DNS records' and the target 'domain resource', which clearly distinguishes it from siblings like domains_list, domains_check_availability, or domains_get_quote. It also immediately signals the read-only nature, leaving no ambiguity about what the tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit usage context: it tells the agent to use the resource id from domains_list and explains optional filters. It does not explicitly name alternatives or exclusions, but given the sibling set, the intended use case is obvious and no other sibling overlaps with DNS record inspection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
domains_get_quoteA
Get the locked price quote for registering a domain: wholesale plus the itemized 1% platform cut, printed plainly as wholesaleCents, platformCutCents, platformCutBasisPoints, and totalCents. Read-only, no API key needed: this uses the public endpoint, so any agent can try it with zero signup. Nothing is purchased.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | Fully qualified domain name, e.g. example.com | |
| period | No | Registration period in years (default 1) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it states read-only, public-endpoint/no-auth, and no-purchase semantics, which are the traits an agent most needs before calling. It does not cover rate limits, error behavior, or quote validity/TTL, which would matter for a 'locked quote'.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the core purpose and the pricing breakdown, then appends the safety guarantees. Slightly dense with enumerated output field names, but every clause carries usable information rather than filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description compensates by naming the exact return fields (wholesaleCents, platformCutCents, platformCutBasisPoints, totalCents) and the 1% platform cut, and it covers the auth/side-effect profile. For a 2-parameter read-only pricing tool, nothing essential is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the domain and period parameters are already documented in the schema (including the 'default 1' note). The description mentions no input parameters at all, adding nothing beyond schema; baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb ('Get') plus precise resource ('locked price quote for registering a domain') and the exact breakdown returned. It is clearly distinguishable from siblings like domains_prepare_registration and domains_check_availability, which do not return pricing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly frames the safe, zero-friction use case ('Read-only, no API key needed... any agent can try it with zero signup') and rules out the feared side effect ('Nothing is purchased'). It stops short of naming a sibling alternative (e.g. when to prefer domains_prepare_registration), so it lacks explicit when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
domains_listB
List domain resources in the tenant portfolio (paginated). Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| pageSize | No | Page size | |
| pageToken | No | Opaque pagination cursor from a previous call |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the behavioral burden. 'Read-only' discloses the safety profile and 'paginated' implies a paging behavior, which is helpful. However, it doesn't describe return structure, ordering, or error behavior, leaving some uncertainty for an agent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with zero filler; front-loads the core action and safety trait. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only list with fully documented optional parameters, the description gives an agent enough to call it correctly. It lacks explicit return-format or default-value details, but that is a minor gap given the tool's low complexity and no output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description's mention of 'paginated' aligns with pageSize/pageToken but adds no semantic detail beyond the schema's own parameter descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description states a clear verb+resource ('List domain resources') and adds scope and pagination information. However, it doesn't explicitly differentiate from sibling tools like domains_check_availability or domains_suggest, so it's clear but not fully distinguishing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to choose this over sibling tools; it doesn't mention alternatives or exclusions. The only contextual hint is 'Read-only', but it doesn't say when a read-only list is preferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
domains_prepare_registrationA
Prepare (never execute) a domain registration: returns the safety-checked plan only. Step 2 of the two-step purchase flow. Show the plan, with the locked total and fee, to the human first. Note: the ThatMgmt API does not expose an execute endpoint for this action (purchase, renewal, transfer, and DNS changes are never executed by the API). This tool returns the validated plan only. Show the locked price to the human first.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | Fully qualified domain name, e.g. example.com | |
| period | No | Registration period in years (default 1) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does so thoroughly. It discloses that the tool never executes the registration, that the API has no execute endpoint, and that purchase/renewal/transfer/DNS changes are never executed. It also reveals the return behavior: a safety-checked/validated plan with locked total and fee.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is somewhat repetitive: 'returns the safety-checked plan only' and 'returns the validated plan only' say the same thing, and 'Show the plan... to the human first' is stated twice. The core message is front-loaded, but several sentences could be merged without losing information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given there is no output schema, the description does a good job of explaining what is returned (a plan with locked total and fee) and the critical non-execution behavior. It could be more specific about the plan's structure or next steps after showing it to the human, but the information is sufficient for safe use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters (domain and period). The description adds no additional parameter-specific meaning, only mentioning the locked total and fee which are output concepts rather than parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb and resource: 'Prepare (never execute) a domain registration: returns the safety-checked plan only.' It explicitly contrasts this tool with an execution step and positions it as 'Step 2 of the two-step purchase flow,' which distinguishes it from sibling tools like domains_get_quote and domains_check_availability.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context by identifying this as Step 2 of the purchase flow and instructs the agent to 'Show the plan... to the human first.' It does not explicitly name alternative tools or state when not to use it, but the non-execution warning and two-step framing make the intended context clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
domains_suggestB
Suggest alternative domain names for a search query. Read-only. Optionally filter by comma-separated TLDs, e.g. "com,io".
| Name | Required | Description | Default |
|---|---|---|---|
| tlds | No | Comma-separated TLD filter, e.g. com,io | |
| query | Yes | Search query, e.g. a brand name | |
| pageSize | No | How many suggestions to return |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the behavioral disclosure burden and does state 'Read-only', which is a meaningful safety signal. However, it does not disclose return format, pagination/default page size, or possible absence of results, leaving the agent to guess at behavior beyond the read-only claim.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, no filler, with the core purpose front-loaded and the modifier (read-only, optional TLD filter) placed after. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 3-parameter read-only tool with no output schema and no annotations, the description covers purpose, safety, and the one non-obvious parameter nuance, but leaves response shape and default behavior unexplained. It is adequate but has clear gaps given the missing output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all three parameters. The description adds marginal value by re-emphasizing the optionality and comma-separated format of tlds, but this largely duplicates the schema's own parameter descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource — 'Suggest alternative domain names for a search query' — which clearly conveys the operation. It implicitly distinguishes from siblings like domains_check_availability and domains_list, though it does not name any sibling explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives such as domains_check_availability or domains_get_quote, nor any exclusions. The only usage hint is the optional TLD filter, which is parameter-level detail rather than tool-selection guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
offeringsA
Reseller offering coverage matrix: every supplier family, its exposed routes, entitlement state, and write-gating. Read-only. Useful to see what this tenant is entitled to.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description bears the full disclosure burden. It does state the read-only nature explicitly, which is the most safety-relevant trait. But it says nothing about return format, response size, pagination, or performance for what could be a large coverage matrix, leaving behavioral expectations incomplete.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences with the core purpose front-loaded in the first sentence. Every clause earns its place, and the read-only plus use-case framing is efficient. Minor redundancy between 'coverage matrix' and listing the fields, but no meaningful waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterless tool with no output schema, the description's job is largely to convey what is returned and why it matters. It covers the return content and the entitlement use case adequately. It could mention the response shape, but given the zero-parameter simplicity, the description is near-complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0 parameters and additionalProperties=false, the schema coverage is 100% and there is nothing for the description to elaborate on parameter meaning. Per baseline, a 0-param tool is scored 4; the description adds value by explaining what the returned data conceptually represents (supplier families, routes, entitlement, write-gating).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the resource (offerings) and the specific content: 'every supplier family, its exposed routes, entitlement state, and write-gating.' It reads as a listing/coverage tool distinct from sibling tools like domains_dns and portfolio_health, which target different domains. The verb is implicit rather than stated ('matrix' implies get/list), which keeps it a half-step shy of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Useful to see what this tenant is entitled to' gives a broad usage context, and the read-only emphasis implies it is safe for inspection purposes. However, there is no explicit when-to-use vs. when-not-to guidance, and no alternative sibling tool is named, so an agent must infer routing from the domain keywords alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
orders_dry_runA
Plan a domain order in one call: register, renew, or transfer. Returns the full plan with itemized pricing (wholesale plus the platform fee as separate lines), the readiness checklist with machine-readable reason codes, what is still gated, and the next steps. The total shown is the locked total your approval binds to. Never moves money and never touches the supplier. For transfers, pass authCodePresent: true to show you hold the authorization code; the API never accepts the raw code. Note: the ThatMgmt API does not expose an execute endpoint for this action (purchase, renewal, transfer, and DNS changes are never executed by the API). This tool returns the validated plan only. Show the locked price to the human first.
| Name | Required | Description | Default |
|---|---|---|---|
| fqdn | Yes | Fully qualified domain name, e.g. example.com | |
| action | Yes | The order action to plan | |
| periodYears | No | Registration/renewal period in years, 1-10 (default 1) | |
| authCodePresent | No | Transfer only: true when you hold the transfer authorization code. The raw code is never sent; the API rejects it. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and delivers: never moves money, never touches the supplier, the total is the locked price approval binds to, and the API exposes no execute endpoint for these actions. This is unusually strong disclosure of side-effect and safety boundaries.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the purpose and return content, then layers safety and next steps. Dense and mostly purposeful, though the 'returns the validated plan only' and 'never executed by the API' points overlap slightly, adding minor redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description fully describes the return payload: itemized pricing lines, readiness checklist with reason codes, gating status, and next steps. An agent has everything needed to call and interpret the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all four parameters. The description reinforces authCodePresent semantics ('raw code is never sent') but adds little syntactic or format detail beyond the schema, which is the expected baseline when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (plan) and resource (domain order) with the three actions it covers (register, renew, transfer). An agent can distinguish this from siblings like domains_get_quote or domains_prepare_registration, since it explicitly frames itself as a full multi-action plan in one call.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear usage context: show the locked price to the human first, and pass authCodePresent:true for transfers. It does not explicitly name when to prefer an alternative sibling (e.g. domains_get_quote) or state exclusions, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
portfolio_exceptionsA
Prioritized operator exception queue derived from portfolio health (expiring certificates, commerce issues). Read-only, GET-only.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It explicitly states 'Read-only, GET-only' which covers safety and method. It also mentions 'Prioritized' indicating ordering behavior. It does not detail response format or error handling, but for a zero-parameter GET tool this is sufficient. No contradictions exist.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, dense sentence that front-loads the purpose and includes the key behavioral trait (read-only). Every word earns its place; no fluff or redundancy. It is exceptionally concise while remaining informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no parameters and no output schema, the description is complete. It explains what the tool returns (an exception queue), how it is derived, and that it is read-only. The agent has enough information to invoke it correctly without further elaboration.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so there is nothing to document. The baseline for 0 params is 4. The description adds no param-specific information, but none is needed. The schema is empty and covered 100% by default, so this dimension is satisfied.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool as a prioritized exception queue derived from portfolio health, and specifies the types of issues (expiring certificates, commerce issues). It also states it is read-only and GET-only, distinguishing it from potential write tools. This is a specific verb-like resource description with clear scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for retrieving exceptions, but does not explicitly state when to use it versus siblings like portfolio_health or portfolio_renewal_risk. No when-not guidance or alternative routing is provided. The derivation from portfolio health gives some context, but the agent must infer the intended use case.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
portfolio_healthA
Domain portfolio health summary for the tenant. Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the disclosure burden. It explicitly states the operation is read-only, which is an important safety-relevant behavioral trait. It does not mention output format or data sources, but for a no-parameter health summary, this is reasonable disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences with no filler or repetition. 'Domain portfolio health summary for the tenant' is front-loaded and the 'Read-only' note is a clear standalone behavioral qualifier.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple and has no parameters, so the description is not wildly incomplete. However, with no output schema and no differentiation from sibling portfolio tools, an agent still does not know what the summary returns or when to prefer this tool over portfolio_renewal_risk or portfolio_exceptions. This leaves meaningful gaps for tool selection.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has no properties and there are zero parameters, so there is nothing for the description to explain. The baseline score of 4 applies because no parameter semantics are needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: it provides a domain portfolio health summary for the tenant. It is specific about the resource and type of information, but it does not explicitly differentiate itself from sibling tools like tmgmt_health, portfolio_renewal_risk, or portfolio_exceptions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance about when to use this tool versus alternatives or when not to use it. An agent gets no context about whether to choose portfolio_health over portfolio_renewal_risk or portfolio_exceptions, so the description leaves usage entirely to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
portfolio_renewal_riskA
Renewal-risk view over the domain portfolio: which domains need attention before they expire. Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden. It explicitly states 'Read-only', which is a useful safety signal, but it does not disclose output format, data source, or freshness. For a zero-parameter view, the read-only declaration is meaningful but minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that conveys purpose and safety without redundancy. Every word contributes meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, read-only view, the description is nearly complete: it tells the agent what the tool does, what it surfaces, and that it is safe. A short note on output shape or sorting would make it fully complete, but nothing essential is missing for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema is empty and there are zero parameters, so the schema fully describes invocation requirements. The description adds no parameter details, but none are needed; baseline 4 applies for zero-parameter tools.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the resource (domain portfolio) and the tool's purpose: surfacing domains at renewal risk before they expire. This semantically distinguishes it from siblings like domains_list or portfolio_health, though it does not explicitly name those alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'which domains need attention before they expire' implies this tool is for pre-expiry renewal triage. However, it does not explicitly say when to prefer this tool over similar siblings like portfolio_health or portfolio_exceptions, nor does it provide exclusion conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tmgmt_capabilitiesA
Discover what you can do without signing up: the machine-readable list of every public no-auth route with its parameters. No API key needed. Start here if you are unsure.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and it does disclose the most important trait: no API key is required, and everything listed is a public no-auth route. It does not clarify return shape, rate limits, or whether the list can change, so behavioral coverage is adequate but incomplete.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core value proposition and padded only with two short supporting fragments ('No API key needed', 'Start here if you are unsure'). Every clause is relevant, though the sentence is slightly fragmented rather than perfectly tight.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no parameters, no annotations, and no output schema, the description supplies enough to call it: what it returns (public no-auth routes with their parameters) and the auth precondition. The absence of any note on response format is minor for a zero-argument discovery endpoint.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline is 4. The description correctly implies it is called with no arguments and needs no auth, and there are no parameters whose meaning could be left ambiguous.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific resource and output: 'the machine-readable list of every public no-auth route with its parameters.' This is clearly a discovery/capabilities tool and is distinguishable from functional siblings like domains_get_quote or orders_dry_run. It stops short of explicitly naming a sibling it complements, which would push it to a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Start here if you are unsure' gives a concrete condition for reaching for this tool before others. However, it never states when NOT to use it or names an alternative path once you are no longer unsure, so the routing guidance is contextual rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tmgmt_healthA
Check that the ThatMgmt API is reachable. No API key needed. Use it to verify setup.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the behavioral burden. It does disclose that no API key is needed and that the tool is a reachability check, but it does not describe the expected response format, error behavior, or what 'reachable' means operationally.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three short sentences with no filler. The main action is front-loaded, and each sentence adds distinct value: what it does, the auth requirement, and when to use it.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter health-check tool, the description covers purpose, setup verification, and auth. A minor gap is the lack of any mention of return values or success/failure indicators, especially since there is no output schema to clarify those details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the baseline is 4. The description adds the relevant context that no API key is needed, which is effectively the only 'input' consideration for this tool. Nothing else is required.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Check') and resource ('ThatMgmt API') with a clear scope: reachability. This distinguishes it from sibling tools like portfolio_health and domains_dns, which target different resources or concerns.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a clear context for use ('verify setup') and notes the auth requirement ('No API key needed'). It does not explicitly mention when not to use it or name alternatives, but for a simple health-check tool the guidance is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
3 tool updates
v0.2.1- Changed
domains_check_availability1 field changed- removed
Input schema / properties / optimizeForRemoved value: -{ - "description": "SPEED or ACCURACY", - "enum": [ - "SPEED", - "ACCURACY" - ], - "type": "string" -}
- Added
orders_dry_run - Added
tmgmt_capabilities
11 tool updates
v0.1.0- First observed
domains_check_availability - First observed
domains_dns - First observed
domains_get_quote - First observed
domains_list - First observed
domains_prepare_registration - First observed
domains_suggest - First observed
offerings - First observed
portfolio_exceptions - First observed
portfolio_health - First observed
portfolio_renewal_risk - First observed
tmgmt_health
TDQS
Scored across 13 tools
Most tools are distinct, but orders_dry_run, domains_prepare_registration, and domains_get_quote all produce pricing/validated plans for registration, so an agent could easily pick the wrong one. The portfolio_health/renewal_risk/exceptions trio also shades into overlapping 'portfolio view' territory, though their names help differentiate them.
Strong predictable prefix_noun snake_case pattern (portfolio_*, domains_*, orders_*, tmgmt_*), with only minor deviations like the bare 'offerings' and the tmgmt_ vs thatmgmt- prefix mismatch at the server level.
13 tools sits comfortably in the ideal 3-15 range and each tool maps to a distinct capability (discovery, health, availability, DNS, quoting, planning, portfolio views) without obvious padding.
The read-only/planning surface is well covered (list, DNS inspect, availability, suggestions, quoting, portfolio health/risk/exceptions, capability and health checks), but there is no single-resource 'get domain' tool and no certificate lifecycle tooling, leaving minor gaps.
Maintenance
Related MCP Connectors
Domain search, registration, DNS, marketplace, and checkout with your AI agent.
Buy & manage domains from any AI chat: availability, register, DNS, email forwarding, AI bot stats.
- DoDomainOAuthio.dodomain
Connect custom domains via AI agents: DNS pre-flight checks, hand-off connect sessions and checks.
Domain registration for AI agents via Stripe or x402 crypto with Cloudflare DNS.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to check domain availability across multiple TLDs with real-time pricing, brainstorm creative domain names, analyze domains for brandability and SEO potential, and search for domains by price and category without CAPTCHAs.5 npm3MIT
- AlicenseAqualityDmaintenanceEnables AI agents to check domain availability, perform batch domain lookups, and generate intelligent domain name suggestions across multiple TLDs using WHOIS integration.3MIT

Name.com MCP Serverofficial
AlicenseNot gradedqualityAmaintenanceEnables AI assistants to perform comprehensive domain management tasks through the Name.com API, including registration, DNS management, and transfers. It dynamically generates tools from the OpenAPI specification to facilitate natural language interaction with all Name.com services.67 npm3MIT- AlicenseAqualityDmaintenanceEnables AI agents to check domain availability, purchase domains via Stripe, and perform full DNS and nameserver management. It facilitates automated domain lifecycle tasks like record updates and transfer locks without requiring CAPTCHAs.1MIT