
SatsDNS MCP server
Which MCP servers are SatsDNS's own, from the official registry and from asking its own domain, whether they answer, and what they offer. A program checked each of these, nobody copied them from a product page.
read 2026-10-29
- Registry namecom.satsdns/satsdnsverified in the MCP registry
The registry name sits under satsdns.com. The registry only lets a publisher use that namespace after proving control of the domain through DNS or HTTP.
- Stateanswerschecked 2026-10-29
- Tools20
- Server calls itselfsatsdns
- Server version0.2.2
- Protocol version2025-06-18
On 2026-10-29 the server answered initialize and tools/list without a sign-in. First answer in 638 ms.
- Its tools do Host DNS for a domain on its own nameservers; Update a dynamic DNS hostname from a router, but not Register a com, net or org domain paid in bitcoin.
- Checked on 6 of the 7 days it takes to judge reliability.
Once connected
- For "Update a dynamic DNS hostname from a router", the likely first call is hostname_update.
- zone_create, secondary_create, hostname_create, zone_add_queries, hostname_update change data without a sign-in: anyone with the address can call them.
Said by rules from the measurements above. The likely first call is a model's pick from the tool list; read its description before relying on it.
- INITE MCP scoreafter a weeka score needs 7 daily checks: 6 so far
- What an agent can do with it2 of 3 use cases
- Answeredmeasuring6 of the 7 daily checks it takes to print a share
- Median first answer618 ms
- Space in an agent's context≈ 6,791 tokensthe definitions of all its tools (20), which an agent carries on every turn
- Tool definitionsA · 100 of 100
- Typed results0 of 20 toolsdeclared outputSchema: results come typed, read once
- Every tool passes all six checks.
What an agent can do with it
- can do · Host DNS for a domain on its own nameservers
- can do · Update a dynamic DNS hostname from a router
- cannot · Register a com, net or org domain paid in bitcoin
Each of the product's use cases, put to Jev against this server's tool list: can an agent do it with these tools?
Worth a look
- Tools that change data, on a server that answers without a sign-in: zone_create, secondary_create, hostname_create, zone_add_queries, hostname_update
A program checks the server once a day: initialize and tools/list, no model. Tokens are the definitions' length at about four characters a token. The grade averages six checks of every tool's name, description, schema and annotations; it says how well the tools are described, not whether they work. The score weighs what was measured and nothing else: answering (25%), doing the product's job (25%), definitions (20%), context (10%), use (10%) and how readily a client connects (10%). A part that was not measured is left out, and a hidden instruction caps the score at 40. The state of vendors' MCP servers: method and numbers →
infoFree: prices in sats per product and period, nameservers, limits, record types, accepted Cashu mints, how paying works, and the steps to host a zone.
checkFree: runs the checks a paid call runs before payment (name rules, availability, delegation, limits) without creating an invoice, and returns the price. For zone_create and secondary_create of a new zone it answers delegation_missing with…
domain_checkFree: whether a .com, .net or .org name is available and its price in sats. Tightly rate-limited. Registration itself is not offered through this server.
zone_createCreates a hosted, DNSSEC-signed zone on our nameservers. First call check (tool zone_create): a new zone gets its own nameserver pair, which must be set at the registrar before the payment step; pass the ns_ticket from that answer. The…
secondary_createWe serve your zone as secondaries, transferred from your primaries (public IPv4) with a TSIG key that the answer gives once. The same nameserver-pair step as zone_create applies (check first). Paid, no account. Without payment the call…
hostname_createCreates a dynamic hostname such as myhome.dynkite.com. The answer gives the hostname token once (keep it: hostname_update and routers use it). Paid, no account. Without payment the call returns payment_required with the price, a Lightning…
renewExtends a hosted zone, secondary zone or dynamic hostname by 30d or 1y from its current expiry. Needs no token: anyone may pay to extend any name. Paid, no account. Without payment the call returns payment_required with the price, a…
zone_add_queriesAdds 1 million queries to a hosted zone's monthly allowance. Paid, no account. Without payment the call returns payment_required with the price, a Lightning invoice and a Cashu payment request; pay only within what your user allowed, then…
zone_statusFree: state, expiry, nameservers, delegation and usage of a hosted zone. Pass the zone token (jdz_...) from the create answer, or a scoped account API key (jdk_...) made in the dashboard. Either passes through your model context and…
records_listFree: the zone's rrsets, optionally only one owner name and/or type. Pass the zone token (jdz_...) from the create answer, or a scoped account API key (jdk_...) made in the dashboard. Either passes through your model context and…
records_changeFree: applies up to 100 rrset changes at once, all or none. Each item REPLACEs one rrset (name and type) with the given records, or DELETEs it. Deleting records can take a site or mail offline: change only what your user asked for. Pass…
dnssec_infoFree: the DS record(s) to enter at the registrar, and what the parent zone publishes now. Pass the zone token (jdz_...) from the create answer, or a scoped account API key (jdk_...) made in the dashboard. Either passes through your model…
hostname_statusFree: state, expiry and current records of a dynamic hostname. Pass the hostname token (jdh_...) from the create answer, or a scoped account API key (jdk_...) made in the dashboard. Either passes through your model context and transcript…
hostname_updateFree: sets the hostname's A, AAAA, TXT, ACME TXT or HTTPS records; fields left out stay as they are, [] deletes. Give explicit public addresses: the caller's own address ('auto') is not available here, because through MCP it would be your…
renewal_addressFree: the Lightning address and LNURL that extend this zone or hostname pro rata when anyone pays it (no token needed to pay). Made once, then the same address is returned. Pass the zone token (jdz_...) from the create answer, or a scoped…
account_objectsFree, read-only: the account's state and limits, or the zones, hostnames or invoices it owns. With api_key, only the objects the key's scope covers and only their invoices (the account view of limits and counts is the same for every key)…
account_orderOrders a product into your account, paid by its own invoice: Lightning (15 min) or a new on-chain address (orders of 5,000 sats and up). Prices as in info. pay=check runs the free checks only and makes no invoice: use it first. Refused…
order_statusFree: the invoice's state (paid, fulfilled, expired, ...) and, after fulfilment, the result. A new object's token (and TSIG key) is shown once, only to a nip98 call, within 1 hour of fulfilment; an api_key sees the state only, and only of…
claimFree: puts a zone or hostname bought with a token into your Nostr account, so you get expiry reminders by DM and can manage it with API keys. If another account owns it, a 72-hour recovery starts instead and that owner is told. Called…
token_rotateFree: makes a new token for a zone or hostname; the old one stops working at once. Use it when a token may have leaked (tokens pass through model context). Authorize with the current token or, for an object in your account, with nip98…
How to connect
Add the server to your MCP client config. Claude Desktop, Cursor and most other clients read this shape:
{
"mcpServers": {
"satsdns": {
"type": "http",
"url": "https://api.satsdns.com/mcp"
}
}
}Add it
Claude Code, in a terminal
claude mcp add --transport http satsdns https://api.satsdns.com/mcpclaude.ai, ChatGPT and other clients: add https://api.satsdns.com/mcp as a custom connector in the settings.
OpenAPI spec
64 paths, read 2026-10-29. Open the spec ↗
Each line is something a program found when it went looking: the registry entry, the server's own answer, a spec that parses. A missing line means we did not find it, not that it does not exist.
Before we count this visit
Analytics and ad measurement tell us which pages and which of our ads do their job: Google Analytics and Google Ads, the Meta pixel, Yandex Metrica, and one first-party id of our own. Nothing is stored until you answer, and declining changes nothing about the site.