StableDomains MCP
An official Model Context Protocol server provided by StableDomains that allows AI agents to search for available domain names, generate name ideas, obtain price quotes, create price-locked orders, and manage domain registrations using stablecoin payments (USDC/USDT) or credit cards. It supports tools for checking availability, creating orders, and looking up expiring domains.
Endpoint and access
No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.
https://stabledomains.net/api/mcpWhat you can do with it
- Search for available domain names across multiple TLDs
- Generate name ideas based on keywords or concepts
- Create price-locked orders for domain registration
- Look up expiring domains and drop radar data
Source and maintenance
Protocol and capabilities
- Server
- stabledomains 2.5.0
- MCP protocol
- 2025-06-18
- Tools
- 37 advertised
- Resources
- Not advertised
- Resource templates
- Not advertised
- Prompts
- Not advertised
{
"tools": {
"listChanged": false
}
}Server-provided instructions
Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.
Tools
37 advertised
search_domains — Search domain availability
Check availability and USD price for a name across TLDs. Each result has premium (boolean; premium = registry price + 12%) and renewal_price (USD/yr). If the name is taken, suggestions[] lists close AVAILABLE alternatives (live-checked, cheapest first).
{
"type": "object",
"required": [
"q"
],
"properties": {
"q": {
"type": "string"
}
}
}{
"title": "Search domain availability",
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}search_aftermarket — Aftermarket links for a taken name
For a taken name: affiliate links to Atom.com, an OUTSIDE aftermarket (not StableDomains), to find premium alternatives for the keyword. Exact-name listing on Atom is not verified (no public API). Atom handles payment/transfer.
{
"type": "object",
"required": [
"q"
],
"properties": {
"q": {
"type": "string",
"description": "name or domain, e.g. cloud.com"
}
}
}{
"title": "Aftermarket links for a taken name",
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}agent_signup — Get a guest API key
Instant signup: returns an API key immediately (no form, no email). Guest tier (30 req/min) until claimed by email or wallet. Rate limited per IP (3/hour). Store the key; it is shown once.
{
"type": "object",
"required": [],
"properties": {}
}{
"title": "Get a guest API key",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}quote_domain — Quote a domain price
Live price quote for one domain. Returns premium (boolean) and renewal_price (USD/yr). Premium orders are refused if they exceed what we can currently fund.
{
"type": "object",
"required": [
"domain"
],
"properties": {
"years": {
"type": "integer"
},
"domain": {
"type": "string"
}
}
}{
"title": "Quote a domain price",
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}create_order — Create a domain order
Create a registration order (a price-locked quote). Returns quote{price_usd, locked_until}, payment requirements (exact amount, address, x402 accepts) and checkout_url: a prefilled /order/{id} page a human can pay from. Policy: check availability right before buying, show the quote to the human and get confirmation before paying; pass idempotency_key (retries with the same key never create a second order; if omitted, identical calls within 15 min are de-duplicated). pay_with=balance pays instantly from prepaid balance.
{
"type": "object",
"required": [
"domain"
],
"properties": {
"ref": {
"type": "string",
"description": "referrer code"
},
"chain": {
"enum": [
"base",
"ethereum",
"arbitrum",
"polygon",
"hyperevm",
"bsc",
"solana"
],
"type": "string",
"description": "payment network (default base). hyperevm = HyperEVM (chain 999, USDC/USDT0), bsc = BNB Chain (56, 18-decimal USDC/USDT)"
},
"token": {
"enum": [
"USDC",
"USDT"
],
"type": "string",
"description": "stablecoin (default USDC)"
},
"years": {
"type": "integer"
},
"domain": {
"type": "string"
},
"pay_with": {
"enum": [
"crypto",
"balance"
],
"type": "string"
},
"showcase": {
"type": "boolean",
"description": "Opt in to the public /showcase listing (only if the user asked)"
},
"nameservers": {
"type": "array",
"items": {
"type": "string"
}
},
"showcase_title": {
"type": "string"
},
"idempotency_key": {
"type": "string"
},
"showcase_description": {
"type": "string"
}
}
}{
"title": "Create a domain order",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}buy_with_balance — Buy a domain with balance
Register a domain and pay from prepaid balance in one call.
{
"type": "object",
"required": [
"domain"
],
"properties": {
"years": {
"type": "integer"
},
"domain": {
"type": "string"
},
"idempotency_key": {
"type": "string"
}
}
}{
"title": "Buy a domain with balance",
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": false,
"destructiveHint": false
}check_order — Check order status
Get order status and next actions.
{
"type": "object",
"required": [
"order_id"
],
"properties": {
"order_id": {
"type": "string"
}
}
}{
"title": "Check order status",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}pay_order — Pay an order
Submit payment: tx_hash (EVM hash or Solana signature) of your transfer, or x_payment (base64 x402 EIP-3009 payload, gasless).
{
"type": "object",
"required": [
"order_id"
],
"properties": {
"tx_hash": {
"type": "string"
},
"order_id": {
"type": "string"
},
"x_payment": {
"type": "string"
}
}
}{
"title": "Pay an order",
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": false,
"destructiveHint": false
}get_balance — Get prepaid balance
Get your prepaid USD balance and its ledger of top-ups and spends.
{
"type": "object",
"required": [],
"properties": {}
}{
"title": "Get prepaid balance",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}topup_balance — Create a balance top-up order
Create a top-up order (USD 5–5000); pay it like any order.
{
"type": "object",
"required": [
"amount_usd"
],
"properties": {
"chain": {
"enum": [
"base",
"ethereum",
"arbitrum",
"polygon",
"hyperevm",
"bsc",
"solana"
],
"type": "string",
"description": "payment network (default base). hyperevm = HyperEVM (chain 999, USDC/USDT0), bsc = BNB Chain (56, 18-decimal USDC/USDT)"
},
"token": {
"enum": [
"USDC",
"USDT"
],
"type": "string",
"description": "stablecoin (default USDC)"
},
"amount_usd": {
"type": "number"
},
"idempotency_key": {
"type": "string"
}
}
}{
"title": "Create a balance top-up order",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}find_dropping_domains — Find expiring domains
Find expiring, pending-delete and just-dropped domains ranked by a verified quality score (0-100) built from sampled Wayback snapshots (real site vs parked/for-sale), Common Crawl presence, dictionary/brandability and spam heuristics; Majestic referring subnets only count when the archive shows a real site. Parked and spam names are hidden by default; each item includes quality_reasons. Free tier returns top 25; status=available names can be bought immediately with create_order. For presets, estimated value, multi-TLD and keyword filters use drop_radar.
{
"type": "object",
"required": [],
"properties": {
"q": {
"type": "string"
},
"tld": {
"type": "string"
},
"sort": {
"enum": [
"quality",
"value",
"price",
"length",
"drops",
"new",
"brand",
"backlinks",
"domain",
"score"
],
"type": "string"
},
"limit": {
"type": "integer",
"description": "max 25 on the free tier"
},
"order": {
"enum": [
"asc",
"desc"
],
"type": "string",
"description": "sort direction; default depends on sort"
},
"cursor": {
"type": "string",
"description": "next_cursor from the previous call"
},
"status": {
"enum": [
"available",
"pending_delete",
"redemption",
"expired_grace"
],
"type": "string"
},
"max_len": {
"type": "integer"
},
"min_age": {
"type": "integer",
"description": "min years of archive history"
},
"min_len": {
"type": "integer"
},
"max_price": {
"type": "number"
},
"min_brand": {
"type": "integer"
},
"no_digits": {
"type": "boolean"
},
"no_hyphen": {
"type": "boolean"
},
"min_quality": {
"type": "integer"
},
"show_parked": {
"type": "boolean",
"description": "include names whose archive shows only parked/for-sale pages (hidden by default)"
},
"include_spam": {
"type": "boolean",
"description": "include spammy names (hidden by default)"
},
"min_backlinks": {
"type": "integer"
},
"available_only": {
"type": "boolean",
"description": "only names registrable now"
},
"drops_within_days": {
"type": "integer",
"description": "pending-delete names dropping within N days"
}
}
}{
"title": "Find expiring domains",
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}drop_radar — Domain Drop Radar search
Domain Drop Radar: expiring, pending-delete and just-dropped domains filtered by TLD(s), length, keywords, value, quality and drop date, with presets (short-brandable, ai-names, dictionary-com, real-history, cheap-good, dropping-this-week). Returns a summary plus the top 25 with quality reasons, est. value, price, and a ready create_order body for available names or a watch body for others. For up to 500 rows call GET /api/v1/drops/full via x402 ($0.01). Page with limit + cursor (next_cursor in the response); sort with sort + order. To be alerted on future matches call radar_alert.
{
"type": "object",
"required": [],
"properties": {
"sort": {
"enum": [
"quality",
"value",
"price",
"length",
"drops",
"new",
"brand",
"backlinks",
"domain",
"score"
],
"type": "string"
},
"tlds": {
"type": "array",
"items": {
"type": "string"
}
},
"limit": {
"type": "integer",
"description": "max 25 on the free tier"
},
"order": {
"enum": [
"asc",
"desc"
],
"type": "string",
"description": "sort direction; default depends on sort"
},
"cursor": {
"type": "string",
"description": "next_cursor from the previous call"
},
"preset": {
"enum": [
"short-brandable",
"ai-names",
"dictionary-com",
"real-history",
"cheap-good",
"dropping-this-week"
],
"type": "string"
},
"status": {
"enum": [
"available",
"pending_delete",
"redemption",
"expired_grace"
],
"type": "string"
},
"max_len": {
"type": "integer"
},
"min_age": {
"type": "integer"
},
"min_len": {
"type": "integer"
},
"keywords": {
"type": "array",
"items": {
"type": "string"
}
},
"ends_with": {
"type": "string"
},
"max_price": {
"type": "number"
},
"max_value": {
"type": "integer"
},
"min_value": {
"type": "integer"
},
"no_digits": {
"type": "boolean"
},
"no_hyphen": {
"type": "boolean"
},
"dictionary": {
"type": "boolean"
},
"min_quality": {
"type": "integer"
},
"starts_with": {
"type": "string"
},
"available_only": {
"type": "boolean",
"description": "only names registrable now"
},
"new_within_hours": {
"type": "integer"
},
"drops_within_days": {
"type": "integer",
"description": "pending-delete names dropping within N days"
}
}
}{
"title": "Domain Drop Radar search",
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}radar_alert — Save a Drop Radar alert
Save a Drop Radar search and get a signed webhook (event radar.match, header X-StableDomains-Signature = sha256 HMAC of the body with the returned secret) and/or email (double opt-in) when new names match or a pending-delete name drops. Free: 3 alerts per IP, 25 with an API key, max 20 events per alert per day. filters takes the same fields as drop_radar.
{
"type": "object",
"required": [
"filters"
],
"properties": {
"name": {
"type": "string"
},
"email": {
"type": "string"
},
"filters": {
"type": "object",
"description": "same fields as drop_radar (preset, tlds, keywords, max_len, min_quality, ...)"
},
"webhook_url": {
"type": "string"
}
}
}{
"title": "Save a Drop Radar alert",
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": false,
"destructiveHint": false
}suggest_domains — Suggest available domains
Free. Pass domain (e.g. a taken name like agent.com) to get close AVAILABLE alternatives (other extensions, get/try/hq/app variants), live-checked and ranked by price. Or pass idea to generate brandable names for a product idea. Returns only names available right now with USD price and checkout_url.
{
"type": "object",
"required": [],
"properties": {
"idea": {
"type": "string",
"description": "plain-words idea, e.g. ai bookkeeping for plumbers"
},
"tlds": {
"type": "array",
"items": {
"type": "string"
}
},
"domain": {
"type": "string",
"description": "a (taken) domain to find alternatives for"
},
"max_price": {
"type": "number"
}
}
}{
"title": "Suggest available domains",
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}estimate_domain_value — Estimate domain value
Heuristic USD value estimate for any domain (length, TLD, dictionary words, brandability, Wayback age, backlinks) with factor breakdown and availability.
{
"type": "object",
"required": [
"domain"
],
"properties": {
"domain": {
"type": "string"
}
}
}{
"title": "Estimate domain value",
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}whois_lookup — WHOIS / RDAP lookup
RDAP (modern WHOIS) lookup for any domain: registrar, created/expires dates, status codes, nameservers, DNSSEC.
{
"type": "object",
"required": [
"domain"
],
"properties": {
"domain": {
"type": "string"
}
}
}{
"title": "WHOIS / RDAP lookup",
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}dns_email_check — DNS and email security check
DNS + email security audit via DNS-over-HTTPS: A/AAAA/MX/NS/CAA, SPF, DKIM (common or given selectors), DMARC policy, grade A-F and concrete fixes.
{
"type": "object",
"required": [
"domain"
],
"properties": {
"domain": {
"type": "string"
},
"dkim_selectors": {
"type": "string",
"description": "comma-separated"
}
}
}{
"title": "DNS and email security check",
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}is_domain_dropping — Check if a domain is dropping
Is an expired domain about to become available? Returns lifecycle (grace, redemption, pending delete, available, registered), estimated drop date and backlink data if in our drop feed.
{
"type": "object",
"required": [
"domain"
],
"properties": {
"domain": {
"type": "string"
}
}
}{
"title": "Check if a domain is dropping",
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}watch_domain — Watch a domain for drops
Get notified when an expiring domain changes status or drops (becomes registrable). Pass webhook_url (active immediately, POSTs JSON events domain.status_changed / domain.available with a ready order_api body) and/or email (double opt-in). Free.
{
"type": "object",
"required": [
"domain"
],
"properties": {
"email": {
"type": "string"
},
"domain": {
"type": "string"
},
"webhook_url": {
"type": "string",
"description": "public https URL"
}
}
}{
"title": "Watch a domain for drops",
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}set_url_forward — Set URL forwarding
FREE 301 URL forwarding for a domain you registered with us: forward the whole domain (subdomain '@', also covers www) or a subdomain to any https URL. Points DNS at our redirect service. preserve_path keeps /path?query.
{
"type": "object",
"required": [
"domain",
"target"
],
"properties": {
"code": {
"enum": [
301,
302
],
"type": "integer"
},
"domain": {
"type": "string"
},
"target": {
"type": "string",
"description": "https://destination"
},
"subdomain": {
"type": "string",
"description": "@ (default) or e.g. blog"
},
"preserve_path": {
"type": "boolean"
}
}
}{
"title": "Set URL forwarding",
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": true
}list_url_forwards — List URL forwards
URL forwards configured on a domain you own.
{
"type": "object",
"required": [
"domain"
],
"properties": {
"domain": {
"type": "string"
}
}
}{
"title": "List URL forwards",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}apply_dns_template — Apply a DNS template
FREE one-call DNS setup for a domain you own. template: vercel | netlify (params.site) | github-pages (params.user) | google-workspace | microsoft-365 | zoho-mail (params.region: com|eu|in|com.au). Replaces only the conflicting web or MX/SPF records.
{
"type": "object",
"required": [
"domain",
"template"
],
"properties": {
"domain": {
"type": "string"
},
"params": {
"type": "object"
},
"template": {
"enum": [
"vercel",
"netlify",
"github-pages",
"google-workspace",
"microsoft-365",
"zoho-mail"
],
"type": "string"
}
}
}{
"title": "Apply a DNS template",
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": true
}get_dns — Get DNS records
Nameservers and DNS records (A/AAAA/CNAME/MX/TXT) of a domain you own.
{
"type": "object",
"required": [
"domain"
],
"properties": {
"domain": {
"type": "string"
}
}
}{
"title": "Get DNS records",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}set_dns — Set DNS records / nameservers
Set DNS records and/or nameservers of a domain you own. records: [{type: A|AAAA|CNAME|MX|TXT, name: '@'|sub, value, ttl?, priority? (MX)}]. mode 'replace' (default) replaces the FULL record set; mode 'merge' adds/updates the given records, deletes any in remove [{type,name,value?}], and keeps everything else (safer for adding MX/TXT next to a website).
{
"type": "object",
"required": [
"domain"
],
"properties": {
"mode": {
"enum": [
"replace",
"merge"
],
"type": "string"
},
"domain": {
"type": "string"
},
"remove": {
"type": "array",
"items": {
"type": "object",
"required": [
"type",
"name"
],
"properties": {
"name": {
"type": "string"
},
"type": {
"enum": [
"A",
"AAAA",
"CNAME",
"MX",
"TXT"
],
"type": "string"
},
"value": {
"type": "string"
}
}
}
},
"records": {
"type": "array",
"items": {
"type": "object",
"required": [
"type",
"name",
"value"
],
"properties": {
"ttl": {
"type": "integer"
},
"name": {
"type": "string"
},
"type": {
"enum": [
"A",
"AAAA",
"CNAME",
"MX",
"TXT"
],
"type": "string"
},
"value": {
"type": "string"
},
"priority": {
"type": "integer"
}
}
}
},
"nameservers": {
"type": "array",
"items": {
"type": "string"
}
}
}
}{
"title": "Set DNS records / nameservers",
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": true
}renew_domain — Renew a domain
Renew a domain you own. Returns USDC payment requirements (402), or pay_with=balance to renew instantly from prepaid balance.
{
"type": "object",
"required": [
"domain"
],
"properties": {
"chain": {
"enum": [
"base",
"ethereum",
"arbitrum",
"polygon",
"hyperevm",
"bsc",
"solana"
],
"type": "string",
"description": "payment network (default base). hyperevm = HyperEVM (chain 999, USDC/USDT0), bsc = BNB Chain (56, 18-decimal USDC/USDT)"
},
"token": {
"enum": [
"USDC",
"USDT"
],
"type": "string",
"description": "stablecoin (default USDC)"
},
"years": {
"type": "integer"
},
"domain": {
"type": "string"
},
"pay_with": {
"enum": [
"crypto",
"balance"
],
"type": "string"
},
"idempotency_key": {
"type": "string"
}
}
}{
"title": "Renew a domain",
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": false,
"destructiveHint": false
}set_notification_webhook — Set notification webhook
Account webhook for lifecycle events: domain.expiring (30/7/1 days before), domain.renewed, domain.transfer_completed. null to remove.
{
"type": "object",
"required": [
"webhook_url"
],
"properties": {
"webhook_url": {
"type": [
"string",
"null"
]
}
}
}{
"title": "Set notification webhook",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": true
}transfer_domain — Transfer a domain in
Transfer a domain in from another registrar using its auth/EPP code; paid in USDC (adds 1 year). Unlock it at the current registrar first. Completes in ~5-7 days.
{
"type": "object",
"required": [
"domain",
"auth_code"
],
"properties": {
"ref": {
"type": "string"
},
"chain": {
"enum": [
"base",
"ethereum",
"arbitrum",
"polygon",
"hyperevm",
"bsc",
"solana"
],
"type": "string",
"description": "payment network (default base). hyperevm = HyperEVM (chain 999, USDC/USDT0), bsc = BNB Chain (56, 18-decimal USDC/USDT)"
},
"token": {
"enum": [
"USDC",
"USDT"
],
"type": "string",
"description": "stablecoin (default USDC)"
},
"years": {
"type": "integer"
},
"domain": {
"type": "string"
},
"pay_with": {
"enum": [
"crypto",
"balance"
],
"type": "string"
},
"auth_code": {
"type": "string"
},
"idempotency_key": {
"type": "string"
}
}
}{
"title": "Transfer a domain in",
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": false,
"destructiveHint": false
}create_cart — Create a multi-domain cart
Register up to 20 available domains with ONE payment (exact total in the 402). Returns a price-locked quote, checkout_url for a human to pay, and is idempotent via idempotency_key. After payment each is registered; any failure is refunded to prepaid balance.
{
"type": "object",
"required": [
"domains"
],
"properties": {
"ref": {
"type": "string"
},
"chain": {
"enum": [
"base",
"ethereum",
"arbitrum",
"polygon",
"hyperevm",
"bsc",
"solana"
],
"type": "string",
"description": "payment network (default base). hyperevm = HyperEVM (chain 999, USDC/USDT0), bsc = BNB Chain (56, 18-decimal USDC/USDT)"
},
"token": {
"enum": [
"USDC",
"USDT"
],
"type": "string",
"description": "stablecoin (default USDC)"
},
"domains": {
"type": "array",
"items": {
"type": "string"
}
},
"nameservers": {
"type": "array",
"items": {
"type": "string"
}
},
"idempotency_key": {
"type": "string"
}
}
}{
"title": "Create a multi-domain cart",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}get_referral_link — Get referral link
Your referral code and shareable link (?ref=<code>, 30-day attribution). Referrers earn 10% of our margin on paid orders by people/agents they refer; agents pass ref=<code> on create_order, create_cart or transfer_domain.
{
"type": "object",
"required": [],
"properties": {}
}{
"title": "Get referral link",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}get_referral_stats — Get referral stats
Referral dashboard: clicks, referred users, sales, earned / unpaid / pending / paid USD, recent sales and payouts. Payouts are USDC on Base, batched weekly (min $5, capped, admin-approved) to your payout address.
{
"type": "object",
"required": [],
"properties": {}
}{
"title": "Get referral stats",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}set_payout_address — Set referral payout address
Set the Base USDC address that receives your weekly referral payouts (null to clear).
{
"type": "object",
"required": [
"payout_address"
],
"properties": {
"payout_address": {
"type": [
"string",
"null"
]
}
}
}{
"title": "Set referral payout address",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": true
}set_auto_renew — Set auto-renew / fund renewal vault
Turn auto-renew on/off for a domain you own and/or fund its renewal balance (vault). deposit_usd moves USDC from your prepaid balance (topup_balance) into the domain's vault; withdraw_usd moves it back. The daily job renews 1 year when ≤30 days from expiry if the vault covers the price, otherwise emails reminders at 30/14/7/1 days.
{
"type": "object",
"required": [
"domain"
],
"properties": {
"domain": {
"type": "string"
},
"enabled": {
"type": "boolean"
},
"deposit_usd": {
"type": "number"
},
"withdraw_usd": {
"type": "number"
}
}
}{
"title": "Set auto-renew / fund renewal vault",
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": false,
"destructiveHint": false
}get_renewal_balance — Get renewal balance
Auto-renew vault for a domain: renewal balance, 1-year renewal price, whether it is covered, shortfall, days to expiry and ledger. Omit domain to list all your domains' renewal balances.
{
"type": "object",
"required": [],
"properties": {
"domain": {
"type": "string"
}
}
}{
"title": "Get renewal balance",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}search_agents — Search agent directory
Search the StableDomains.net agent directory (approved AI agents and MCP servers) by keyword or capability. Returns name, description, url, endpoint_url, mcp_url, capabilities, payment_methods and profile_url.
{
"type": "object",
"required": [],
"properties": {
"q": {
"type": "string"
},
"limit": {
"type": "integer"
},
"capability": {
"type": "string"
}
}
}{
"title": "Search agent directory",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}get_agent — Get agent profile
Get one agent directory profile by slug.
{
"type": "object",
"required": [
"slug"
],
"properties": {
"slug": {
"type": "string"
}
}
}{
"title": "Get agent profile",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}list_my_agent — List my agent profiles
Agent profiles you submitted (any status: pending, approved, rejected) with review notes. Submit a new one with POST /api/v1/agents (auth required, moderated).
{
"type": "object",
"required": [],
"properties": {}
}{
"title": "List my agent profiles",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}list_domains — List my domains
List the domains owned by the caller, with expiry dates and status.
{
"type": "object",
"required": [],
"properties": {}
}{
"title": "List my domains",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}Prompts
Not advertised
Resources
Not advertised
30-day availability
Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.
- Successful checks
- 1 of 1 (100%)
- Average latency
- 578 ms
- 95th percentile latency
- 578 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 578 ms · metadata changed · 37 tool(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http stabledomains-mcp https://stabledomains.net/api/mcpCodex
codex mcp add stabledomains-mcp --url https://stabledomains.net/api/mcpCursor
{
"mcpServers": {
"stabledomains-mcp": {
"url": "https://stabledomains.net/api/mcp"
}
}
}Cline
{
"mcpServers": {
"stabledomains-mcp": {
"type": "streamableHttp",
"url": "https://stabledomains.net/api/mcp",
"disabled": false
}
}
}VS Code
{
"servers": {
"stabledomains-mcp": {
"type": "http",
"url": "https://stabledomains.net/api/mcp"
}
}
}Gemini CLI
gemini mcp add --transport http stabledomains-mcp https://stabledomains.net/api/mcpClaude Desktop
{
"mcpServers": {
"stabledomains-mcp": {
"url": "https://stabledomains.net/api/mcp"
}
}
}Windsurf
{
"mcpServers": {
"stabledomains-mcp": {
"serverUrl": "https://stabledomains.net/api/mcp"
}
}
}Let your agent find its tools
Find servers like StableDomains MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.
Other developer tools servers
Do you run StableDomains MCP?
Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.