Official Porkbun MCP Server について
Porkbun公式のMCPサーバーで、ドメインやDNSを管理するAIエージェント向けにPorkbun v3 APIのツールを提供します。ホスト型接続に加え、サンドボックスとモック環境も備えています。
主な機能
- 01ドメインの空き状況と料金の確認
- 02ドメインの登録・更新・移管
- 03DNS、DNSSEC、転送の管理
- 04連絡先、ネームサーバー、Webhookの管理
- 05Porkbun APIドキュメントの検索
- 06サンドボックスとモック環境
活用シーン
- 01ドメイン登録や更新の費用確認
- 02移管前のDNSレコードの検出と取り込み
- 03ドメインのDNSと転送設定の管理
- 04サンドボックスでのエージェント操作のテスト
MCP 対応
互換クライアント向けにPorkbun v3 APIのツールを公開するMCPサーバーです。Porkbunのホスト型エンドポイントに接続でき、サンドボックスと認証情報不要のモック環境も利用できます。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://mcp.porkbun.com/mcpclaude mcp add --transport http official-porkbun https://mcp.porkbun.com/mcp{"mcpServers":{"official-porkbun":{"type":"http","url":"https://mcp.porkbun.com/mcp"}}}Cursor で開く{"servers":{"official-porkbun":{"type":"http","url":"https://mcp.porkbun.com/mcp"}}}VS Code で開く{"mcpServers":{"official-porkbun":{"type":"http","url":"https://mcp.porkbun.com/mcp"}}}{"mcpServers":{"official-porkbun":{"serverUrl":"https://mcp.porkbun.com/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
詳細
Porkbun MCP サーバー(公式)
Porkbun が構築・保守する、Porkbun 公式 MCP サーバー(Owen Borseth、Porkbun の CTO によるものです)。npm では @porkbunllc/mcp-server として公開され、Porkbun により https://mcp.porkbun.com/mcp でホストされています。GitHub や MCP ディレクトリにあるその他の「Porkbun MCP」プロジェクトは、公開 API を利用するコミュニティ製のラッパーであり、Porkbun が作成・サポートしているものではありません。公式 MCP Registry では com.porkbun/mcp として登録されています。この名前は、porkbun.com の管理権限を証明した者にのみレジストリから付与されます。コミュニティのプロジェクトは io.github.* の名前で登録されています。
Model Context Protocol サーバーです。Porkbun v3 API を AI エージェント向けのネイティブツールとして提供します。Claude Desktop、Cursor、Cline など、MCP 対応のあらゆるクライアントで利用できます。
セットアップガイド、クライアント設定、全ツール一覧:porkbun.com/mcp
インストール不要:ホスト型コネクターを利用できます。 Porkbun はこのサーバーを https://mcp.porkbun.com/mcp で運用しています。この URL を ChatGPT または Claude のカスタムコネクターとして追加するか、Claude Code で claude mcp add --transport http porkbun https://mcp.porkbun.com/mcp を実行し、Porkbun にサインインして承認してください。コピーする API キーは不要です。(OAuth クライアント ID とシークレットを求めるアプリは、token_endpoint_auth_method: client_secret_post を指定して https://porkbun.com/oauth2/register で登録できます。OAuth に対応していないクライアントは、アカウントの API キーペアを X-API-Key と X-Secret-API-Key ヘッダーとして送信できます。また、シークレットを 1 つだけ保存できる場合は、Authorization: Bearer pk1_…:sk1_… として送信できます。)クライアントごとの手順:ChatGPT または Claude を接続する。デプロイ方法:deploy/README.md。ChatGPT と Claude のディレクトリ掲載版では、より限定されたバリアント /mcp/no-purchases(購入を伴うツールやシークレットを返すツールはありません)を使用します。提供されるツールが変わるものであり、接続で実行できる操作が変わるわけではありません。
ステータス: Porkbun v3 の全機能をカバーしています(ドメイン、DNS、SSL、ホスティング、ウェブフック。現在のバージョンは上記の npm バッジを参照)。ChatGPT と Claude 向けに、API キーの代わりにサインインを利用できるホスト型サービス
https://mcp.porkbun.com/mcpも運用しています(OAuth に対応していないクライアントは API キーペアを送信できます)。WordPress 向け Cloud をプロビジョニングし、エージェントが作成直後のサイトを管理できるよう、WordPress REST API の認証情報を発行します。ドメインをお客様自身の Cloudflare アカウントに移し、そのレコード、プロキシ、ゾーン設定を管理します。分離されたサンドボックスでは、pk1_sb_キーを使ってすべてのツールを仮想クレジット付きのシミュレーション環境で実行できます。実際のレジストリ操作、DNS の変更、課金は発生せず、署名付きウェブフックは引き続き配信されます。認証情報が不要なモックサーバーは、あらゆるエンドポイントについてスキーマに準拠したサンプルレスポンスを返します。
含まれるもの
読み取りツール(無料、支出なし、状態変更なし)
| ツール | 説明 |
|---|---|
ping | API の接続と認証情報を確認します |
check_domain | 1 つのドメインの空き状況と価格を確認します |
get_registration_requirements | TLD の登録要件を JSON Schema として取得します。API で登録可能か、作成用ペイロード、レジストリーの適格性フィールド(.us のネクサス、.ca の法的種別など)が含まれます |
get_pricing | すべての TLD の登録・更新・移管価格を取得します(認証不要) |
list_marketplace | Porkbun Marketplace を閲覧します(Porkbun の顧客が自分で出品したドメイン)。TLD、上限価格、名前の部分文字列で絞り込めます。すべてのアフターマーケットを一度に検索するには、search_aftermarket を使用します |
search_closeouts | 期限切れドメインのクローズアウトを検索します。経過日数、価格、TLD、名前の長さで絞り込み、登録日順に並べ替えられます |
search_aftermarket | 取得済みで販売中のドメイン名を検索します(Afternic、Sedo、Atom、NameBright、DAX、Porkbun Marketplace)。価格、販売種別、porkbun.com で購入するためのリンクを確認できます |
get_closeout | 1 件のクローズアウトと、確定支払総額(クローズアウト価格+更新/移管の年額)を取得します |
buy_closeout | クローズアウトを買い切ります。アカウントのクレジットを使用します |
list_domains | ドメインをページごとに取得します。TLD、有効期限、自動更新、API アクセスで絞り込めます |
get_domain | アカウント内の 1 つのドメインのメタデータを取得します |
get_balance | アカウントのクレジット残高を取得します |
get_auto_topup | 自動チャージの設定、カードが登録されているか、チャージ時の請求額を確認します |
top_up_with_usdc | Base 上の USDC でクレジットを追加します($1~$500。Coinbase の手数料は約 1%のため、INSUFFICIENT_FUNDS の usdcAmountToCover を使用してください)。エージェントのウォレットから直接支払える x402 URL と、ユーザー用の決済ページを返します |
get_usdc_topup_status | USDC によるチャージが支払い済みで、クレジットに反映されたかを確認します |
top_up_with_card_mpp | エージェントが MPP 経由でユーザーのカードを使って支払うための決済リンクです(Stripe Link エージェントウォレット)。クレジットはすぐに反映されます |
send_phone_verification_code | アカウントに登録されている電話番号に認証コードを SMS(または通話)で送信し、VERIFICATION_REQUIRED を解除します |
confirm_phone_verification | ユーザーが受け取ったコードで電話番号を認証します |
send_email_verification_code | アカウントに登録されているメールアドレスに認証コードを送信し、VERIFICATION_REQUIRED を解除します |
confirm_email_verification | そのメールで受け取ったコードを使ってメールアドレスを認証します |
list_invoices | アカウントの請求書を新しい順に一覧表示します。日付、支払い/返金状況、差引合計、ドメイン、および porkbun.com の各請求書へのリンクが含まれます |
get_invoice | 1 件の請求書をデータとして取得します。請求先、支払い方法、契約条件と有効期限が記載された明細、合計が含まれます |
get_invoice_pdf | 請求書 PDF を埋め込みファイルとして取得し、サインインなしで使える 15 分間有効なダウンロードリンクも取得します |
get_api_settings | 実際に適用される月間上限(購入時の spendLimit、追加クレジットの topupLimit。それぞれデフォルトは $100)、今月の支出額と追加額、アラート、自動チャージ設定を取得します |
get_nameservers | ドメインの現在のネームサーバーを取得します |
list_dns_records | ドメインの DNS レコードを一覧表示します |
scan_dns_records | ドメインの稼働中のネームサーバーから、現在公開されている内容を検出します(移管前に使用してください。移管ではゾーンデータは引き継がれません) |
import_dns_records | 指定したリストまたはライブスキャンからレコードを一括作成します。冪等で、すでに存在するレコードはスキップされます |
list_dnssec_records | レジストリーで公開されている DNSSEC DS レコードを一覧表示します |
list_url_forwards | ドメインの URL 転送ルールを一覧表示します(正確な redirectType:301/302/307/マスク転送を含む) |
list_email_forwards | ドメインのメール転送(アドレス → メールボックス)を、上限と転送用 MX が設定されているかどうかとともに一覧表示します |
list_mailboxes | メールホスティングのメールボックス(設定待ちのものを含む)、追加時の価格、メールクライアントの設定を一覧表示します |
list_glue_records | ドメインのグルーレコード(ホストと IP の対応)を一覧表示します |
list_transfers | 進行中および最近の受信移管を一覧表示します |
get_transfer_status | 特定の受信移管のステータスを取得します |
get_ssl_bundle | ドメイン用の無料の Porkbun 発行 SSL バンドルを取得します |
get_contacts | ドメインの 4 つの連絡先(登録者/管理者/技術/請求先)と現在の値を取得します |
get_webhook_event_types | Webhook エンドポイントで購読できるイベントタイプを一覧表示します |
list_webhooks | Webhook エンドポイント(URL、イベント、ステータス、配信状況、シークレット)を一覧表示します |
get_webhook | ID で指定した 1 つの Webhook エンドポイントを取得します |
list_webhook_deliveries | 最近の配信試行(ステータス、試行回数、HTTP、エラー)を一覧表示します。履歴は約 30 日分です |
get_webhook_delivery | 署名付きペイロード全体を含む、1 件の配信を取得します |
list_doc_topics | Porkbun API ドキュメントのトピック(ドキュメントの索引)を一覧表示します |
read_doc | ドキュメントのページを Markdown として読み込みます(dns、webhooks など、または overview/full) |
search_docs | リファレンス全体をキーワード検索し、関連性の高いセクションを返します |
list_doc_topics/read_doc/search_docs ツールを使うと、エージェントは会話中に Porkbun 独自のドキュメント(/llms の Markdown サーフェス)を参照して回答の根拠にできます。ウェブ閲覧は不要で、API 認証情報も必要ありません。API の調査だけを目的にサーバーを追加し、実際の操作を行う準備ができたらキーを渡せます。 |
アカウントへの入金(クレジットではなく、保存済みのカードに請求)
| ツール | 機能 |
|---|---|
configure_auto_topup | 自動入金をオン/オフにします。残高が threshold_cents を下回ると、保存済みの支払い方法で amount_cents 分を追加します。API で設定できる金額の上限は $500 です |
top_up_account_credit | 保存済みのカードに今すぐ請求し、クレジットを追加します。amount_cents を省略すると、アカウントに設定済みの金額(未設定の場合は $50)を使います。1回限りの金額を指定する場合は amount_cents(500-50000)を渡します。必ず先にユーザーに金額をドルで確認してください。1日5回、1か月20回までで、月間支出上限の範囲内です |
ドメインのライフサイクルに関する書き込み(アカウントのクレジットを使用)
| ツール | 説明 |
|---|---|
register_domain | 新しいドメインを登録します。まず check_domain を呼び出して価格を確認してください。クレジット、直接の USDC(pay_with_usdc)、またはカードでの保留金(pay_with_card)で支払います |
renew_domain | 既存のドメインを更新します |
transfer_domain | ドメインの移管を開始します(transferId を返します。完了まで5~7日かかります) |
get_transfer_setup | 保留中のドメイン移管の状況と、待機中の処理を確認します |
prepare_transfer | ドメインが移動する前に、保留中の移管用の DNS ゾーンを作成します |
start_transfer | 保留中の移管をレジストリに進めます(ゾーンが空の場合は拒否されます) |
cancel_transfer | 保留中のドメイン移管をキャンセルし、返金します |
update_transfer_auth_code | 停滞している移管の認証コードを置き換え、再度キューに登録します |
ドメイン設定に関する書き込み(無料)
| ツール | 説明 |
|---|---|
update_auto_renew | 自動更新をオンまたはオフにします |
update_nameservers | ドメインのネームサーバーリストを置き換えます(追記ではなく全件置換です) |
update_contacts | ドメインの連絡先を編集します。登録者/管理者/技術担当者/請求先のうち、任意の項目を変更できます。登録者を変更すると、新しい所有者への通知メールが送信されます。住所確認が必要な TLD(.de/.nrw/.uk/.us/.ca/.au/.eu/.in/.nz の各種)では登録者の住所が検証されます。address_validation_choice で解決してください。.au では、登録者名または組織名の変更はウェブサイト上のみで行う所有権移転です。 |
DNS/DNSSEC/URL・メール転送/グルーレコードに関する書き込み(無料)
| ツール | 説明 |
|---|---|
create_dns_record | 新しい DNS レコード(A、AAAA、CNAME、MX、TXT など)を作成します |
update_dns_record | ID を指定して既存の DNS レコードを更新します |
delete_dns_record | ID を指定して DNS レコードを削除します |
create_dnssec_record | DNSSEC DS レコードをレジストリに送信します |
delete_dnssec_record | キータグを指定して DNSSEC DS レコードを削除します |
create_url_forward | URL 転送ルールを作成します(恒久的/一時的/マスク。redirect_type に 301/302/307/masked を指定できます) |
delete_url_forward | ID を指定して URL 転送ルールを削除します |
create_email_forward | ドメインのアドレス宛てのメールを別のメールボックスに転送します。他のメールサービスの MX を置き換える場合や SPF を書き換える場合は、先に確認を求めます(DNS_CHANGE_CONFIRMATION_REQUIRED) |
delete_email_forward | メール転送を削除します。最後の転送を削除すると、転送用の MX/SPF も削除されます |
setup_mailbox | 待機中のメールホスティング用メールボックスを設定します(有料、または各登録に含まれる無料トライアル)。パスワードが指定されていない場合は自動生成します |
set_email_password | メールボックスのパスワードを変更します |
create_glue_record | グルーレコード(レジストリに登録するホストと IP の対応)を作成します |
update_glue_record | グルーレコードの IP リストを置き換えます |
delete_glue_record | ホストを指定してグルーレコードを削除します |
セキュアな静的ホスティング
| ツール | 説明 |
|---|---|
list_hosting_plans | API で申し込み可能なホスティング製品とプランを、価格(セント)、期間、トライアル期間、機能とともに一覧表示します |
create_hosting | sku(list_hosting_plans から取得)を指定して、ドメインのホスティングを申し込みます。ドメインごとの初回申し込みは15日間の無料トライアルで、終了後はプラン価格で自動更新されます。解約後に再度申し込む場合は、アカウントクレジットに請求されます(無料トライアルはドメインごとに1回のみ)。ドメインのネームサーバーを Porkbun に切り替えます(agree_to_nameserver_change が必要です)。acknowledged_cost の指定が必要です。dry_run に対応しています |
create_mailbox | メールホスティングのメールボックス(年額36ドル、毎年更新)を購入し、1回の呼び出しでセットアップします。cost_cents は実際の料金と一致する必要があります。dry_run では料金を確認できます。クレジット、または pay_with_card / pay_with_usdc で支払えます |
renew_mailbox | メールボックスを現在の renewalPrice で1年間延長します。セットアップ済みのメールボックスも自動更新されます。クレジット、または pay_with_card / pay_with_usdc で支払えます |
get_hosting | ドメインのホスティング状況(プラン、トライアル、期限、自動更新)を取得します |
deploy_site | 静的ファイル(base64、1回あたり10MB以下)をドメインのホスティングにアップロードします |
list_hosting_files | ドメインのホスティング内にあるパス配下のファイルを一覧表示します |
delete_hosting_file | ドメインのホスティング内のファイル(または空のディレクトリ)を削除します |
make_hosting_dir | ドメインのホスティング内にディレクトリを作成します(必要な親ディレクトリも作成します。ファイルパスへのデプロイ時には、ディレクトリが自動作成されます) |
delete_hosting | ドメインのホスティングを解約します |
WordPress 向けクラウド
CLOUDWORDPRESS… の SKU を指定して create_hosting を実行すると、静的ホスティングの代わりにマネージド WordPress サイトが作成されます(ファイル用ツールは適用されません。WordPress から管理してください)。
| ツール | 説明 |
|---|---|
create_wp_credentials | エージェントが HTTP Basic を使って /wp-json/ 経由でサイトを操作できるよう、WordPress のアプリケーションパスワードを発行します(返されるのは1回のみです)。デフォルトでは最小限の権限を持つ専用の editor ユーザーを使用します。administrator を使うには明示的な承認が必要です(プラグインをインストールしてコードを実行できます) |
list_wp_credentials | サイト上のアプリケーションパスワードを一覧表示します(メタデータのみ。パスワードを再取得することはできません) |
delete_wp_credentials | uuid を指定してアプリケーションパスワードを1つ、またはすべて無効にします |
Cloudflare への接続(ドメインを顧客自身の Cloudflare アカウントに移行します)
Cloudflare アカウント自体の接続は人間が行う手順です。Cloudflare の同意画面をブラウザーで完了する必要があります。そのため、get_cloudflare_connection はユーザーに表示する URL を返し、その後のポーリング対象として機能します。それ以降はすべて自動化されています。
get_cloudflare_connection— 接続済みかどうか、および未接続の場合に人間がアクセスする場所を確認します(ポーリングに使用)list_cloudflare_inventory— 各ドメインと、その移行可否および平易な説明を一覧表示しますpreview_cloudflare_move— 移行時にコピーまたは削除されるレコードを正確に表示します。キューには追加しませんconnect_domains_to_cloudflare— 1つ以上のドメインをキューに追加します(非同期です。queued を返し、connected を返すことはありません)get_cloudflare_queue/get_cloudflare_domain_status— 進行状況と監査証跡を確認しますretry_cloudflare_domain/rollback_cloudflare_domain— 失敗したドメインを再度キューに追加するか、Porkbun のネームサーバーに戻しますget_cloudflare_records/create_cloudflare_record/edit_cloudflare_record/delete_cloudflare_record— ドメインの移行後に実際に応答するゾーンの DNS を管理しますset_cloudflare_proxy— レコードごとにオレンジ色の雲を有効または無効にします(移行では意図的に、常に DNS のみの状態でインポートします)get_cloudflare_zone— Cloudflare 独自のゾーン状態とネームサーバーの不一致検出を確認しますget_cloudflare_zone_settings/set_cloudflare_zone_settings— SSL モードなどの設定を取得・変更しますdisconnect_cloudflare— 権限付与を解除します(移行済みのドメインは引き続き機能します)
サンドボックス/テストモード
サンドボックス API キー(公開キーは pk1_sb_、シークレットキーは sk1_sb_ で始まります)を使用すると、上記のすべてのツールが隔離されたテスト環境に接続します。サーバーは同じで、キーを切り替えるだけです。登録、更新、移管、DNS、連絡先、グルーレコード、DNSSEC はすべて、別のサンドボックスデータストアでシミュレーションされます。実際のレジストリ操作、DNS の変更、証明書の発行、課金はありません。サンドボックスアカウントには最初から仮想のアカウントクレジットがあり、利用可否と価格は実際のカタログを反映し、すべてのレスポンスに "sandbox": true が含まれます。porkbun.com/account/api でサンドボックスキーを作成してください。または、create_sandbox_key を使えばすぐに発行できます。サインアップも認証情報も不要です。(ホスティングとメールのエンドポイントはシミュレーションされず、サンドボックスキーで呼び出すと SANDBOX_UNSUPPORTED が返されます。)
| ツール | 説明 |
|---|---|
request_api_key | アカウント所有者がブラウザーで承認するライブ API キーの作成を開始します(一部の権限のみを付与することもできます)。承認リンクを返します |
retrieve_api_key | 承認後、新しいキーのペアを一度だけ取得します |
create_sandbox_key | 認証情報は不要です — 使い捨てのサンドボックスキーのペア(pk1_sb_/sk1_sb_、仮想クレジット $1000)をすぐに発行するため、エージェントはキーを持っていなくてもテストを開始できます。省略可能な scopes(例:["dns"])を指定すると、最小権限の設定をテストするための制限付きキーを発行します |
sandbox_topup | サンドボックス専用 — アカウントに仮想クレジットを付与します(デフォルトは $1000)。残高がなくなった後も、有料操作のテストを続けられます |
sandbox_reset | サンドボックス専用 — サンドボックスアカウントのドメイン、DNS、注文、クレジットを消去し、$1000 を再付与します。テスト実行の間に状態をリセットできます |
sandbox_trigger_webhook | サンドボックス専用 — 任意の種類のサンプル署名付き Webhook イベント(cron によって発生する domain.expiring を含む)を登録済みのエンドポイントに送信し、ハンドラーと署名検証を任意のタイミングでテストできます |
モックサーバー(認証情報不要)
mock_call は、キー不要で任意のエンドポイントのスキーマに準拠したサンプルレスポンスを返します。セットアップは不要です。domain/listAll や dns/create/example.com のような path を渡してください(指定しない場合は、モック可能なすべてのエンドポイントを一覧表示します)。または、エラー形式を指定するには error: true を設定します。レスポンスはデータストアに一切触れず、ライブ API の形式と完全に一致するため、認証情報を用意する前にクライアントコードを作成してテストできます。
| ツール | 説明 |
|---|---|
mock_call | 認証情報は不要です — 任意のエンドポイントのスキーマに準拠したサンプルレスポンスを返します(path は実際のルートに対応します。エラー形式には error: true を指定します。path を省略すると、モック可能なすべてのエンドポイントを一覧表示します) |
Webhook 書き込み(無料)
| ツール | 説明 |
|---|---|
create_webhook | 署名付きイベントペイロードを受け取る HTTPS エンドポイントを登録します。署名シークレットを返します |
update_webhook | エンドポイントの URL、イベント、またはステータス(ACTIVE/DISABLED)を変更します |
rotate_webhook_secret | エンドポイントの新しい署名シークレットを生成します |
test_webhook | 到達可能性と署名検証を確認するため、webhook.test イベントを送信します |
resend_webhook | 過去の配信を再キューに追加します(元のイベント ID を再利用します) |
delete_webhook | Webhook エンドポイントを削除します |
登録したイベントが発生すると(domain.registered、domain.renewed、domain.transfer.completed、domain.expiring、dns.record.created|updated|deleted、cloudflare.connect.completed|failed、account.verification.code_sent|completed)、Porkbun は署名付き JSON ペイロードをエンドポイントに POST します。イベントごとのフィールドについては、https://porkbun.com/llms/webhooks を参照してください。X-Porkbun-Signature ヘッダーを検証してください。この値は、エンドポイントのシークレットをキーとして {timestamp}.{rawBody} の HMAC-SHA256 を計算し、先頭に sha256= を付けたものです。{timestamp} には X-Porkbun-Webhook-Timestamp ヘッダーの値を使用します。
Claude plugin
plugin/ は Claude プラグイン(claude.ai、Cowork、Claude Code)です。https://mcp.porkbun.com/mcp/no-purchases のホスト型コネクターと、4 つのスキルが含まれます。publish-website(Claude が構築したサイトを、アップロード手順を提示する代わりに Porkbun Secure Static Hosting に公開する)、change-dns-safely、diagnose-domain(サイトの停止、メールのバウンス、DNS の更新遅延を診断する)、move-dns-to-porkbun です。コードは含まれていません。Claude Code にインストールするには、/plugin marketplace add oborseth/Porkbun-MCP を実行し、続けて /plugin install porkbun@porkbun を実行します(リポジトリのルートには ./plugin を参照するマーケットプレイスファイル .claude-plugin/marketplace.json があります)。または、claude --plugin-dir ./plugin を実行して作業コピーを試してください。フォルダーを変更するたびに、plugin/.claude-plugin/plugin.json の version を更新してください。
Gemini CLI
gemini extensions install https://github.com/oborseth/Porkbun-MCP
ホスト型サーバー(リポジトリのルートにある gemini-extension.json)と、使用ルールを記載した短い GEMINI.md が追加されます。その後、/mcp auth porkbun を実行して Porkbun アカウントにサインインしてください。gemini-extension.json の version は package.json と一致させてください。拡張機能ギャラリーにはタグ付きリリースが反映されます。
インストール
Node.js 18 以降が必要です。
npx -y @porkbunllc/mcp-server
これにより、必要に応じて最新バージョンがダウンロードされ、実行されます。グローバルインストールは不要です。
MCP クライアントを設定する
Claude Desktop
~/Library/Application Support/Claude/claude_desktop_config.json(macOS)または %APPDATA%\Claude\claude_desktop_config.json(Windows)に以下を追加します。
{
"mcpServers": {
"porkbun": {
"command": "npx",
"args": ["-y", "@porkbunllc/mcp-server"],
"env": {
"PORKBUN_API_KEY": "pk1_your_public_key_here",
"PORKBUN_SECRET_API_KEY": "sk1_your_secret_key_here"
}
}
}
}
Claude Desktop を再起動します。ツール選択画面に Porkbun のツールが表示されます。
ドキュメントのみ、キー不要: ドキュメントツール(
search_docs、read_doc、list_doc_topics)は認証情報なしで使えるため、サーバーを API の調査にのみ使う場合はenvブロック全体を省略できます。認証が必要なツールは、キーを追加するまで「set PORKBUN_API_KEY」という明確なメッセージを返します。
Cursor / Cline / Continue
Cursor、ワンクリック: Porkbun を Cursor に追加 すると、ホスト型サーバー(https://mcp.porkbun.com/mcp)が追加されます。初回使用時に Porkbun にサインインするだけで、API キーは不要です。ここからリンクを開けない場合(一部のサイトでは cursor:// リンクが削除されます)は、https://porkbun.com/mcp のボタンを使用してください。
ローカルサーバーの場合、MCP 対応エディターの多くは上記と同じ mcpServers 設定ブロックを使用します。正確な場所については、お使いのクライアントのドキュメントを参照してください。エージェントがインストールする場合は、llms-install.md を参照してください。
API キーを取得する
porkbun.com/account/api で API キーを作成してください。公開キー(pk1_…)とシークレットキー(sk1_…)の両方が必要です。
または、アシスタントにキーを取得させることもできます。サーバーはキーなしで起動し、request_api_key(認証情報は不要)は、新しいキーを承認するためのリンクを返します。必要に応じて、一部の権限だけを付与できます。その後、retrieve_api_key によって、アシスタントにキーのペアが一度だけ渡されます。以下の設定に追加し、サーバーを再起動してください。
デフォルトでは、API アクセスはドメインごとにオプトインします。API を使用してすべてのドメインを管理するには、同じ設定ページにある「Opt In All Domains」トグルを有効にしてください。そうでない場合は、Domain Management で各ドメインの API アクセスを個別に有効にする必要があります。
推奨:キーの利用範囲をエージェントに限定する
各 API キーには、3 つの任意の制限を設定できます。キーの作成時に porkbun.com/account/api で設定するか、作成後にキーの横にある歯車アイコンから設定できます。
- 許可する IP — 1 行につき 1 件です。IPv4/IPv6 アドレス単体および CIDR 範囲(
198.51.100.0/24、2001:db8::/32)に対応しています。その他の IP からのリクエストは、ほかのチェックが実行される前に HTTP 403IP_NOT_ALLOWEDで失敗します。 - 許可するドメイン — 1 行につき 1 件で、完全一致です。リストにないドメインに対する操作は、HTTP 403
DOMAIN_NOT_ALLOWEDで失敗します。 - 権限 — フルアクセス、読み取り専用、購入以外の管理、またはカスタムスコープ(
read、dns、domains、email、hosting、purchase、funding、account)。スコープ外のツール呼び出しは HTTP 403INSUFFICIENT_SCOPEで失敗し、変更は一切行われません。pingではキーのscopesが表示されます。
フィールドが空の場合は制限なしとなり、現在の動作と同じです。MCP サーバーにキーを渡す場合は、次の方法を推奨します。
- エージェント専用の新しいキーを作成します(マスターキーは使用しないでください)。
- エージェントが管理する必要のあるドメインを指定します。
- 必要な権限だけを付与します(多くの場合は購入以外の管理)。
- エージェントの送信元 IP がわかっている場合は、それも指定します。
キーが誤って漏えいした場合の被害範囲を、「アカウント上のあらゆる操作」から「この IP からの、これらのドメインに対する操作」に縮小できます。
環境変数
| 変数 | 必須 | 用途 |
|---|---|---|
PORKBUN_API_KEY | ライブ操作の場合 | Porkbun の公開 API キーです。省略すると、認証情報を必要としないツール(ドキュメント、create_sandbox_key、request_api_key/retrieve_api_key)のみを使用します。 |
PORKBUN_SECRET_API_KEY | ライブ操作の場合 | Porkbun のシークレット API キーです。省略すると、認証情報を必要としないツール(ドキュメント、create_sandbox_key、request_api_key/retrieve_api_key)のみを使用します。 |
PORKBUN_BASE_URL | いいえ | API のベース URL を上書きします(例:api-betamax.porkbun.com/api/json/v3 に対するテスト)。 |
PORKBUN_DOCS_BASE | いいえ | *_doc(s) ツールが使用するドキュメントのホストを上書きします(デフォルトは https://porkbun.com)。 |
PORKBUN_X402_PRIVATE_KEY | いいえ | USDC を保有する Base ウォレットの秘密鍵(0x…)です。購入ツールで pay_with_usdc: true を指定すると、1 回の呼び出しで直接支払えるようになります。使用する金額だけを保有するウォレットを使用してください。 |
PORKBUN_X402_MAX_CENTS | いいえ | サーバーが署名する USDC 決済の上限額(セント単位)です(デフォルトは 5000、$50)。 |
ローカル開発
git clone https://github.com/oborseth/Porkbun-MCP.git
cd Porkbun-MCP
npm install
npm run build
npm start # or: node dist/index.js
このサーバーは、stdio 経由で JSON-RPC 2.0 を使用します。シェルからスモークテストを実行するには、次のようにします。
(printf '%s\n' \
'{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test","version":"1.0"}}}' \
'{"jsonrpc":"2.0","method":"notifications/initialized"}' \
'{"jsonrpc":"2.0","id":2,"method":"tools/list"}') \
| PORKBUN_API_KEY=pk1_… PORKBUN_SECRET_API_KEY=sk1_… node dist/index.js
USDC で購入料金を直接支払う(x402)
register_domain、renew_domain、transfer_domain、buy_closeout、create_hosting、create_mailbox、renew_mailbox では pay_with_usdc: true を指定でき、アカウントのクレジットを介さずに支払えます。API は x402 の支払い要件(Base 上の USDC、正確な価格)を返します。その後、次のように処理します。
PORKBUN_X402_PRIVATE_KEYが設定されている場合:このサーバーが署名し、同じツール呼び出し内で購入が完了します。署名するのは、Base 上の USDC で提示価格と完全に一致する条件のみで、金額がPORKBUN_X402_MAX_CENTSを超えることはありません。- 設定されていない場合(また、誰のキーも保持しないホスト型コネクターでは常に):ツールは
checkoutId、x402Url、payUrlを含むstatus: PAYMENT_REQUIREDを返します。ウォレットツール(たとえば Coinbase のawal x402 pay <x402Url> --scheme auth-capture)を使ってx402Urlに支払うか、ユーザーにpayUrlのページで支払ってもらい、その後usdc_checkout_idを指定して同じツールをもう一度呼び出します。
支払い後に購入が失敗した場合、支払った金額はウォレットに返金されず、Porkbun アカウントのクレジットとして残ります(新しい残高とともに、その旨がエラーに表示されます)。クレジットから再試行することも、ほかの用途に使うこともできます。ガイド:USDC で支払う(x402)。
保留付きカード購入(Stripe MPP)
Stripe Link のエージェントウォレットを使用するユーザーは、同じ 5 つのツールに pay_with_card: true を指定できます。ツールは、1 回限りの payUrl と cardPaymentId を含む status: PAYMENT_REQUIRED を返します。MPP ウォレットツール(link-cli mpp pay <payUrl> -X POST --context "...")でリンクに支払います(ユーザーは Link で承認します)。これによりカードは与信枠が確保されるだけです。同じツールを card_payment_id を指定して再度呼び出します。購入が成功した場合はカードに請求され、失敗した場合は保留が解除され(請求されません)。ガイド:ユーザーのカードで支払う(MPP)。
金額パラメーターの単位はセントです
すべての金額パラメーター名は _cents で終わり、米ドルのセント単位の整数を指定します。cost_cents: 1108 は $11.08、amount_cents: 803 は $8.03 です。一部のクライアントは未加工の引数から承認プロンプトを作成するため、単位を名前に含めています。以前は amount: 803 がユーザーに「$803」と表示されていました。従来の名前(cost、amount、threshold、acknowledged_cost、price_min、price_max)も同じ単位で引き続き受け付けます。同じパラメーターの新旧両方の名前に異なる値を指定すると、API に到達する前に拒否されます。
信頼性
書き込み操作では、呼び出しごとに Idempotency-Key ヘッダーが自動的に付与されます。24 時間以内に再試行された呼び出しにはキャッシュ済みの応答が返されるため、ネットワークエラー時にも二重請求や二重登録を心配せず安全に再試行できます。
プライバシー
この MCP サーバーは、(お使いのマシン、またはホスト先で)ローカルに動作し、リクエストを HTTPS 経由で Porkbun API に直接中継する薄いクライアントです。独自のデータ収集は行いません。
- 送信するデータと送信先。 API キー/シークレットと各ツール呼び出しの引数は、
https://api.porkbun.com(認証情報を必要としないドキュメントおよびモックツールの場合はhttps://porkbun.com)にのみ送信されます。それ以外の場所には送信されません。 - 保存。 サーバーはプロセスの実行中、認証情報をメモリー上に保持します(環境変数から読み込みます)。ディスクへの書き込み、ログへの記録、データのキャッシュは行いません。
- ホスト型コネクター。
mcp.porkbun.comでは、同じコードが Porkbun のインフラストラクチャ上で動作します。API キーは保存しません。各リクエストにはユーザーの OAuth アクセストークン(OAuth を利用できないクライアントの場合は API キーのペア)が含まれ、それを Porkbun API に転送します。アクセストークンは短時間のみメモリー上に保持されます(ハッシュをキーとする有効期間 30 秒のキャッシュ)。リクエストログには、メソッド、パス、ステータス、処理時間が記録されますが、トークン、キー、リクエスト本文は記録されません。 - テレメトリーなし。 このコネクターによる分析、トラッキング、第三者とのデータ共有はありません。
- このコネクターを通じてアクセスするデータ(ドメイン、DNS、連絡先、請求情報など)はお客様の Porkbun アカウントデータであり、Porkbun のポリシーに従って取り扱われます。
データの取り扱い、保持期間、第三者に関する情報、お問い合わせ先については、Porkbun のプライバシーポリシーをご覧ください:https://porkbun.com/legal/agreement/privacy_policy
ライセンス
MIT
リンク
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。