Cheapest Domains
Compare domain registration and renewal prices across registrars and check exact-name availability.
我該用這個嗎
品質與安全性
發現項目(1)
- LOW在 estimate_cost 中
根據工具定義與協定合規性的自動化分析。
上下文成本
這是每次將伺服器的工具載入模型上下文時所消耗的約略 token 數量。數量越高,可用於其他工作的注意力就越少。
安裝
一鍵安裝
將以下內容加入你的 `claude_desktop_config.json` 檔案:
{
"mcpServers": {
"cheapest-domains": {
"url": "https://www.cheapest.domains/mcp"
}
}
}遠端端點
https://www.cheapest.domains/mcpstreamable-http它能做什麼
工具清單
工具(9)
🟢search_prices(q, registrar, registrars, favorites, sort, ...)
Compare standard prices, including explicitly labeled Cloudflare samples. Find affordable domain extensions and registrar offers, sorted by annual renewal by default. Saved offers remain listed when outdated, with stale flags and source timestamps. Returns prices, citation links, timestamps, coverage, and pagination. Does not check exact-name availability.
輸入結構描述
{
"type": "object",
"properties": {
"q": {
"type": "string",
"maxLength": 200,
"description": "TLD search: .com is exact; com is partial. Separate alternatives with commas or spaces.",
"default": ""
},
"registrar": {
"type": "string",
"maxLength": 40,
"pattern": "^[a-z0-9-]+$",
"description": "Connected registrar ID from the registrars endpoint. Omit to compare all."
},
"registrars": {
"type": "string",
"maxLength": 200,
"pattern": "^[a-z0-9-]+(?:,[a-z0-9-]+)*$",
"description": "Comma-separated connected registrar IDs to compare together. Use instead of registrar. Cheapest-per-extension winners are chosen within this set."
},
"favorites": {
"type": "string",
"maxLength": 81,
"pattern": "^[a-z0-9-]+(?:,[a-z0-9-]+)?$",
"description": "Up to two distinct connected registrar IDs, comma-separated. Adds saved favorite offers and fresh baselines for this result page, independent of filters. Does not save preferences or check names."
},
"sort": {
"type": "string",
"enum": [
"renewal",
"registration",
"total"
],
"default": "renewal",
"description": "Ranking metric. Total uses a conservative new-registration estimate."
},
"orderBy": {
"type": "string",
"enum": [
"price",
"extension"
],
"default": "price",
"description": "Order results by the selected price metric or extension. Cheapest-per-extension winners are selected before ordering."
},
"direction": {
"type": "string",
"enum": [
"asc",
"desc"
],
"default": "asc",
"description": "Ascending or descending result order. Unknown totals follow priced totals in either price direction."
},
"years": {
"type": "integer",
"minimum": 1,
"maximum": 10,
"default": 3,
"description": "Planning horizon in years, including initial registration."
},
"maxRenewalCents": {
"type": "integer",
"minimum": 0,
"maximum": 100000000,
"description": "Maximum annual renewal in integer USD cents; 1000 means USD 10."
},
"hideCountryCodes": {
"type": "boolean",
"default": false,
"description": "Exclude two-letter country-code extensions."
},
"hideJumps": {
"type": "boolean",
"default": false,
"description": "Exclude current renewal prices greater than twice registration."
},
"view": {
"type": "string",
"enum": [
"best",
"all"
],
"default": "best",
"description": "Best returns one winner per TLD; all returns every matching registrar offer."
},
"includeStale": {
"type": "boolean",
"default": false,
"description": "Accepted for compatibility. Saved prices stay in results until a successful refresh replaces them and are labeled stale. includeStale=true still requires view=all."
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 200,
"default": 50,
"description": "Maximum number of results, up to 200."
},
"offset": {
"type": "integer",
"minimum": 0,
"maximum": 100000,
"default": 0,
"description": "Result offset. Follow pagination.next for additional results; the feed can change between requests."
},
"name": {
"type": "string",
"pattern": "^[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?$",
"maxLength": 63,
"description": "One ASCII domain label without the extension, such as myproject. Price and link tools only build links from it; availability and popularity tools send the exact domain to their providers."
},
"format": {
"type": "string",
"enum": [
"json",
"csv",
"markdown"
],
"default": "json",
"description": "Response representation. CSV and Markdown use the same filters, order and bounded pagination; they contain main offers, not favorite comparison arrays. MCP retains structured JSON alongside rendered text."
}
},
"additionalProperties": false
}🟢get_tld_prices(tld, registrar, registrars, favorites, sort, ...)
Compare all covered registrars for one extension. Returns source failures, quote timestamps and minimum terms; availability is not checked.
輸入結構描述
{
"type": "object",
"properties": {
"tld": {
"type": "string",
"pattern": "^\\.?[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?$",
"maxLength": 64,
"description": "One covered ASCII top-level extension, such as com or .com. Multi-part suffixes and IDNs are not covered."
},
"registrar": {
"type": "string",
"maxLength": 40,
"pattern": "^[a-z0-9-]+$",
"description": "Connected registrar ID from the registrars endpoint. Omit to compare all."
},
"registrars": {
"type": "string",
"maxLength": 200,
"pattern": "^[a-z0-9-]+(?:,[a-z0-9-]+)*$",
"description": "Comma-separated connected registrar IDs to compare together. Use instead of registrar. Cheapest-per-extension winners are chosen within this set."
},
"favorites": {
"type": "string",
"maxLength": 81,
"pattern": "^[a-z0-9-]+(?:,[a-z0-9-]+)?$",
"description": "Up to two distinct connected registrar IDs, comma-separated. Adds saved favorite offers and fresh baselines for this result page, independent of filters. Does not save preferences or check names."
},
"sort": {
"type": "string",
"enum": [
"renewal",
"registration",
"total"
],
"default": "renewal",
"description": "Ranking metric. Total uses a conservative new-registration estimate."
},
"orderBy": {
"type": "string",
"enum": [
"price",
"extension"
],
"default": "price",
"description": "Order results by the selected price metric or extension. Cheapest-per-extension winners are selected before ordering."
},
"direction": {
"type": "string",
"enum": [
"asc",
"desc"
],
"default": "asc",
"description": "Ascending or descending result order. Unknown totals follow priced totals in either price direction."
},
"years": {
"type": "integer",
"minimum": 1,
"maximum": 10,
"default": 3,
"description": "Planning horizon in years, including initial registration."
},
"includeStale": {
"type": "boolean",
"default": false,
"description": "Accepted for compatibility. Saved prices stay in results until a successful refresh replaces them and are labeled stale. includeStale=true still requires view=all."
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 200,
"default": 50,
"description": "Maximum number of results, up to 200."
},
"offset": {
"type": "integer",
"minimum": 0,
"maximum": 100000,
"default": 0,
"description": "Result offset. Follow pagination.next for additional results; the feed can change between requests."
},
"name": {
"type": "string",
"pattern": "^[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?$",
"maxLength": 63,
"description": "One ASCII domain label without the extension, such as myproject. Price and link tools only build links from it; availability and popularity tools send the exact domain to their providers."
},
"format": {
"type": "string",
"enum": [
"json",
"csv",
"markdown"
],
"default": "json",
"description": "Response representation. CSV and Markdown use the same filters, order and bounded pagination; they contain main offers, not favorite comparison arrays. MCP retains structured JSON alongside rendered text."
}
},
"required": [
"tld"
],
"additionalProperties": false
}🟢get_registrars
Get connected registrar coverage, timestamps, fresh counts, failures, and registrars not compared.
輸入結構描述
{
"type": "object",
"properties": {},
"additionalProperties": false
}🟢estimate_cost(tld, registrar, years, name)
Estimate new registration plus subsequent renewals for one TLD at a registrar. Returns null for unknown multi-year term totals. Not a transfer or existing-domain renewal quote.
輸入結構描述
{
"type": "object",
"properties": {
"tld": {
"type": "string",
"pattern": "^\\.?[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?$",
"maxLength": 64,
"description": "One covered ASCII top-level extension, such as com or .com. Multi-part suffixes and IDNs are not covered."
},
"registrar": {
"type": "string",
"maxLength": 40,
"pattern": "^[a-z0-9-]+$",
"description": "Connected registrar ID from the registrars endpoint. Omit to compare all."
},
"years": {
"type": "integer",
"minimum": 1,
"maximum": 10,
"default": 3,
"description": "Planning horizon in years, including initial registration."
},
"name": {
"type": "string",
"pattern": "^[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?$",
"maxLength": 63,
"description": "One ASCII domain label without the extension, such as myproject. Price and link tools only build links from it; availability and popularity tools send the exact domain to their providers."
}
},
"required": [
"tld",
"registrar",
"years"
],
"additionalProperties": false
}🟢get_registrar_link(tld, registrar, name)
Construct a verified registrar search destination for a proposed name and extension. Does not navigate, check availability, or purchase. NameBright and AWS Route 53 use an explicit copy/paste fallback.
輸入結構描述
{
"type": "object",
"properties": {
"tld": {
"type": "string",
"pattern": "^\\.?[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?$",
"maxLength": 64,
"description": "One covered ASCII top-level extension, such as com or .com. Multi-part suffixes and IDNs are not covered."
},
"registrar": {
"type": "string",
"maxLength": 40,
"pattern": "^[a-z0-9-]+$",
"description": "Connected registrar ID from the registrars endpoint. Omit to compare all."
},
"name": {
"type": "string",
"pattern": "^[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?$",
"maxLength": 63,
"description": "One ASCII domain label without the extension, such as myproject. Price and link tools only build links from it; availability and popularity tools send the exact domain to their providers."
}
},
"required": [
"tld",
"registrar",
"name"
],
"additionalProperties": false
}🟢get_naming_guidance
Return domain naming criteria, renewal-price comparison guidance and availability-status definitions. This static reference does not generate names or check availability.
輸入結構描述
{
"type": "object",
"properties": {},
"additionalProperties": false
}🟢check_availability(name, tld, registrar, fresh)
Check one exact domain. Cloudflare answers first; configured fallback providers, then an optional selected registrar, run only for missing facts; a taken name ends the chain. Returns separate availability and nullable premium facts with provider attempts and check times; null premium is unconfirmed, not standard tier. Evidence expires after five minutes. No price lookup, purchase or reservation.
輸入結構描述
{
"type": "object",
"properties": {
"name": {
"type": "string",
"pattern": "^[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?$",
"maxLength": 63,
"description": "One ASCII domain label without the extension, such as myproject. Price and link tools only build links from it; availability and popularity tools send the exact domain to their providers."
},
"tld": {
"type": "string",
"pattern": "^\\.?[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?$",
"maxLength": 64,
"description": "One covered ASCII top-level extension, such as com or .com. Multi-part suffixes and IDNs are not covered."
},
"registrar": {
"type": "string",
"maxLength": 40,
"pattern": "^[a-z0-9-]+$",
"description": "Connected registrar ID from the registrars endpoint. Omit to compare all."
},
"fresh": {
"type": "boolean",
"default": false,
"description": "Explicitly request a fresh single-name recheck only when the user asks. Normal checks reuse five-minute evidence. Fresh checks still obey provider gates, pending claims, caller limits and cooldowns; never use in a loop."
}
},
"required": [
"name",
"tld"
],
"additionalProperties": false
}🟢get_domain_popularity(name, tld)
Look up one exact domain in Cloudflare Radar’s global DNS popularity ranking. Returns an exact top-100 rank or a broader popularity group, categories, locations, data dates, and CC BY-NC 4.0 attribution. Not Google SEO difficulty, name competition, or availability. Missing data does not indicate zero competition.
輸入結構描述
{
"type": "object",
"properties": {
"name": {
"type": "string",
"pattern": "^[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?$",
"maxLength": 63,
"description": "One ASCII domain label without the extension, such as myproject. Price and link tools only build links from it; availability and popularity tools send the exact domain to their providers."
},
"tld": {
"type": "string",
"pattern": "^\\.?[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?$",
"maxLength": 64,
"description": "One covered ASCII top-level extension, such as com or .com. Multi-part suffixes and IDNs are not covered."
}
},
"required": [
"name",
"tld"
],
"additionalProperties": false
}🟢check_availability_batch(name, tlds, cachedOnly)
Check one name across up to 20 extensions, reusing shared five-minute evidence. Enrichment stops once availability is known, so premium can remain null. Partial failures keep the answers received plus retry guidance, without automatic retries. cachedOnly makes no provider calls. No selected-registrar fallback, fresh mode, prices or purchases.
輸入結構描述
{
"type": "object",
"properties": {
"name": {
"type": "string",
"pattern": "^[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?$",
"maxLength": 63,
"description": "One ASCII domain label without the extension, such as myproject. Price and link tools only build links from it; availability and popularity tools send the exact domain to their providers."
},
"tlds": {
"type": "string",
"maxLength": 1299,
"description": "One to 20 distinct ASCII top-level extensions separated by commas, for the same name. Optional leading dots are accepted. No whole-catalog scans."
},
"cachedOnly": {
"type": "boolean",
"default": false,
"description": "Return only existing fresh availability evidence, without provider calls, lookup admission, claims or retries. Cache misses remain Not confirmed."
}
},
"required": [
"name",
"tlds"
],
"additionalProperties": false
}社群
證據