mcpField
I
Internet Names Mcp

Internet Names Mcp

ローカル
github.com/drewster99ビジネス・マーケティング23 週間前に更新

Internet Names Mcp について

Internet Names Mcp は、ドメイン、ソーシャルメディアのハンドル、subreddit の空き状況を調べる MCP サーバーです。名前の組み合わせ生成と複数サービスの確認に対応し、NameSilo API キーを設定するとドメイン価格も取得できます。

主な機能

  1. 01RDAP または NameSilo によるドメイン確認
  2. 02ソーシャルメディアのハンドル確認
  3. 03subreddit 名の空き状況確認
  4. 04名前の生成と一括確認
  5. 05オプションでドメイン価格を取得

活用シーン

  1. 01プロジェクト名のドメイン候補を確認
  2. 02各サービスでのハンドル空き状況を比較
  3. 03利用可能な subreddit 名を探す
  4. 04生成した名前の組み合わせを絞り込む

MCP 対応

ドメイン、ソーシャルメディアのハンドル、subreddit、および一括確認のツールを MCP クライアントに提供します。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"InternetNamesMCP": {
"command": "uvx",
"args": [
"internet-names-mcp"
],
"env": {
"NAMESILO_API_KEY": "<NAMESILO_API_KEY>"
}
}
}
}
起動コマンドuvx internet-names-mcp
設定が必要な環境変数
NAMESILO_API_KEYシークレット

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypiinternet-names-mcp

ツール

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

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

詳細

Internet Names MCP サーバー

ドメイン名、ソーシャルメディアのハンドル名、サブレディットの利用可能状況を確認する MCP サーバーです。プログラムでの利用に適した、整った JSON レスポンスを返します。

機能

  • ドメイン名 - RDAP(無料)または NameSilo API(無料ですが、API キーが必要です。レスポンスにはドメインの価格も含まれます)で利用可能状況を確認します
  • ソーシャルメディアのハンドル名 - Instagram、Twitter/X、Reddit、YouTube、TikTok、Twitch、Threads、Bluesky、GitHub、Snapchat、Pinterest、Kick、Substack
  • サブレディット - Reddit でサブレディット名が利用可能か確認します
  • 包括的な検索 - 名前の組み合わせを生成し、すべてを一度に確認します

クイックスタート

1. Claude Code に追加する(推奨)
claude mcp add --scope user internet-names-mcp uvx internet-names-mcp

これだけで完了です!サーバーは、ドメイン検索に RDAP を使用してすぐに動作します。

2. NameSilo API を設定する(ドメイン価格の確認に必要な場合)

ドメイン名の利用可能状況を確認するには、NameSilo API キーを設定することをおすすめします。無料で、基本的な登録だけで利用できます。設定しない場合は RDAP を使用しますが、いくつか大きな制限があります(下記参照)。

NameSilo API キーを設定する

  1. namesilo.com でアカウントを作成します(またはログインします)
  2. API Manager に移動します
  3. Generate New API Key をクリックします
  4. キーをコピーして、次を実行します:
uvx internet-names-mcp --setup

API キーを貼り付けるよう求められます。 macOS では、API キーは iCloud キーチェーンまたはログインキーチェーンに internet-names-mcp.namesilo として安全に保存されます。その他のプラットフォームでは、~/.config/internet-names-mcp/config.json に保存されます。

キーを安全に保存できるため、--setup の使用を推奨します。代わりに、環境変数を使って設定することもできます(「手動設定」を参照)。

手動設定

Claude Code を使用しない場合、または MCP サーバーを手動で設定する場合は、MCP クライアントの設定ファイル(例:Claude Desktop の claude_desktop_config.json)に次を追加します:

{
  "mcpServers": {
    "internet-names-mcp": {
      "command": "uvx",
      "args": ["internet-names-mcp"]
    }
  }
}

環境変数を使って NameSilo API キーを設定する場合(--setup を使用していない場合):

{
  "mcpServers": {
    "internet-names-mcp": {
      "command": "uvx",
      "args": ["internet-names-mcp"],
      "env": {
        "NAMESILO_API_KEY": "your_api_key_here"
      }
    }
  }
}

注:環境変数よりも、uvx internet-names-mcp --setup を使って API キーを保存することを推奨します。利用可能な場合は、安全なストレージ(macOS キーチェーン)が使用されるためです。

CLI コマンド

uvx internet-names-mcp --setup         # Configure API keys interactively
uvx internet-names-mcp --show-config   # Show current configuration
uvx internet-names-mcp --version       # Show version
uvx internet-names-mcp --help          # Show help

ツール

get_supported_socials()

対応しているソーシャルメディアプラットフォームの一覧を返します。

レスポンス:

