Faable — Deploy & Auth vs Porkbun (official)

A side-by-side look at the Faable — Deploy & Auth and Porkbun (official) MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.

Faable — Deploy & Auth logoFaable — Deploy & AuthCloud Platforms · Remote HTTP/SSEDeploy apps from GitHub, read build/runtime logs, and manage your app's users from your AI agent.59GoodAuth: not declaredPorkbun (official) logoPorkbun (official)Cloud Platforms · Local subprocess (stdio)Official Porkbun MCP server: domains, DNS, SSL, hosting and Cloudflare via the Porkbun API.68GreatAuth: oauth 2.0

Verdict: choose Faable — Deploy & Auth for cloud platforms work over a hosted endpoint; choose Porkbun (official) for cloud platforms as a local process. You can also run both side by side in one mcpServers block.

Which MCP server should you choose?

Faable — Deploy & Auth logoChoose Faable — Deploy & Auth when

  • You need dedicated capabilities in the Cloud Platforms domain.
  • You prefer a remote HTTP/SSE transport.
Explore Faable — Deploy & Auth

Porkbun (official) logoChoose Porkbun (official) when

  • You need dedicated capabilities in the Cloud Platforms domain.
  • You prefer a local stdio subprocess transport.
  • Its auth model fits you: OAuth 2.0.
  • You want tools like ping, check_domain, check_domains.
Explore Porkbun (official)

Feature & specification comparison

Rows where the two servers differ are marked.

SpecFaable — Deploy & Auth logoFaable — Deploy & AuthPorkbun (official) logoPorkbun (official)
CategoryCloud PlatformsCloud Platforms
Quality signal59/100 · Good68/100 · Great
Install commandConfirmedConfirmed
TransportRemote HTTP/SSELocal subprocess (stdio)
AuthNot declaredOAuth 2.0
PricingNot declaredNot declared
Required env varsNone listedNone listed
Verified ownerCommunity listingCommunity listing
GitHub stars133
Directory activity 0 views 0 installs 0 upvotes 0 views 0 installs 0 upvotes
ToolsNot listed120

Tools & capabilities

Faable — Deploy & Auth tools

No tool names declared yet. Check the project README from the listing page.

