Whodis MCP Server について
Whodis MCP ServerはWHOIS検索でドメインが登録済みかどうかを調べます。AIアシスタントや開発者向けに、MCPツールとコマンドラインの両方を備えています。
主な機能
- 01WHOISによるドメイン可用性の確認
- 02利用可能・登録済みドメインの一覧出力
- 03直接確認できるコマンドライン
- 04環境変数または.envファイルでの設定
- 05デバッグ用の構造化ログ
活用シーン
- 01プロジェクト候補のドメイン確認
- 02コマンドラインからの検索テスト
MCP 対応
MCP クライアントに`check-domain-availability`ツールを提供します。ドメイン名を受け取り、利用可能または登録済みとみられる一覧を返します。結果はWHOIS応答に依存します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Whodis MCP Server
このプロジェクトは、WHOIS ルックアップを使用してドメイン名の利用可能性を確認するために特別に設計された Model Context Protocol(MCP)サーバーを提供します。AI アシスタントやその他のツールが、ドメインの利用可能性チェックをワークフローに組み込めるようにします。
概要
MCP とは?
Model Context Protocol(MCP)は、AI システムが外部のツールやデータソースに安全かつ状況に応じて接続できるようにするオープンスタンダードです。このサーバーは、ドメインの利用可能性に関する情報を提供するために MCP 標準を実装しています。
特長
- ドメインの利用可能性チェック:
whoiserライブラリを使用して WHOIS ルックアップを実行し、ドメインが利用可能または登録済みと見られるかどうかを判定します。 - MCP ツール統合: MCP クライアント(AI アシスタントなど)向けに
check-domain-availabilityツールを公開します。 - CLI インターフェース: 直接使用およびテスト用のコマンドラインインターフェース(
whodis-mcp-server check-domain-availability ...)を備えています。 - 構造化ログ: デバッグと監視に役立つ詳細なログを提供します。
- 設定可能: 環境変数または
.envファイルを使った設定に対応しています。
はじめに
前提条件
- Node.js(>=18.x): ダウンロード
- Git: バージョン管理用
ステップ 1: クローンとインストール
# Clone the repository
git clone https://github.com/vinsidious/whodis-mcp-server.git
cd whodis-mcp-server
# Install dependencies
npm install
ステップ 2: 開発サーバーを実行する
MCP Inspector を通じて操作するため、開発モードでサーバーを起動します。
npm run dev:server
これにより MCP サーバーが起動し、http://localhost:5173 で MCP Inspector が利用可能になります。ここで check-domain-availability ツールをテストできます。
ステップ 3: CLI からツールをテストする
コマンドラインからドメインの利用可能性チェッカーを直接実行します。
# Using CLI in development mode
npm run dev:cli -- check-domain-availability example.com non-existent-domain-12345.org
# Or run the built version
npm run start:cli -- check-domain-availability google.com my-unique-idea.dev
CLI は、available 配列と unavailable 配列を含む JSON オブジェクトを出力します。
アーキテクチャ
このサーバーは階層化アーキテクチャを採用しています。
src/
├── cli/ # Command-line interface logic
├── controllers/ # Business logic for domain checks
├── services/ # Interaction with the whoiser library
├── tools/ # MCP tool definition and argument validation
├── types/ # Shared type definitions
├── utils/ # Shared utilities (logging, errors, etc.)
└── index.ts # Main entry point for server and CLI
開発ガイド
開発スクリプト
# Start MCP server in development mode (with MCP Inspector)
npm run dev:server
# Run CLI commands in development mode
npm run dev:cli -- check-domain-availability <domains...>
# Build the project for production
npm run build
# Start MCP server in production mode (requires MCP client)
npm run start:server
# Run CLI commands using the production build
npm run start:cli -- check-domain-availability <domains...>
テスト
# Run all tests
npm test
# Generate test coverage report
npm run test:coverage
コード品質
# Lint code
npm run lint
# Format code with Prettier
npm run format
MCP ツール: check-domain-availability
- 目的: 1 つ以上のドメイン名の利用可能性を確認します。
- 入力: ドメイン名の配列。
{ "domains": ["example.com", "another-domain.net"] } - 出力: 2 つの配列を含む JSON オブジェクトです。
available(未登録と見られるドメイン)とunavailable(登録済みと見られるドメイン)です。
注: 利用可能性のチェックは WHOIS サーバーの応答に依存するため、すべての TLD で 100% 正確とは限りません。また、一時的なネットワークの問題によって正確でない場合があります。ルックアップに失敗したドメインは省略されます。{ "available": ["likely-available-domain123.xyz"], "unavailable": ["google.com"] } - 使用する場面: 特定のドメイン名を登録できる可能性があるかどうかを判断するときに、このツールを使用します。
デバッグ
MCP Inspector
ツールをテストし、リクエストとレスポンスの詳細を確認するには、ビジュアル MCP Inspector にアクセスします。
npm run dev:serverを実行します- ブラウザーで http://localhost:5173 を開きます
- UI を使って
check-domain-availabilityツールを呼び出します。
サーバーログ
詳細な出力を確認するには、デバッグログを有効にします。
# Set environment variable
DEBUG=true npm run dev:server
# Or set DEBUG=true in your .env file
ログは ~/.mcp/data/whodis-mcp-server.*.log のファイルにも保存されます。
公開
npm に更新を公開するには、次の手順を実行します。
- 変更がコミットされており、Conventional Commits のメッセージ形式(例:
feat:、fix:、chore:)に従っていることを確認します。 - 変更を
mainブランチにプッシュします。 ci-semantic-release.ymlワークフローが、パッケージのビルド、テスト、バージョン設定、npm への公開を自動的に行います。
ライセンス
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。