OSIR Domain Name MCP Server について
OSIR Domain Name MCP Server は、AI アシスタントを OSIR のドメインおよびホスティング業務に接続します。ドメイン、DNS、VPS、メール、請求、Web サイトの管理ツールに加え、プロンプトによる案内と重要操作の承認に対応します。
主な機能
- 01ドメイン検索・登録・更新・移管
- 02DNS レコード・ネームサーバー・連絡先管理
- 03VPS・メール・Web サイトの操作
- 04請求・アカウント・監査情報の確認
- 05プロンプトによる案内と承認後の操作
活用シーン
- 01ドメインの空き状況確認と登録
- 02DNS の更新とメールレコードの設定
- 03VPS の構築やメールボックスの作成
- 04残高、請求書、ドメイン履歴の確認
MCP 対応
Streamable HTTP と SSE によるリモート MCP 接続を提供し、ドメインやインフラのツールと 11 個のガイド付きプロンプトを MCP クライアントに公開します。アカウント操作の大半には認証が必要です。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://be.osir.com/mcp/httpclaude mcp add --transport http com-osir-domain-registrar https://be.osir.com/mcp/http{"mcpServers":{"com-osir-domain-registrar":{"type":"http","url":"https://be.osir.com/mcp/http"}}}Cursor で開く{"servers":{"com-osir-domain-registrar":{"type":"http","url":"https://be.osir.com/mcp/http"}}}VS Code で開く{"mcpServers":{"com-osir-domain-registrar":{"type":"http","url":"https://be.osir.com/mcp/http"}}}{"mcpServers":{"com-osir-domain-registrar":{"serverUrl":"https://be.osir.com/mcp/http"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
106| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| lang | string | いいえ | 言語コード。デフォルトは "eng"。 |
| name | string | はい | プレフィックスを付けるベース名。例:"mycompany"。 |
| tlds | string | いいえ | カンマ区切りの TLD。先頭にドットは付けません。例:"com,net"。 |
| maxResults | integer | いいえ | 返す候補の最大数。デフォルトは 20 です。 |
| vocabulary | string | いいえ | プレフィックスの語彙:「@prefixes」またはカンマ区切りのカスタムリスト。 |
詳細
OSIR エージェントプラットフォーム
OSIR ドメインレジストラー向けの AI 統合サーバーです。Claude、ChatGPT、またはあらゆる AI アシスタントを、実際のドメイン、DNS、VPS、請求、アカウント操作に接続できます。個別のツール(MCP)として、またはタスクを解決する専門エージェント(A2A)として利用できます。
2 つのサーバーと、共通のバックエンドクライアントライブラリを提供します。
| サーバー | ポート | プロトコル | AI が利用できる機能 |
|---|---|---|---|
| MCP サーバー | 8081 | Model Context Protocol(SSE + Streamable HTTP) | 103 個の細分化されたツール(checkDomainAvailability、registerDomain、createDnsRecord、createMailbox、osirSitePublish、…)と 11 個のガイド付きプロンプト |
| A2A サーバー | 8082 | Google Agent-to-Agent(JSON-RPC 2.0) | 89 個のスキルを持つ 9 つの専門エージェントと、複数ステップのワークフロー向けオーケストレーター |
1 つのアシスタントから個々の操作を呼び出す場合は、MCP を使用します。「DNS を設定して残高を確認し、example.com を使えるようにして」のようなタスク全体を、作業を連携するエージェントに任せたい場合は、A2A を使用します。
MCP とは?
MCP(Model Context Protocol)は、AI アシスタントを外部のツールやデータに接続するオープンスタンダードです。MCP サーバーは呼び出し可能なツール群を公開し、あらゆる MCP クライアント(Claude Desktop、Cursor、Copilot、またはカスタムエージェント)がそれらを検出して実行できます。OSIR は、ドメインとインフラストラクチャの管理に特化した MCP サーバーを実装しています。これにより、チャット機能を後付けした従来型のレジストラーではなく、AI を前提に設計されたレジストラーを実現しています。
OSIR を Claude に接続する
Claude で Settings → Connectors → Add custom connector を開き、次の 2 つの設定のいずれかを選びます。
| オプション A:サインインなし(推奨) | オプション B:OAuth | |
|---|---|---|
| サーバー URL | https://be.osir.com/mcp/http | https://be.osir.com/mcp/oauth |
| 認証 | サインインなし | 今すぐサインイン |
| OAuth クライアント | — | 独自の OAuth クライアントを使用、Client ID mcp-client、シークレットは空欄 |
| ログイン | チャット内で、会話ごとに実行(下記参照) | コネクターの追加時にブラウザーでログイン。ログイン状態は維持されます |
オプション B では、「Use Claude's published identity」または「Register automatically」を選ばないでください。OSIR はどちらにも対応していません。
オプション A:会話内でサインインします。 アシスタントが初めて認証が必要なツールを使う際に、デバイスログインが開始されます。auth.osir.com へのリンクと短いコードが表示されるので、ブラウザーで承認すると、アシスタントはその会話に紐づいたセッションで処理を続けます。セッションの有効期間は意図的に短く設定されています(操作がない状態が約 30 分続くと期限切れになり、最大 8 時間で終了します)。また、「ログアウトして」と伝えるとすぐに終了します。そのため、接続済みのチャットがドメイン、サーバー、請求情報への継続的なアクセス権を保持することはありません。
同じ URL は、リモート(ストリーミング可能な HTTP)サーバーに対応し、チャット内でデバイスログインを開始できる、あらゆる MCP クライアントで使用できます。
セルフホストに関する注意:
/mcp/oauthは常に OAuth を必要とし、RFC 9728 チャレンジとともに401を返します。URL のみで利用する/mcp/httpを使うには、MCP_OAUTH_CHALLENGE_ENABLED=falseを設定する必要があります。デフォルト値(true)のままにすると、すべての MCP パスで OAuth が必要になります。セッションの有効期間はMCP_SESSION_IDLE_MINUTESとMCP_SESSION_MAX_HOURSで調整できます。
アシスタントでできること
| 機能 | リクエスト例 |
|---|---|
| 利用可能状況を検索 | 「coolstartup.io は取得できますか?料金はいくらですか?」 |
| ドメインを登録 | 「WHOIS プライバシーを付けて、2 年間登録してください。」 |
| DNS を管理 | 「192.0.2.10 に向けて、メール用レコードを追加してください。」 |
| 更新と移管 | 「今後 30 日以内に期限切れになるものをすべて更新してください。」 |
| VPS をプロビジョニング | 「Ubuntu を実行する 2 vCPU のサーバーをフランクフルトに立ち上げてください。」 |
| メールをホスティング | 「example.com でメールを有効にして、10 GB のメールボックスを持つ info@ を作成してください。」 |
サーバーを自分で実行する
独自のインスタンスをホストしたり、コードを使って開発したりしますか? Java 21 が必要です。Gradle はラッパーに同梱されています。
# Run the MCP server (port 8081)
./gradlew :mcp-server:quarkusDev
# Run the A2A server (port 8082)
./gradlew :a2a-server:quarkusDev
.env.example を .env にコピーし、独自のバックエンド/KeyCloak を指定する場合は設定を調整してください。
すべてデフォルトで公開 OSIR エンドポイントを使用するため、サーバーはそのまま実行できます。
MCP クライアントに接続する(Claude Desktop / Claude Code)
クライアントの MCP 設定(例:claude_desktop_config.json)に追加します。
{
"mcpServers": {
"osir": { "url": "http://localhost:8081/mcp/sse" }
}
}
クライアントを再起動すると、OSIR ツールが表示されます。あとは次のように尋ねるだけです。
「pizzashqip.al は利用可能ですか?利用できない場合は、代替案を提案してください。」 「自分のドメインをすべて一覧表示し、今後 30 日以内に有効期限が切れるものを教えてください。」 「example.al を 203.0.113.10 に向ける A レコードと、www の CNAME を追加してください。」
ほとんどの操作には認証が必要です。アシスタントに 「デバイスフローを使って OSIR にログインして」 と頼むと、ブラウザー経由の OAuth(KeyCloak、RFC 8628)を案内してくれます。
A2A サーバーを呼び出す
# Discover the agents
curl http://localhost:8082/.well-known/agents | jq '.[].name'
# Send a task (the platform routes it to the right specialist)
curl -X POST http://localhost:8082/a2a \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_TOKEN" \
-d '{
"jsonrpc": "2.0", "id": "1", "method": "tasks/send",
"params": { "message": { "role": "user",
"parts": [{"type": "text", "text": "Check if example.com is available"}] } }
}'
タスクは POST /a2a/stream(SSE)経由でストリーミングされ、複数ターンにわたる input-required フローに対応します。オーケストレーターは複雑なリクエストをエージェント間で分解します(最大 15 ステップ)。
できること
ドメイン — 空き状況、登録、更新、移管、ロック/ロック解除、自動更新、WHOIS プライバシー、ネームサーバー、AI による名前の提案。 DNS — レコードの一覧表示/作成/更新/削除。 VPS — パッケージやロケーションの閲覧、注文、管理、パネルへのログイン。 請求 — 残高、請求書、支払い、手数料の見積もり、ドメイン料金。 連絡先、移管、ホスト、監査ログ、アカウントのプロフィールと概要。
ツール/スキルの全カタログ、会話例、エンドツーエンドの手順については GUIDE.md をご覧ください。
ツール
稼働中のサーバー(https://be.osir.com/mcp/http の tools/list)で検証済みのツールが 106 個あります。
- addPrefixToDomain - 接頭辞を追加してドメイン候補を生成します。
- addSshKey - VPS のインストール時に挿入できるよう、SSH 公開鍵をアカウントに保存します。
- addSuffixToDomain - 接尾辞を追加してドメイン候補を生成します。
- buildVpsInstance - VPS インスタンスで OS のインストールを準備します。
- bulkDomainSuggestions - 選択した TLD のセットで、1 つ以上のキーワードに対するドメイン名候補を生成します。
- cancelTransfer - 保留中のドメイン移管のキャンセルを準備します。
- changeVpsPaymentTerm - VPS インスタンスの支払い期間(請求サイクル)の変更を準備します。
executeConfirmedActionで確定します。 - checkDeviceLoginStatus - デバイスログインの完了をポーリングします。
- checkDomainAvailability - ドメイン名が登録可能かどうかを価格とともに確認します。
- checkHostAvailability - ホスト/グルーレコード名を作成できるかどうかを確認します。
- checkKeywordAvailability - 詳細な結果とともに、サポート対象のすべての TLD およびレジストリでキーワードの利用可能状況を確認します。
- checkKeywordAvailabilitySummary - ドメインの詳細結果を含めずに、キーワードの利用可能状況の概要統計を確認します(より高速です)。
- countMyVpsInstances - 認証済みユーザーが所有する VPS インスタンスの総数を取得します。
- createAccount - 新しい OSIR 顧客アカウントを作成します。
- createContact - ドメイン登録に使用する新しい連絡先を作成します。
- createDnsRecord - ドメインの新しい DNS レコードを作成します。
- createHost - 新しいホスト/グルーレコードを作成します(カスタムネームサーバーなど)。
- createMailbox - メール対応ドメインに有料メールボックスを作成する準備をします。
- createPaymentSession - アカウント残高に資金を追加する Stripe 決済チェックアウトセッションの作成を準備します。
- deleteContact - 連絡先の削除を準備します。
- deleteDnsRecord - DNS レコードの削除を準備します。
- deleteHost - ホスト/グルーレコードの削除を準備します。
- deleteMailbox - メールボックスの削除を準備します。
- deleteSshKey - アカウントから SSH 鍵を削除する準備をします。
executeConfirmedActionで確定します。 - deleteVpsInstance - VPS インスタンスの削除/解約を準備します。
- enableMailDomain - 所有するドメインでメールホスティングを有効にします。
- executeConfirmedAction - ユーザーの承認後、事前に準備された破壊的な操作または金銭に関わる操作を実行します。
- fundBalanceWithSharedPaymentToken - 顧客が OSIR に付与した Stripe Shared Payment Token に請求して残高に資金を追加する準備をします。これにより、エージェントはチェックアウトページに誘導することなく購入費用を支払えます。
- generateDomainSuggestions - キーワードに基づいてドメイン名候補を生成します。
- getAccountBalance - 認証済みユーザーの現在のアカウント残高を取得します。
- getAccountSummary - ユーザーのアカウントの包括的な概要を取得します。プロフィール、残高、ドメイン数、VPS 数、保留中の移管が含まれます。
- getAuthStatus - 現在のセッションが認証済みかどうかを確認します。
- getContact - 特定の連絡先の詳細情報を取得します。
- getContactsForDomain - ドメインに割り当てられたすべての連絡先(登録者、管理者、技術担当者、請求先)を取得します。
- getDedicatedServerCatalog - 料金と仕様を含む、利用可能なすべての専用サーバー構成を取得します。
- getDnsRecord - 特定の DNS レコードの詳細を取得します。
- getDomainAuditTrail - 特定のドメインの監査証跡(すべての変更履歴)を取得します。
- getDomainExtensions - 料金情報を含む、利用可能なすべてのドメイン拡張子(TLD)を取得します。
- getDomainInfo - 有効期限、ネームサーバー、ステータスなど、ドメインの詳細情報を取得します。
- getDomainPricing - 製品カタログからドメイン拡張子の料金を取得します。
- getHostingBundle - 特定のドメインで利用できるホスティングオプションと正確な料金を取得します。おすすめの VPS パッケージ(安い順)、メールプラン、ウェブ転送、アプリ/サイトのデプロイが含まれます(ビルドは無料です。公開には VPS が必要です)。
- getHostsForDomain - ドメインに関連付けられたすべてのホスト/グルーレコードを一覧表示します。
- getInvoiceDetails - 明細項目を含む、特定の請求書の詳細情報を取得します。
- getInvoiceStatistics - 請求書の概要統計(支払済み、保留中、期限超過の金額)を取得します。
- getMailboxQuote - メールボックスプランの表示専用見積もりを取得します。
- getMailboxUsage - メールボックスごとのディスク使用量をバイト単位で取得します。プランの quotaBytes と合わせて使用量を表示できます。
- getMailDnsRecords - メールドメインに必要な DNS レコード(MX、SPF、DKIM など)を取得します。DNS を外部で管理している顧客向けです。
- getMyAuditLogs - 認証済みユーザーについて、すべてのサービスにわたる最近の監査ログを取得します。
- getMyProfile - 認証済みユーザーのプロフィールとアカウント情報を取得します。氏名、メールアドレス、組織、残高、ドメイン数/VPS 数が含まれます。
- getPaymentTransactions - 認証済みユーザーの決済取引履歴を取得します。
- getProductCatalog - ドメイン拡張子、VPS パッケージ、専用サーバーを含む完全な製品カタログを取得します。
- getRecentActivity - ユーザーのすべてのドメインとサービスにわたる最新のアクティビティを取得します。
- getTransferQuote - ドメイン移管の料金見積もりを取得します。
- getTransferStatus - ドメイン移管の現在のステータスを確認します。
- getVpsInstanceDetails - リソース使用量を含む、特定の VPS インスタンスの詳細情報を取得します。
- getVpsPackageDetails - すべての料金プランを含む、特定の VPS パッケージの詳細情報を取得します。
- initializeDnsZone - ドメインの DNS ゾーンを初期化(作成)します。
- initiateTransfer - 別のレジストラからのドメイン移管の開始を準備します。
- listCategorizedTlds - カテゴリーと対象ユーザーのメタデータが設定されている OSIR カタログ内の TLD を一覧表示します。
- listContacts - オプションの検索条件を指定して、認証済みユーザーのすべての連絡先を一覧表示します。
- listDnsRecords - ドメインのすべての DNS レコードを一覧表示します。
- listInvoices - オプションのステータスフィルターとページネーションを指定して、認証済みユーザーの請求書を一覧表示します。
- listMailboxes - プラン、支払い期間、ステータス、次回更新日とともに、メールボックスを一覧表示します。
- listMailDomains - メールホスティングが有効になっているドメインを、ステータス(PENDING_DNS または ACTIVE)と DNS モードとともに一覧表示します。
- listMailPlans - 容量と料金(月額および年額、セント単位)を含む、利用可能なメールボックスプランを一覧表示します。
- listMySshKeys - アカウントに保存されている SSH 鍵を、ID と SHA256 フィンガープリントとともに一覧表示します。
- listMyVpsInstances - 認証済みユーザーが所有するすべての VPS インスタンスを一覧表示します。
- listPendingTransfers - 保留中のすべての受信(取得側)ドメイン移管を一覧表示します。
- listUserDomains - 認証済みユーザーが所有するすべてのドメインを一覧表示します。
- listVpsLocations - 利用可能なパッケージとともに、利用可能な VPS ホスティング拠点(都市/国)を一覧表示します。
- listVpsOsTemplates - インストール可能な OS テンプレートを一覧表示します。
- listVpsPackages - 料金、仕様、拠点を含む、利用可能な VPS ホスティングパッケージを一覧表示します。
- lockDomain - 不正な移管を防ぐため、ドメインのレジストラロックを有効にします。
- loginToVpsPanel - サーバー管理用の VPS コントロールパネル(VirtFusion)へのワンタイムログイン URL を生成します。
- loginWithDevice - デバイス認証ログインを開始します(RFC 8628)。
- logout - ログアウトします。ID プロバイダーでセッションのトークンを直ちに失効させます。
- orderVps - 新しい VPS インスタンスの注文を準備します。
- osirAppCreateUpload - Osir にアプリのソースコードをデプロイするためのアップロードチケットを作成します。
- osirAppDelete - Osir アプリの削除を準備します。
- osirAppDeploy - Osir にアプリをデプロイし(無料枠)、ライブ HTTPS URL を取得します。アプリは分離されたマイクロ VM で実行されます。ユーザー所有の VPS に移行済みのアプリを再デプロイすると、そちらが更新され、ドメインも維持されます。
- osirAppGetSource - Osir アプリの現在のソース ZIP をダウンロードするための、有効期間の短い署名付き URL を取得します。ユーザーにプロジェクトを再添付してもらわずにデプロイ済みアプリを編集する場合に使用します。ダウンロードしてファイルに変更を加え、新しい ZIP を osirAppCreateUpload(PUT)でアップロードし、同じ名前で osirAppDeploy を実行します。プラットフォームが再ビルドし、所有者プランのアプリではユーザーのサーバーに新バージョンを自動で配信します。
- osirAppList - 認証済みユーザーがデプロイした Osir アプリを、ライブ URL とステータスとともに一覧表示します。
- osirAppLogs - Osir アプリのマイクロ VM から最近のログを取得します(「アプリが壊れているのはなぜ?」)。
- osirAppDeployToVps - 稼働中の Osir アプリをユーザー所有の VPS にデプロイし、共有の無料枠から移行します。すでに所有する VPS を指定する場合(instanceId)は費用がかかりません。新たに注文する場合(packageId)は条件による制限があります。プラットフォームが独自のデプロイキーでアプリを配信します。SSH やインストールスクリプトは使用しません。
- osirAppProvisionDatabase - Osir アプリ用のマネージド Postgres データベースをプロビジョニングします。
- osirAppSetSecret - Osir アプリの環境変数シークレットを設定します(例:
- osirAppStatus - Osir アプリの現在のステータス、ライブ URL、ヘルス状態を取得します(「アプリは動作していますか?」)。
- osirSiteDesignBrief - OSIR でウェブサイトをデザインするステップ 1 です。
- osirSitePublish - Osir のライブ HTTPS URL に 1 ページのウェブサイトを公開します(無料枠)。ユーザー自身のサイト、チャット内でデザインしたページ、osirSiteDesignBrief フローで作成したページなど、完成した HTML ドキュメントであればどれでも使用できます。ユーザー所有の VPS に移行済みのサイトを再公開すると、そちらが更新されます。
- payInvoice - アカウント残高から未払い請求書を支払う準備をします。
- previewPaymentFees - 指定した支払い金額に対して請求される手数料をプレビューします。
- registerDomain - 新しいドメイン名の登録を準備します。
- renewDomain - 指定した年数分のドメイン更新を準備します。
- setMailboxPassword - メールボックスの新しいパスワードを設定します。
- spinDomainWords - 単語を組み合わせたり置き換えたりして、ドメイン候補を生成します。
- suggestAlternatives - リクエストしたドメインが利用できない場合に、代替のドメイン名を提案します(従来方式)。
- transferDomain - 別のレジストラから OSIR へのドメイン移管を準備します。
- unlockDomain - ドメインの移管を可能にするため、レジストラロックの解除を準備します。
- updateContact - 既存の連絡先情報を更新します。
- updateDnsRecord - 既存の DNS レコードを更新します。
- updateDomainAutoRenew - ドメインの自動更新を有効または無効にします。
- updateDomainPrivacy - WHOIS プライバシー保護を有効または無効にします。
- updateNameservers - ドメインのネームサーバーを更新します。
- validateDomainName - ドメイン名の形式が正しいかどうかを検証します。
- verifyAccount - 新しく作成した OSIR アカウントを、確認メールに記載されたコードで認証します。オンボーディングのステップ 2 で、認証は不要です。
- verifyMailDns - メールドメインの DNS レコードが解決されることを確認します。すべてのレコードが見つかると、そのドメインでメールが有効になります。
ビルド、テスト、デプロイ
./gradlew build # build all modules + run tests
./gradlew test # tests only
docker-compose up -d # run both servers in containers
付属の docker-compose.yml、build-and-deploy.bat、CI ワークフローでは、プレースホルダーのコンテナーレジストリ(registry.example.com)を参照しています。ご自身のものに変更してください。
本番環境向けチェックリスト(PostgreSQL、TLS、スケーリング)については、DEPLOYMENT.md をご覧ください。
設定
すべての設定は適切なデフォルト値を持つ環境変数です。秘密情報はコミットされていません。
| 変数 | デフォルト値 | 説明 |
|---|---|---|
OSIR_BACKEND_URL | https://be.osir.com | バックエンド API |
KEYCLOAK_URL | https://auth.osir.com | KeyCloak 認証サーバー |
KEYCLOAK_REALM | osir | KeyCloak レルム |
KEYCLOAK_CLIENT_ID | osir-cli | OAuth クライアント ID |
CORS_ORIGINS | https://osir.com,… | 許可する CORS オリジン |
A2A_SIGNING_SECRET | (empty) | 任意の HMAC-SHA256 リクエスト署名 |
SENTRY_DSN | (empty) | Sentry プロトコルのエンドポイント(GlitchTip)への任意のクラッシュレポート送信。空の場合は無効 |
SENTRY_ENVIRONMENT | production | レポートされるイベントに付与する環境ラベル |
すべての項目については .env.example をご覧ください。
プロジェクトの構成
common/ Shared library — 12 services, 9 REST clients, ~174 models
mcp-server/ Quarkus MCP server — 106 tools, 11 prompts, 2 resources
a2a-server/ Quarkus A2A server — 9 agents, 89 skills, JSON-RPC, JPA task persistence
両方のサーバーは common に依存しているため、バックエンド操作は一度実装すれば、2 つの方法で公開できます。
ドキュメント
- GUIDE.md — 使い方の総合ガイド、ツールリファレンス、手順ガイド
- WEBSITE-DESIGN.md — AI によるウェブサイト設計:顧客向けガイド、ユースケース、フロントエンド連携
- DEVELOPING.md — リポジトリの構成、ビルド/実行コマンド、アーキテクチャに関する注記
- VPS-OS-BUILD.md — OS 付き VPS の注文、SSH キー、再インストール、OSIR APP DEPLOY フローについて説明しています。VPS ツールを操作する前にお読みください。注文とビルドは VirtFusion で別々の手順であり、
orderVpsだけでは OS がインストールされていないサーバーが引き渡されます。 - A2A-API-REFERENCE.md — A2A プロトコル仕様(メソッド、エラー、エージェント)
- A2A-ARCHITECTURE.md — A2A 設計ドキュメント
- A2A-CONFIRMATION-GATE-SPEC.md — 破壊的な操作を
executeConfirmedActionの背後に配置する方法 - DEPLOYMENT.md — 本番デプロイのチェックリスト
ライセンス
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。