Porkbun (official) tools 120

  • pingVerify the Porkbun API connection and credentials. Returns the caller's public IP, whether the API key is valid, `account` (the username of the Porkbun account the key belongs to), and `scopes`: what the key may do (`["full"]`, or a list such as `read`, `dns`, `domains`, `email`, `hosting`, `purchase`, `funding`, `account`). A call outside the key's scopes fails with `INSUFFICIENT_SCOPE` and changes nothing; tell the user rather than retrying, since only they can widen the key's permissions. Use this as a first sanity check before making other calls, and to confirm you are in the account the user means (a domain in another account comes back as `DOMAIN_NOT_FOUND`, which also names the account).
  • check_domainCheck whether a single domain is available for registration and what it costs. Returns availability (`avail: yes|no`), registration price, renewal price, transfer price, and (for premium domains) extended pricing details. Pricing is in USD. An internationalized name (IDN) also returns `idnLanguages`, the languages its registry accepts; `register_domain` needs one of them as `idn_language`. For a domain already in the user's account the result has `inYourAccount: true`: the top-level `price` is still the registration price, and the renewal price is `additional.renewal.price` (use that, or a `renew_domain` dry run, before renewing). For a domain registered to someone else it adds `aftermarketSearch`: the name may be for sale, so call `search_aftermarket` before telling the user it is unavailable. Use this BEFORE register_domain to confirm cost — Porkbun rejects registrations whose `cost_cents` doesn't match the current quote. **Checking more than one name? Use `check_domains` instead** — it takes up to 25 in a single call and draws on a separate, more generous budget (200 domains/minute against 10 checks/10s here), because Porkbun chunks checks per registry and a batch costs less than the same names one at a time.
  • check_domainsCheck up to 25 domains for availability and price in ONE call. Prefer this over calling `check_domain` in a loop whenever you have more than one name: Porkbun chunks availability checks per registry, so a batch is materially less work than the same names individually, and it draws on a separate budget of 200 domains per 60 seconds (counted per domain, not per call) rather than the single check's 10 per 10 seconds. **Read all three result lists — they mean different things.** `domains` is keyed by domain name and each value has the same shape as `check_domain`'s response. `invalid` holds entries that are not checkable at all (not a domain, unsupported TLD); one bad entry does NOT fail the call, so the other names still come back answered. `unresolved` holds domains the registry did not answer for — these are **neither available nor taken**, and reporting them as unavailable would be wrong. Retry those. Duplicates are removed before the budget is charged. More than 25 names returns BULK_CHECK_TOO_MANY and checks nothing, rather than silently truncating, so split longer lists yourself. Synchronous, no polling — 25 mixed TLDs answers in roughly three seconds. One exception to watch: a few registries accept only a few domains per command and .de accepts exactly one, so a batch heavy in those TLDs returns BULK_CHECK_TOO_SLOW without checking anything. Group .de names into their own small calls. RATE_LIMIT_EXCEEDED with `reason: SUSTAINED_BULK_CHECKING` means the account has been checking at scanning volume (hundreds of names an hour, few registrations) and is held to 50 names per 5 minutes for a day. Do not retry in a loop: check only names the user might actually buy, wait `retryAfter`, or tell the user support can raise the limit for a legitimate high-volume use.
  • get_registration_requirementsGet a TLD's registration requirements as JSON Schema. Returns whether the TLD is registerable via the API (`apiRegisterable`), the `register_domain` request body as a JSON Schema (with the fixed term, cost, agreeToTerms), WHOIS-privacy / validated-address / registrant-only flags, and — for TLDs with registry eligibility rules (e.g. .us nexus, .ca legal type) — a second schema (`registryRequirements`) listing those fields with allowed values and labels. Call this BEFORE register_domain to confirm a TLD can be registered and to build a valid payload, instead of discovering requirements from a failed registration.
  • get_pricingGet current Porkbun pricing: registration, renewal and transfer prices per TLD in USD. No authentication required. **Pass `tlds` whenever you know which TLDs matter** (e.g. `["com", "io"]`): without it the response lists every TLD Porkbun sells, around 900 of them. Case, a leading dot and IDN form are handled. A TLD Porkbun does not sell comes back in `unsupported` instead of being priced, and if none of them are sold the call fails with INVALID_TLD. Standard pricing only: premium names have their own per-domain price, reported by check_domain.
  • list_marketplaceBrowse domains for sale on Porkbun Marketplace: names other Porkbun customers listed themselves, not new registrations. This is ONE aftermarket source; to find whether a taken name is for sale anywhere (Afternic, Sedo, Atom, NameBright, DAX and Porkbun Marketplace together), use `search_aftermarket`. Returns each listing's domain, TLD, SLD length, price (in USD), and listing date. Filters (all optional, server-side, mirroring the porkbun.com/marketplace UI): - `query`: SLD substring match. Multi-word queries: prefix a word with `-` to exclude it (e.g. `"ai -test"` matches SLDs containing 'ai' but not 'test'). - `tlds`: limit to a list of TLDs (without the leading dot). - `sld_length_min`, `sld_length_max`: SLD character length bounds. - `sort_name`: `domain` | `tld` | `price` | `sld_length`. - `sort_direction`: `asc` | `desc`. When any filter is set, server returns up to 1000 matching listings. With no filters, supports raw pagination via `start` / `limit` (max 5000).
  • list_domainsList domains in the authenticated Porkbun account. Returns one page (up to 1000) with metadata: expire date, auto-renew, security lock, WHOIS privacy, API access opt-in, and notLocal flag. Filters (all optional): - `domain`: exact match. Returns 0 or 1. - `name_contains`: substring search on domain name. - `tlds`: limit to these TLDs (no leading dot). - `expiring_within_days`: only domains expiring within N days. Useful for renewal automation. - `auto_renew`: 'yes' or 'no'. - `api_access`: 'yes' or 'no'. Filter to domains an API key can actually operate on — eliminates `API_ACCESS_DISABLED` errors downstream. - `sort_name`: 'domain' | 'tld' | 'create_date' | 'expire_date'. Default expire_date. - `sort_direction`: 'asc' | 'desc'. Default asc. For a single domain by name, use `get_domain` instead — cleaner shape and 404-on-not-found semantics.
  • get_domainGet the metadata for a single domain in the authenticated account: status, TLD, create date, expire date, security lock, WHOIS privacy, auto-renew, API access opt-in, and (optionally) labels. Returns an error with code `DOMAIN_NOT_FOUND` if the domain isn't in the account; the error's `account` field names the account the key belongs to, so a domain in a different account is easy to tell from a missing one.
  • get_balanceGet the available account credit balance for the authenticated Porkbun account. Returns the balance in cents (integer) and a human-readable display string (e.g. `$12.34`). Call it before offering to buy anything: a purchase is paid from this prepaid balance, not charged to a card, so this number decides whether a registration, renewal or transfer goes through as-is. If it is short and the account has a saved card, `top_up_account_credit` adds credit in one call (ask the user first, with the amount); `get_auto_topup` reports whether a card is on file. Without a card, or if you do not charge cards on a user's behalf, the user adds credit with **buy account credit** at https://porkbun.com/account/credit.
  • get_auto_topupRead the account's auto top-up configuration: whether it is on, the balance threshold that triggers it, the amount added, whether a payment method is actually on file, and `effectiveAmount` — what `top_up_account_credit` would charge right now. If `paymentMethodOnFile` is false the settings are inert: nothing can be charged and auto top-up will never fire, and a card can only be saved on porkbun.com, never through the API.
  • top_up_with_usdcAdd account credit by paying USDC on Base, through a Coinbase checkout. Use it to add credit when a purchase failed with INSUFFICIENT_FUNDS and there is no saved card (or the user would rather pay in crypto); to pay for just that one purchase, retry it with `pay_with_usdc: true` instead. Nothing is charged by this call; it returns two ways to pay: - `x402Url`: if you have a crypto wallet tool that can pay x402 URLs (for example Coinbase's Agentic Wallet or Wallet MCP, "make an x402 request"), pay it with that, with the user's OK and the dollar amount. It is a gasless USDC transfer on Base. - `payUrl`: a Coinbase page for the user to pay themselves. Credit lands when the payment confirms (usually within a minute), less Coinbase's fee of about 1% (`estimatedCredit_cents` in the response); check with `get_usdc_topup_status` and then retry the purchase. `amount_cents` is integer US cents, $1 to $500. To cover an INSUFFICIENT_FUNDS shortfall exactly (a $2.50 domain, say), use that error's `usdcAmountToCover`, which allows for the fee. Payments are on-chain and cannot be reversed. Not available on sandbox keys (use `sandbox_topup`). Fails with CRYPTO_NOT_AVAILABLE for accounts that cannot use crypto (bank-transfer-only accounts); they add credit on porkbun.com instead. Credit added over the API counts toward the account's monthly top-up limit ($100 a month unless the account holder set their own; TOPUP_LIMIT_EXCEEDED), and unpaid checkouts from the last day count as if paid. Guide: https://porkbun.com/llms/guides/pay-with-usdc-x402
  • top_up_with_card_mppGet a payment link that adds account credit when paid with the user's CARD over MPP (Machine Payments Protocol), using a Stripe Shared Payment Token from their agent wallet (Stripe's Link Agent Wallet). Use it to add credit when a purchase failed with INSUFFICIENT_FUNDS and no card is saved at Porkbun; to pay for just that one purchase, retry it with `pay_with_card: true` instead, which only charges if the purchase succeeds. Nothing is charged by this call. Pay the returned `payUrl` with an MPP-capable wallet tool, for example Stripe's Link CLI or its MCP server (`link-cli mpp pay <payUrl> -X POST --context "..."`). Newer Link CLI versions stop after creating the spend request: once the user approves in Link, run `link-cli mpp pay <payUrl> --spend-request-id <lsrq_id> -X POST` to complete it. Link rejects a `--context` shorter than 100 characters, and the payment fails without it: write one or two full sentences the user will read when approving, saying what it is for and the dollar amount (e.g. "Adding $20.00 of prepaid credit to my Porkbun account so my AI assistant can register the domains I asked for."). Word it freshly for each payment; Link can refuse a repeat of an identical request. The link answers 402 with the terms, the wallet asks the user to approve the amount, and the credit is added immediately (the response shows the new balance). Tell the user the dollar amount first. The link is single-use, valid 15 minutes. `amount_cents` is integer US cents, $5 to $500; same limits as card top-ups. Not available on sandbox keys (use `sandbox_topup`). If you cannot pay MPP links, `top_up_with_usdc` or the user adding credit at porkbun.com are the alternatives.
  • +108 more on the listing page