{
  "platforms": ["instagram", "twitter", "reddit", "youtube", "tiktok", "twitch", "threads", "bluesky", "github", "snapchat", "pinterest", "kick", "substack", "subreddit"]
}

注:subreddit は check_handles() ではなく、check_subreddits() で確認します。


check_domains(names, tlds?, method?, only_report_available?)

ドメイン名の利用可能状況と価格を確認します。

パラメーター:

名前型デフォルト説明
nameslist[str]必須確認するドメイン名またはベース名
tldslist[str]["com", "io", "ai", "co", "app", "dev", "net", "org"]確認する TLD
methodstr"auto""auto"、"rdap"、または "namesilo"
only_report_availableboolfalsetrue の場合、利用できないドメインをレスポンスから省略します

名前にドットが含まれている場合は、完全なドメイン名として扱います。含まれていない場合は、各 TLD と組み合わせます。

レスポンス:

{
  "available": [
    {"domain": "myapp.com", "price": 17.29},
    {"domain": "myapp.io", "price": 34.99}
  ],
  "unavailable": ["myapp.ai"],
  "summary": {
    "cheapestAvailable": {"domain": "myapp.com", "price": 17.29},
    "shortestAvailable": {"domain": "myapp.io", "price": 34.99}
  }
}

check_handles(username, platforms?, only_report_available?)

複数のプラットフォームで、ソーシャルメディアのハンドル名が利用可能か確認します。

パラメーター:

名前型デフォルト説明
usernamestr必須確認するユーザー名/ハンドル名
platformslist[str]すべてのプラットフォーム確認するプラットフォーム
only_report_availableboolfalsetrue の場合、利用できないハンドル名をレスポンスから省略します

対応プラットフォーム:instagram、twitter、reddit、youtube、tiktok、twitch、threads、bluesky、github、snapchat、pinterest、kick、substack

すべてのプラットフォームを並行して確認します。通常、呼び出しには 2〜5 秒かかります。Instagram、Threads、Reddit ではヘッドレス Chromium ブラウザーを使用します(初回使用時に自動でインストールされます)。

各プラットフォームでの確認方法と、「利用可能」の意味:

プラットフォーム方法「利用可能」の意味
twitterX の登録用ユーザー名利用可否エンドポイントX でそのユーザー名を登録できます
instagramプロフィールページを確認し、その後 Instagram の登録用ユーザー名検証を実行Instagram でそのユーザー名を登録できます
threadsInstagram に準拠(Threads のハンドル名は Instagram のユーザー名です)。URL のプロフィールページを確認Instagram でそのユーザー名を登録できます
blueskybsky.social の <name>.bsky.social に対して com.atproto.temp.checkHandleAvailability を実行Bluesky でそのユーザー名を登録できます
redditReddit の username_available エンドポイントReddit でそのユーザー名を登録できます
tiktokプロフィールページに埋め込まれたユーザーステータスアカウントが見つかりません(凍結または削除されたアカウントも同じように表示されます)
youtube@handle ページのステータスチャンネルが見つかりません(予約済みまたは停止済みのハンドル名も同じように表示される場合があります)
twitch停止済みおよび削除済みアカウントも含む、Twitch Web GraphQL のユーザー検索アカウントが見つかりません
githubGitHub REST API によるユーザー検索(ユーザーと組織が対象。トークンなしの場合、1 時間あたり 60 回まで)アカウントが見つかりません(予約済みの名前も同じように表示される場合があります)
snapchatsnapchat.com/@username ページのステータスアカウントが見つかりません(予約済みの名前も同じように表示される場合があります)
pinterestプロフィールページのタイトル、またはページに埋め込まれた「ユーザーが見つかりません」というエラーアカウントが見つかりません(予約済みの名前も同じように表示される場合があります)
kickKick の公開チャンネル API に加え、一部のアンダースコア付きユーザー名に Kick が割り当てるハイフン付きスラッグチャンネルが見つかりません(Kick は長さのルールを公開していないため、文字のみを検証します)
substack<name>.substack.com が応答するか、リダイレクトされるかを確認(Substack のユーザーハンドル名ではなく、出版物のサブドメインが対象)出版物または予約済みのサブドメインが見つかりません

プラットフォームが利用可能と報告されるのは、利用可能であると明確に示された場合のみです。ブロックページ、レート制限、予期しないレスポンスは、利用可能または使用済みとしてではなく、エラー(unavailable 内の error フィールド)として報告されます。

レスポンス:

{
  "available": ["instagram", "tiktok", "youtube"],
  "unavailable": [
    {"platform": "twitter", "url": "https://x.com/myapp"},
    {"platform": "reddit", "url": "https://www.reddit.com/user/myapp"},
    {"platform": "bluesky", "note": "Reserved or not allowed by Bluesky"},
    {"platform": "twitch", "error": "Twitch returned HTTP 503"}
  ]
}

