mcpField
P
Porkbun MCP Server

Porkbun MCP Server

ローカル
github.com/miraclebakelaserクラウド・インフラ1535 週間前に更新

Porkbun MCP Server について

Porkbun MCP Serverは、Porkbun API v3を通じてドメイン、DNS、SSL、ネームサーバー、転送、DNSSECを管理します。ツール経由でドメインを管理するMCP対応クライアント向けです。

主な機能

  1. 01ドメイン一覧と空き状況の確認
  2. 02DNSレコードの作成・編集・削除
  3. 03SSL証明書バンドルの取得
  4. 04ネームサーバーとURL転送の管理
  5. 05DNSSECレコードの作成・取得・削除

活用シーン

  1. 01ドメインと空き状況の確認
  2. 02ドメインのDNSレコード更新
  3. 03転送とネームサーバー設定の管理
  4. 04ドメインDNSSECレコードの管理

MCP 対応

stdioトランスポートを介して、Porkbun APIの操作をMCPクライアント向けのツールとして公開します。利用にはPorkbun APIキーとシークレットキーが必要です。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

Porkbun MCP サーバー

MCP

Porkbun API (v3) と連携するためのツールを提供する、Model Context Protocol(MCP)サーバーです。

このサーバーを利用すると、MCP 対応クライアント(AI アシスタント、IDE 拡張機能など)から、標準化されたインターフェースを通じて Porkbun のドメイン、DNS レコード、SSL 証明書などを管理できます。

ツール

  1. ping_porkbun

    • Porkbun API への接続と認証をテストします。
    • 入力:なし
    • 戻り値:クライアントのパブリック IP アドレスを含む成功メッセージ、またはエラーメッセージ。
  2. list_domains

    • Porkbun アカウント内のドメイン一覧を取得します。
    • 入力:
      • start(任意の数値):ドメインの取得を開始するインデックス(デフォルトは 0)。
      • includeLabels(任意の列挙値:「yes」):ドメインラベルを含めます。
    • 戻り値:ステータスや有効期限などの詳細情報を含むドメインオブジェクトの配列。
  3. get_dns_records

    • 指定したドメインのすべての DNS レコードを取得します。
    • 入力:
      • domain(文字列):ドメイン名。
    • 戻り値:DNS レコードオブジェクトの配列。
  4. 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 を含む成功メッセージ。
  5. edit_dns_record

    • ID を指定して既存の DNS レコードを変更します。
    • 入力:
      • domain(文字列):ドメイン名。
      • record_id(文字列):編集するレコードの ID。
      • name(任意の文字列):新しいサブドメイン。
      • type(文字列):新しいレコードタイプ(A、CNAME、MX など)。
      • content(文字列):新しいレコードの内容/応答。
      • ttl(任意の数値):新しい有効期間(秒)(デフォルトは 600、最小値は 600)。
      • prio(任意の数値):新しい優先度(MX/SRV レコード用)。
    • 戻り値:成功メッセージ。
  6. delete_dns_record

    • ID を指定して特定の DNS レコードを削除します。
    • 入力:
      • domain(文字列):ドメイン名。
      • record_id(文字列):削除するレコードの ID。
    • 戻り値:成功メッセージ。
  7. get_ssl_bundle

    • 指定したドメインの SSL 証明書バンドルを取得します。
    • 入力:
      • domain(文字列):ドメイン名。
    • 戻り値:certificatechain、privatekey、publickey を含むオブジェクト。
  8. update_nameservers

    • 指定したドメインのネームサーバーを更新します。
    • 入力:
      • domain(文字列):ドメイン名。
      • ns(文字列の配列):ネームサーバーのホスト名の配列。
    • 戻り値:成功メッセージ。
  9. get_nameservers

    • レジストリから指定したドメインの権威ネームサーバーを取得します。
    • 入力:
      • domain(文字列):ドメイン名。
    • 戻り値:ネームサーバーのホスト名の配列。
  10. add_url_forward

    • ドメインまたはサブドメインに URL 転送を追加します。
    • 入力:
      • domain(文字列):ドメイン名。
      • subdomain(任意の文字列):転送するサブドメイン(ルートの場合は空欄)。
      • location(文字列):転送先 URL。
      • type(列挙値:「temporary」、「permanent」):転送の種類。
      • includePath(任意の列挙値:「yes」、「no」):リダイレクトに URI パスを含めます(デフォルトは「no」)。
      • wildcard(任意の列挙値:「yes」、「no」):すべてのサブドメインも転送します(デフォルトは「no」)。
    • 戻り値:成功メッセージ。
  11. get_url_forwarding

    • ドメインの URL 転送レコードを取得します。
    • 入力:
      • domain (string):ドメイン名。
    • 戻り値:URL 転送レコードオブジェクトの配列。
  12. delete_url_forward

    • ID を指定して、ドメインの URL 転送レコードを削除します。
    • 入力:
      • domain (string):ドメイン名。
      • forward_id (string):削除する URL 転送レコードの ID。
    • 戻り値:成功メッセージ。
  13. check_domain

    • ドメイン名が利用可能かどうかを確認します。
    • 入力:
      • domain (string):確認するドメイン名。
    • 戻り値:ドメインの利用可否、料金、プレミアムステータスを示すオブジェクト。
  14. 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 レコード用)。
    • 戻り値:成功メッセージ。
  15. delete_dns_record_by_name_type

    • ドメイン、サブドメイン(任意)、タイプに一致するすべての DNS レコードを削除します。
    • 入力:
      • domain (string):ドメイン名。
      • type (string):削除するレコードのタイプ。
      • name (optional string):削除するサブドメイン(ルートの場合は空欄、ワイルドカードの場合は * を指定)。
    • 戻り値:成功メッセージ。
  16. retrieve_dns_record_by_name_type

    • ドメイン、サブドメイン(任意)、タイプに一致するすべての DNS レコードを取得します。
    • 入力:
      • domain (string):ドメイン名。
      • type (string):取得するレコードのタイプ。
      • name (optional string):取得するサブドメイン(ルートの場合は空欄、ワイルドカードの場合は * を指定)。
    • 戻り値:一致する DNS レコードオブジェクトの配列。
  17. 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):キー データ公開鍵。
    • 戻り値:成功メッセージ。
  18. get_dnssec_records

    • レジストリでドメインに関連付けられている DNSSEC レコードを取得します。
    • 入力:
      • domain (string):ドメイン名。
    • 戻り値:キータグをキーとする DNSSEC レコードを含むオブジェクト。
  19. delete_dnssec_record

    • キータグを指定して、レジストリでドメインに関連付けられている DNSSEC レコードを削除します。
    • 入力:
      • domain (string):ドメイン名。
      • keyTag (string):削除する DNSSEC レコードのキータグ。
    • 戻り値:成功メッセージ。

前提条件

  • Node.js(v18 以降を推奨)
  • npm(通常は Node.js に同梱)
  • Porkbun API キーとシークレットキー(こちらで生成)

セットアップ

  1. リポジトリをクローンします:

    git clone https://github.com/miraclebakelaser/porkbun-mcp-server.git
    cd porkbun-mcp-server
    
  2. 依存関係をインストールします:

    npm install
    
  3. 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 ファイルを参照してください。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。