Ready-to-paste client configs

Paste either block (or both) into your client config, e.g. claude_desktop_config.json or ~/.cursor/mcp.json. We only show a config when the install command is confirmed.

Faable — Deploy & Auth

mcpServers (Claude Desktop / Cursor)
{
  "mcpServers": {
    "faable-deploy-auth": {
      "command": "npx",
      "args": [
        "-y",
        "@faable/faable"
      ]
    }
  }
}

Porkbun (official)

mcpServers (Claude Desktop / Cursor)
{
  "mcpServers": {
    "porkbun-official": {
      "command": "npx",
      "args": [
        "-y",
        "@porkbunllc/mcp-server"
      ]
    }
  }
}

Frequently asked questions

Faable — Deploy & Auth is categorized under Cloud Platforms and uses a remote HTTP/SSE transport. Porkbun (official) belongs to Cloud Platforms and uses a local stdio subprocess. Pick Faable — Deploy & Auth for cloud platforms work and Porkbun (official) for cloud platforms.

Copy the mcpServers block from the config section on this page into your client's config (for example claude_desktop_config.json or ~/.cursor/mcp.json), then fully restart the client.

Faable — Deploy & Auth has no declared pricing — check the project's own site. Porkbun (official) has no declared pricing — check the project's own site. Auth: oauth 2.0. If a server needs environment variables such as API keys, define them under the env key in your client's MCP config.

Yes. MCP clients support multiple servers: add faable-deploy-auth and porkbun-official as separate keys in the same mcpServers object, and your assistant will call tools from either one.

On AllMCPs, Faable — Deploy & Auth has a quality signal of 59/100 (Good) with 0 views, 0 installs and 1 GitHub stars. Porkbun (official) has 68/100 (Great) with 0 views, 0 installs and 33 GitHub stars.