check_subreddits(names, only_report_available?)

Reddit でサブレディット名が利用可能か確認します。

パラメーター:

名前型デフォルト説明
nameslist[str]必須確認するサブレディット名(r/ プレフィックスの有無は問いません)
only_report_availableboolfalsetrue の場合、利用できないサブレディットをレスポンスから省略します

レスポンス:

{
  "available": ["mynewsubreddit"],
  "unavailable": [
    {"name": "programming", "subscribers": 6835000},
    {"name": "privatesubreddit", "note": "private"}
  ]
}

サブレディットは、ヘッドレスブラウザーセッションで Reddit の about.json を通じて検索されます。note には、サブレディットが公開されていない状態で保持されている理由(private、gold_only、quarantined、banned など)が記載されます。または、その名前が有効なサブレディット名ではない理由が説明されます。

check_everything(components, tlds?, platforms?, method?, require_all_tlds_available?, only_report_available?, also_include_hyphens?)

ドメインとソーシャルメディアを横断して包括的にチェックします。コンポーネントから名前の組み合わせを生成し、まずドメインをチェックしてから(高速)、ドメインチェックに通った名前のソーシャルハンドルをチェックします。

パラメーター:

名前型デフォルト説明
componentslist[str]必須組み合わせる名前のコンポーネント(例:["red", "sweater"])
tldslist[str]["com", "net", "org", "io", "ai"]チェックするTLD
platformslist[str]すべてのプラットフォームチェックするソーシャルプラットフォーム
methodstr"auto""auto"、"rdap"、または "namesilo"
require_all_tlds_availableboolfalsetrue の場合、ハンドルのチェック対象となるには、すべてのTLDで名前が使用可能である必要があります
only_report_availableboolfalsetrue の場合、使用不可の項目をレスポンスから省略します
also_include_hyphensboolfalsetrue の場合、ハイフン付きのバージョンのドメインもチェックします(これらのハンドルはチェックされません)

名前の生成: コンポーネント ["red", "sweater"] から、次の名前を生成します。

  • 単一コンポーネント:red、sweater
  • 連結:redsweater、sweaterred
  • also_include_hyphens を指定した場合:red-sweater、sweater-red(ドメインのみ)

ハイフン付きのバージョンは available_domains と domain_successful_basenames に含まれることがありますが、ソーシャルハンドルのチェック対象にはならないため、available_handles、unavailable_handles、fully_available に含まれることはありません。コンポーネント内に入力されたハイフン(例:["red-sweater"])は呼び出し元が指定した名前の表記として、ほかの名前と同様にハンドルのチェック対象となります。

レスポンス:

{
  "available_domains": [
    {"domain": "redsweater.com", "price": 17.29},
    {"domain": "redsweater.io", "price": 34.99}
  ],
  "domain_successful_basenames": ["redsweater", "sweaterred"],
  "available_handles": {
    "redsweater": ["instagram", "twitter", "youtube"],
    "sweaterred": ["instagram", "tiktok"]
  },
  "unavailable_handles": {
    "redsweater": [{"platform": "reddit", "url": "..."}]
  },
  "summary": {
    "fully_available": ["sweaterred"],
    "cheapest_domain": {"domain": "redsweater.com", "price": 17.29}
  }
}

fully_available リストには、チェック対象のすべてのプラットフォームで使用可能な名前が含まれます。

ドメイン検索方法

方法説明料金速度
autoAPIキーが設定されている場合はNameSiloを使用し、そうでない場合はRDAPを使用しますNameSiloの場合は有料高速
rdapIANAブートストラップ経由でレジストリに直接クエリします無料高速
namesiloNameSilo API(APIキーが必要)有料高速
RDAPの制限事項

RDAPは無料で、APIキーも不要ですが、いくつかの制限事項があります。

  • TLDの対応状況 - すべてのトップレベルドメイン(TLD)にRDAPサーバーがあるわけではありません。未対応のTLDへのクエリは失敗します。RDAPは.com、.net、.org、.app、.aiなどに対応しています。最新の一覧はdeployment.rdap.orgを確認してください(「RDAP」列が「Yes」のものを参照)。
  • 料金情報なし - RDAPが報告するのは利用可能かどうかのみで、ドメイン登録にかかる費用は報告されません。
  • 誤検出 - RDAPでは利用可能と表示されたドメインが、実際にはレジストラによって予約済み、または「プレミアム」と見なされ、事実上利用できないか、購入費用が非常に高額な場合があります。

料金を含めて信頼性の高い結果を得るには、NameSilo APIキーを設定してください。

設定

APIキーの保存先:

  • macOS: Keychain(internet-names-mcp.namesiloとして保存)
  • Linux: ~/.config/internet-names-mcp/config.json
  • Windows: %APPDATA%/internet-names-mcp/config.json

