Porkbun MCP Server について
Porkbun MCP Serverは、Porkbun API v3を通じてドメイン、DNS、SSL、ネームサーバー、転送、DNSSECを管理します。ツール経由でドメインを管理するMCP対応クライアント向けです。
主な機能
- 01ドメイン一覧と空き状況の確認
- 02DNSレコードの作成・編集・削除
- 03SSL証明書バンドルの取得
- 04ネームサーバーとURL転送の管理
- 05DNSSECレコードの作成・取得・削除
活用シーン
- 01ドメインと空き状況の確認
- 02ドメインのDNSレコード更新
- 03転送とネームサーバー設定の管理
- 04ドメインDNSSECレコードの管理
MCP 対応
stdioトランスポートを介して、Porkbun APIの操作をMCPクライアント向けのツールとして公開します。利用にはPorkbun APIキーとシークレットキーが必要です。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Porkbun MCP サーバー
Porkbun API (v3) と連携するためのツールを提供する、Model Context Protocol(MCP)サーバーです。
このサーバーを利用すると、MCP 対応クライアント(AI アシスタント、IDE 拡張機能など)から、標準化されたインターフェースを通じて Porkbun のドメイン、DNS レコード、SSL 証明書などを管理できます。
ツール
-
ping_porkbun- Porkbun API への接続と認証をテストします。
- 入力:なし
- 戻り値:クライアントのパブリック IP アドレスを含む成功メッセージ、またはエラーメッセージ。
-
list_domains- Porkbun アカウント内のドメイン一覧を取得します。
- 入力:
start(任意の数値):ドメインの取得を開始するインデックス(デフォルトは 0)。includeLabels(任意の列挙値:「yes」):ドメインラベルを含めます。
- 戻り値:ステータスや有効期限などの詳細情報を含むドメインオブジェクトの配列。
-
get_dns_records- 指定したドメインのすべての DNS レコードを取得します。
- 入力:
domain(文字列):ドメイン名。
- 戻り値:DNS レコードオブジェクトの配列。
-
create_dns_record- 指定したドメインに新しい DNS レコードを追加します。
- 入力:
domain(文字列):ドメイン名。name(任意の文字列):サブドメイン(ルートの場合は空欄、ワイルドカードの場合は *)。type(文字列):レコードタイプ(A、CNAME、MX、TXT、NS、AAAA、SRV、TLSA、CAA、HTTPS、SVCB)。content(文字列):レコードの内容/応答。ttl(任意の数値):有効期間(秒)(デフォルトは 600、最小値は 600)。prio(任意の数値):優先度(MX/SRV レコードで必須)。
- 戻り値:新しいレコード ID を含む成功メッセージ。
-
edit_dns_record- ID を指定して既存の DNS レコードを変更します。
- 入力:
domain(文字列):ドメイン名。record_id(文字列):編集するレコードの ID。name(任意の文字列):新しいサブドメイン。type(文字列):新しいレコードタイプ(A、CNAME、MX など)。content(文字列):新しいレコードの内容/応答。ttl(任意の数値):新しい有効期間(秒)(デフォルトは 600、最小値は 600)。prio(任意の数値):新しい優先度(MX/SRV レコード用)。
- 戻り値:成功メッセージ。
-
delete_dns_record- ID を指定して特定の DNS レコードを削除します。
- 入力:
domain(文字列):ドメイン名。record_id(文字列):削除するレコードの ID。
- 戻り値:成功メッセージ。
-
get_ssl_bundle- 指定したドメインの SSL 証明書バンドルを取得します。
- 入力:
domain(文字列):ドメイン名。
- 戻り値:
certificatechain、privatekey、publickeyを含むオブジェクト。
-
update_nameservers- 指定したドメインのネームサーバーを更新します。
- 入力:
domain(文字列):ドメイン名。ns(文字列の配列):ネームサーバーのホスト名の配列。
- 戻り値:成功メッセージ。
-
get_nameservers- レジストリから指定したドメインの権威ネームサーバーを取得します。
- 入力:
domain(文字列):ドメイン名。
- 戻り値:ネームサーバーのホスト名の配列。
-
add_url_forward- ドメインまたはサブドメインに URL 転送を追加します。
- 入力:
domain(文字列):ドメイン名。subdomain(任意の文字列):転送するサブドメイン(ルートの場合は空欄)。location(文字列):転送先 URL。type(列挙値:「temporary」、「permanent」):転送の種類。includePath(任意の列挙値:「yes」、「no」):リダイレクトに URI パスを含めます(デフォルトは「no」)。wildcard(任意の列挙値:「yes」、「no」):すべてのサブドメインも転送します(デフォルトは「no」)。
- 戻り値:成功メッセージ。
-
get_url_forwarding- ドメインの URL 転送レコードを取得します。
- 入力:
domain(string):ドメイン名。
- 戻り値:URL 転送レコードオブジェクトの配列。
-
delete_url_forward- ID を指定して、ドメインの URL 転送レコードを削除します。
- 入力:
domain(string):ドメイン名。forward_id(string):削除する URL 転送レコードの ID。
- 戻り値:成功メッセージ。
-
check_domain- ドメイン名が利用可能かどうかを確認します。
- 入力:
domain(string):確認するドメイン名。
- 戻り値:ドメインの利用可否、料金、プレミアムステータスを示すオブジェクト。
-
edit_dns_record_by_name_type- ドメイン、サブドメイン(任意)、タイプに一致するすべての DNS レコードを編集します。
- 入力:
domain(string):ドメイン名。type(string):編集するレコードのタイプ。name(optional string):編集するサブドメイン(ルートの場合は空欄、ワイルドカードの場合は * を指定)。content(string):一致するレコードの新しい応答内容。ttl(optional number):新しい TTL(デフォルトは 600、最小値は 600)。prio(optional number):新しい優先度(MX/SRV レコード用)。
- 戻り値:成功メッセージ。
-
delete_dns_record_by_name_type- ドメイン、サブドメイン(任意)、タイプに一致するすべての DNS レコードを削除します。
- 入力:
domain(string):ドメイン名。type(string):削除するレコードのタイプ。name(optional string):削除するサブドメイン(ルートの場合は空欄、ワイルドカードの場合は * を指定)。
- 戻り値:成功メッセージ。
-
retrieve_dns_record_by_name_type- ドメイン、サブドメイン(任意)、タイプに一致するすべての DNS レコードを取得します。
- 入力:
domain(string):ドメイン名。type(string):取得するレコードのタイプ。name(optional string):取得するサブドメイン(ルートの場合は空欄、ワイルドカードの場合は * を指定)。
- 戻り値:一致する DNS レコードオブジェクトの配列。
-
create_dnssec_record- ドメインの DNSSEC レコードをレジストリに作成します。
- 入力:
domain(string):ドメイン名。keyTag(string):キータグ。alg(string):DS データアルゴリズム。digestType(string):ダイジェストタイプ。digest(string):ダイジェスト。maxSigLife(optional string):署名の最大有効期間。keyDataFlags(optional string):キー データ フラグ。keyDataProtocol(optional string):キー データ プロトコル。keyDataAlgo(optional string):キー データ アルゴリズム。keyDataPubKey(optional string):キー データ公開鍵。
- 戻り値:成功メッセージ。
-
get_dnssec_records- レジストリでドメインに関連付けられている DNSSEC レコードを取得します。
- 入力:
domain(string):ドメイン名。
- 戻り値:キータグをキーとする DNSSEC レコードを含むオブジェクト。
-
delete_dnssec_record- キータグを指定して、レジストリでドメインに関連付けられている DNSSEC レコードを削除します。
- 入力:
domain(string):ドメイン名。keyTag(string):削除する DNSSEC レコードのキータグ。
- 戻り値:成功メッセージ。
前提条件
セットアップ
-
リポジトリをクローンします:
git clone https://github.com/miraclebakelaser/porkbun-mcp-server.git cd porkbun-mcp-server -
依存関係をインストールします:
npm install -
API キーを設定します: Porkbun API キーとシークレットキーは、複数の方法で指定できます(優先順位の高い順):
- システム環境変数: システム環境変数に
PORKBUN_API_KEYとPORKBUN_SECRET_API_KEYを設定します。 - カスタム
.envファイル: 任意の場所に.envファイルを作成し、サーバーの実行時にコマンドライン引数--dotenv-path(または-p)でそのパスを指定します(「サーバーの実行」セクションを参照)。 - デフォルトの
.envファイル: プロジェクトのルートディレクトリ(porkbun-mcp-server/.env)に.envという名前のファイルを作成し、以下の内容を記述します:PORKBUN_API_KEY=YOUR_API_KEY PORKBUN_SECRET_API_KEY=YOUR_SECRET_API_KEY
YOUR_API_KEYとYOUR_SECRET_API_KEYを実際のキーに置き換えてください。 重要: このプロジェクトをバージョン管理にコミットする場合は、.envファイルを.gitignoreに追加してください。 - システム環境変数: システム環境変数に
ビルド
TypeScript コードを JavaScript にコンパイルします:
npm run build
これにより、実行可能な JavaScript ファイルが build/ ディレクトリに作成されます。
サーバーの実行
コンパイル済みのサーバーは Node.js で直接実行できます。
通常の起動:
デフォルトの .env の場所またはシステム環境変数を使用します。
npm start
# or directly:
node build/index.js
カスタム .env パスを指定して起動:
--dotenv-path または -p 引数を使って .env ファイルの場所を指定します:
node build/index.js --dotenv-path /path/to/your/.env
# or shorthand:
node build/index.js -p /path/to/your/.env
開発モード:
dev スクリプトは変更を監視し、自動的に再ビルド/再起動します。npm run dev の実行時に --dotenv-path などの引数を内部の node コマンドに渡すには、通常 -- を使用する必要があります:
# Development with default .env
npm run dev
# Development with custom .env path
npm run dev -- --dotenv-path /path/to/your/.env
# or
npm run dev -- -p /path/to/your/.env
サーバーは MCP の stdio トランスポート(標準入力/標準出力)を使用して通信します。
Claude Desktop での使用方法
このサーバーを Claude Desktop アプリで使用するには、claude_desktop_config.json の「mcpServers」セクションに以下の設定を追加します:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json(ファイルが存在しない場合は作成してください。)
重要: 以下のプレースホルダーパスを、お使いのシステムに合った絶対パスに置き換えてください。
このプロジェクトの build/index.js ファイルには、必ず絶対パスを指定してください。必要に応じて、ここで --dotenv-path 引数を渡すこともできます:
{
"mcpServers": {
"porkbun": {
"command": "node",
"args": [
"/absolute/path/to/your/porkbun-mcp-server/build/index.js",
// Optional: Add custom .env path if needed
// "--dotenv-path",
// "/absolute/path/to/your/.env"
]
// Optional: If keys aren't in the environment where Claude runs the server
// (and not using .env or --dotenv-path), you can add them here:
// "env": {
// "PORKBUN_API_KEY": "YOUR_API_KEY",
// "PORKBUN_SECRET_API_KEY": "YOUR_SECRET_API_KEY"
// }
}
// Add other servers here if needed
}
}
/absolute/path/to/your/porkbun-mcp-server/build/index.js(および使用する場合は .env のパス)を、お使いのシステムに合った絶対パスに置き換えてください。設定ファイルを保存し、Claude Desktop を再起動します。
これで Porkbun ツールを Claude で使用できるようになります。
ライセンス
この MCP サーバーは MIT License のもとでライセンスされています。MIT License の利用規約に従う限り、ソフトウェアを自由に使用、変更、配布できます。詳細については、プロジェクトリポジトリの LICENSE ファイルを参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。