IR Toolshed MCP Server について
IR Toolshed MCP Serverは、セキュリティやインシデント対応の担当者向けにネットワーク検索・分析ツールを提供します。AIエージェントによる調査を支援し、ツールの説明もリソースとして公開します。
主な機能
- 01IPのASN検索
- 02複数種類のDNSレコード検索
- 03ドメインのWHOIS情報取得
- 04IPジオロケーション
- 05ツール説明リソース
活用シーン
- 01IPの自律システムを調査
- 02ドメインのDNSレコードを確認
- 03ドメイン登録情報を取得
- 04不審なIPの位置を特定
MCP 対応
MCP サーバーは、ASN、DNS、WHOIS、IPジオロケーションのツールと、ツール説明のリソースをクライアントに公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
IR Toolshed MCP Server
セキュリティの専門家向けに、インシデント対応とネットワーク分析のツールを提供する包括的な Model Context Protocol(MCP)サーバーです。このサーバーにより、Claude などの AI エージェントがさまざまなネットワーク関連の検索や分析を実行し、セキュリティ調査を支援できます。
概要
IR Toolshed MCP Server は、Model Context Protocol 経由で利用できるネットワークおよびセキュリティ関連ツール一式を提供します。ネットワークインシデント対応者向けの汎用サービスとして設計されており、次のような基本的な検索を実行できます。
- ASN(自律システム番号)の検索
- DNS の検索と分析
- WHOIS レコードの取得
- IP アドレスの位置情報
- その他、今後追加予定のネットワーク分析機能
各ツールには詳細なドキュメントがリソースとして付属しているため、AI システムはツールの使い方と想定される出力を簡単に理解できます。
現在のツール
ASN Lookup Tool
ASN 検索ツールは、IP アドレスに関する次の情報を返します。
- 照会した IP アドレス
- IP アドレスに関連付けられた AS 番号
- AS 番号を所有する組織の名前
DNS Lookup Tool
DNS 検索ツールは、ドメインの DNS レコード情報を提供します。
- 複数のレコードタイプ(A、AAAA、MX、NS、TXT)に対応
- 書式設定された DNS レコードを返します
- IPv4 と IPv6 の両方の照会に対応
WHOIS Lookup Tool
WHOIS 検索ツールは、ドメイン登録情報を取得します。
- ドメイン所有者の詳細
- 登録日
- ネームサーバー情報
- レジストラの詳細
Geolocation Tool
IP 位置情報ツールは、MaxMind の GeoLite2 データベースを使用して位置情報を提供します。
- 国および市区町村レベルの位置データ
- 緯度と経度の座標
- ネットワーク情報
- タイムゾーンデータ
注:位置情報ツールを使用するには、MaxMind のライセンスキーが必要です。次のいずれかを行ってください。
- 無料のキーを次の URL から取得します:https://dev.maxmind.com/geoip/geolite2-free-geolocation-data
- 次のいずれかを行います。
- MAXMIND_LICENSE_KEY 環境変数を設定する
- ツールの使用時にパラメーターとして指定する
- プロンプトが表示されたときに入力する
今後のリリースでさらに多くのツールを追加する予定です。
前提条件
- Python 3.8 以降(3.13 以降を推奨)
- uv Python パッケージマネージャー
インストール
- このリポジトリをクローンします。
git clone <repository-url>
cd ir-toolshed-mcp-server
- 仮想環境を作成します。
uv venv
- 仮想環境を有効にします。
Windows の場合:
.venv\Scripts\activate
macOS/Linux の場合:
source .venv/bin/activate
- 開発モードでパッケージをインストールします。
uv pip install -e .
サーバーの起動
次のコマンドで MCP サーバーを起動します。
uv run mcp dev src/mcp_server.py
これによりサーバーが開発モードで起動し、Claude Desktop などの MCP クライアントから利用できるようになります。
ツールの使用
ASN Lookup Tool
Claude Desktop などの MCP クライアントに接続すると、IP アドレスを指定して ASN 検索ツールを使用できます。
asnlookup("8.8.8.8")
出力例:
{
"ip_addr": "8.8.8.8",
"as_number": "15169",
"as_name": "GOOGLE - Google LLC"
}
DNS Lookup Tool
Claude Desktop などの MCP クライアントに接続すると、ドメインを指定して DNS 検索ツールを使用できます。
dnslookup("example.com")
出力例:
{
"domain": "example.com",
"record_type": "A",
"record_value": "93.184.216.34"
}
WHOIS Lookup Tool
Claude Desktop などの MCP クライアントに接続すると、ドメインを指定して WHOIS 検索ツールを使用できます。
whoislookup("example.com")
出力例:
{
"domain": "example.com",
"ownership_details": "Google LLC",
"registration_date": "2004-04-26",
"nameserver_information": "ns1.google.com",
"registrar_details": "MarkMonitor Inc."
}
Geolocation Tool
Claude Desktop などの MCP クライアントに接続すると、IP アドレスを指定して位置情報ツールを使用できます。
geolocation("8.8.8.8")
出力例:
{
"ip_addr": "8.8.8.8",
"country": "US",
"city": "Mountain View",
"latitude": 37.40599,
"longitude": -122.078514,
"network": "AS15169 Google LLC",
"timezone": "America/Los_Angeles"
}
エラー処理
各ツールは一貫したエラー処理パターンに従います。
一般的なエラーレスポンス形式:
{
"status": "error",
"error": "Detailed error message",
"query": "Original query value"
}
ツール固有のエラー例:
ASN Lookup:
{
"ip_addr": "<queried-ip>",
"status": "error",
"error": "Invalid IP address format"
}
DNS Lookup:
{
"domain": "<queried-domain>",
"record_type": "<requested-type>",
"status": "error",
"error": "DNS resolution failed"
}
WHOIS Lookup:
{
"domain": "<queried-domain>",
"status": "error",
"error": "WHOIS server not available"
}
Geolocation:
{
"ip_addr": "<queried-ip>",
"status": "error",
"error": "MaxMind database not found or license key invalid"
}
プロジェクト構成
このプロジェクトは標準的な Python パッケージ構成に従っています。
irtoolshed_mcp_server/ # Main package directory
├── __init__.py # Package initialization
├── asnlookup.py # ASN lookup functionality
├── dnslookup.py # DNS lookup functionality
├── geolookup.py # Geolocation functionality
├── mcp_server.py # Main MCP server implementation
└── whoislookup.py # WHOIS lookup functionality
tests/ # Test directory
├── test_asnlookup.py # ASN lookup tests
├── test_dnslookup.py # DNS lookup tests
├── test_geolookup.py # Geolocation tests
└── test_whoislookup.py # WHOIS lookup tests
開発
開発環境のセットアップ
- このリポジトリをクローンします。
git clone <repository-url>
cd ir-toolshed-mcp-server
- 仮想環境を作成し、依存関係をインストールします。
uv venv
source .venv/bin/activate # On Windows use: .venv\Scripts\activate
uv pip install -e ".[dev]"
テストの実行
テストスイートを実行するには:
uv run pytest
次の処理が行われます:
tests/ディレクトリ内のすべてのテストを実行します- テストカバレッジ情報を表示します
- 失敗したテストの詳細な出力を表示します
注:一部のテストには追加の設定が必要です:
- 地理位置情報のテストには、MaxMind GeoLite2 データベースとライセンスキーが必要です
- WHOIS サービスが利用できない場合、WHOIS のテストは失敗することがあります
コード品質
このプロジェクトでは、コード品質を維持するために複数のツールを使用しています:
- Black でコードをフォーマットします:
uv run black .
- isort でインポートを並べ替えます:
uv run isort .
- mypy で型チェックを実行します:
uv run mypy .
- ruff でリントを実行します:
uv run ruff .
ロードマップ
完了済み: ✓ ASN ルックアップ ✓ DNS レコードのルックアップ(A、AAAA、MX など) ✓ WHOIS レコードの取得 ✓ IP 地理位置情報サービス
今後追加予定のツール:
- ドメインのレピュテーションスコアリング
- SSL 証明書の分析
- ネットワークポートのスキャン
- 脅威インテリジェンスとの連携
- パッシブ DNS 履歴
- メールセキュリティ分析(SPF、DKIM、DMARC)
- BGP ルート分析
- ネットワークトラフィックの可視化
- マルウェアハッシュのルックアップ
- URL のレピュテーションチェック
貢献
新しい IR ツールの追加や既存ツールの改善に向けた貢献を歓迎します。 以下の手順に従ってください:
- リポジトリをフォークします
- 機能ブランチを作成します
- mcp_server.py の既存のパターンに従ってツールを追加します
- リソースとして適切なドキュメントを含めます
- 変更内容を明確に説明したプルリクエストを送信します
ライセンス
Apache 2.0
セキュリティに関する考慮事項
このサーバーは、正当なセキュリティ調査およびインシデント対応を目的としています。 これらのツールを使用する際は、適用されるすべての法律および規制を遵守してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。