APIキーの検索順序(最初に見つかったものを使用):

  1. macOS Keychain(macOSのみ)
  2. 環境変数(NAMESILO_API_KEY)
  3. 設定ファイル(フォールバック)

開発

ローカルセットアップ

devsetup.sh スクリプトは、仮想環境の作成と依存関係のインストールを処理します。

git clone https://github.com/drewster99/InternetNamesMCP.git InternetNamesMCP
cd InternetNamesMCP
source devsetup.sh          # Creates .venv, activates it, installs dependencies
playwright install chromium # Required for Instagram, Threads and Reddit checks (auto-installed on first use otherwise)

オプション:

  • source devsetup.sh - 環境をセットアップします(デフォルト)
  • source devsetup.sh --clean - venvとキャッシュを削除します
  • source devsetup.sh --clean --setup - クリーンな状態から再構築します
APIキーの設定(開発)

ソースから実行する場合は、uvxの代わりにモジュールを直接使用します。

source devsetup.sh  # Activate environment first

python -m internet_names_mcp --setup       # Configure API keys interactively
python -m internet_names_mcp --show-config # Show current configuration and key source
python -m internet_names_mcp --version     # Show version
テストの実行
source devsetup.sh  # Activate environment first

# Main test suites
python test_server.py         # Full test suite - offline validation + online API tests
python test_mcp_interface.py  # Tests via MCP protocol (stdio transport)
python test_rdap_client.py    # Async RDAP client, rate limiter, batch queries

# Comparison/diagnostic tests
python test_methods.py        # Compare RDAP vs NameSilo results for discrepancies
python test_rdap.py           # Quick RDAP-only domain check
テストファイル説明
test_server.pyすべての MCP ツール、エッジケース、API 呼び出しを対象としたメインのテストスイート
test_mcp_interface.pystdio 経由の実際の MCP プロトコルを通じてサーバーをテストします
test_rdap_client.py非同期 RDAP クライアント、レート制限、一括クエリをテストします
test_methods.py利用可否の不一致を検出するため、RDAP と NameSilo を比較します
test_rdap.pyドメインの利用可否をすばやく確認するための、RDAP のみを使ったシンプルなテストです
インタラクティブテスト

Web UI を使ったインタラクティブなデバッグには MCP Inspector を使用します。

npx @modelcontextprotocol/inspector .venv/bin/python -m internet_names_mcp
プロジェクト構成
├── src/internet_names_mcp/
│   ├── __init__.py       # CLI entry point
│   ├── __main__.py       # Module runner
│   ├── server.py         # MCP server
│   ├── config.py         # Configuration management
│   ├── rdap_bootstrap.py # RDAP bootstrap cache
│   └── rdap_client.py    # Async RDAP client
├── pyproject.toml       # Package configuration
└── README.md
データファイル

RDAP ブートストラップキャッシュ - TLD を権威 RDAP サーバーに対応付けます(IANA から自動ダウンロード):

  • macOS/Linux: ~/.cache/internet-names-mcp/rdap_bootstrap.json
  • Windows: %APPDATA%/internet-names-mcp/rdap_bootstrap.json

キャッシュの有効期限が切れると、自動的に更新されます(デフォルトの TTL は、IANA の Cache-Control ヘッダーに基づき 24 時間です)。

トラブルシューティング

「playwright not installed」または Chromium のエラー

Playwright ブラウザーをインストールします。

playwright install chromium

または、uvx を使います。

uvx --from playwright install chromium
「Instagram is throttling username checks」

Instagram は、1 つの IP アドレスから実行できるサインアップ時のユーザー名確認回数を制限します。制限中は、どの名前に対しても「利用不可」と応答します。サーバーはランダムな対照用の名前を使ってこれを検出し、誤った回答の代わりに、プロフィールが存在するかどうかを示したエラーを報告します。テストでは、1 つの IP アドレスから約 20~40 回確認した後に制限が発動し、約 25 分以内に解除されました。使用済みの名前はプロフィールページから確定され、この制限回数には含まれません。

Reddit のエラー(「bot-check page」または「without data」)

Reddit はブラウザー以外のクライアントをブロックし、IP アドレス単位でレート制限を行います。サーバーはヘッドレスブラウザーで Reddit の JavaScript チェックを通過し、サーバープロセスの実行中、取得した Reddit の Cookie をメモリ上に保持します(ディスクには保存しません)。呼び出しのたびに新しいチャレンジを解消すると、Reddit が CAPTCHA を要求するようになるためです。それでも Reddit が CAPTCHA を要求する場合、エラーにその旨が表示されます。サーバーが CAPTCHA の解読を試みることはありません。しばらく待ってから再試行してください。

著作権

Copyright (C) 2026 Nuclear Cyborg Corp

ライセンス

MIT

コメント

MCP は初めてですか?

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

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