IR Toolshed MCP Server
IR ツールシェッド MCP サーバー
セキュリティ専門家向けにインシデント対応およびネットワーク分析ツールを提供する包括的なモデルコンテキストプロトコル(MCP)サーバー。このサーバーにより、ClaudeのようなAIエージェントは、ネットワーク関連の様々な検索と分析を実行し、セキュリティ調査を支援します。
概要
IR Toolshed MCPサーバーは、モデルコンテキストプロトコル(MCP)経由でアクセスできるネットワークおよびセキュリティツールスイートを提供します。ネットワークインシデント対応者向けの汎用サービスとして設計されており、以下のツールを使って基本的な検索を実行できます。
ASN(自律システム番号)検索
DNSルックアップと分析
WHOISレコードの取得
IPジオロケーション
さらに多くのネットワーク分析機能が今後登場します
各ツールにはリソースとして詳細なドキュメントが付属しており、AI システムがツールの使用方法や期待される出力を簡単に理解できるようになります。
Related MCP server: Wireshark MCP
現在のツール
ASN検索ツール
ASN 検索ツールは、次のような IP アドレスに関する情報を返します。
照会されたIPアドレス
IPアドレスに関連付けられたAS番号
AS番号を所有する組織の名前
DNSルックアップツール
DNS ルックアップ ツールは、ドメインの DNS レコード情報を提供します。
複数のレコードタイプをサポート(A、AAAA、MX、NS、TXT)
フォーマットされたDNSレコードを返します
IPv4とIPv6の両方のクエリを処理
WHOIS検索ツール
WHOIS 検索ツールはドメイン登録情報を取得します。
ドメイン所有権の詳細
登録日
ネームサーバー情報
レジストラの詳細
地理位置情報ツール
IP ジオロケーション ツールは、MaxMind の GeoLite2 データベースを使用して位置情報を提供します。
国および都市レベルの位置データ
緯度と経度の座標
ネットワーク情報
タイムゾーンデータ
注: ジオロケーションツールを使用するには、MaxMind のライセンスキーが必要です。以下の操作が可能です。
無料キーを入手するには、次のサイトにアクセスしてください: 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\activatemacOS/Linuxの場合:
source .venv/bin/activate開発モードでパッケージをインストールします。
uv pip install -e .サーバーの実行
次のコマンドで MCP サーバーを起動します。
uv run mcp dev src/mcp_server.pyこれにより、サーバーが開発モードで起動され、Claude Desktop などの MCP クライアントで使用できるようになります。
ツールの使用
ASN検索ツール
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ルックアップツール
Claude Desktop などの MCP クライアントに接続すると、ドメインを指定して DNS ルックアップ ツールを使用できます。
dnslookup("example.com")出力例:
{
"domain": "example.com",
"record_type": "A",
"record_value": "93.184.216.34"
}WHOIS検索ツール
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."
}地理位置情報ツール
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検索:
{
"ip_addr": "<queried-ip>",
"status": "error",
"error": "Invalid IP address format"
}DNSルックアップ:
{
"domain": "<queried-domain>",
"record_type": "<requested-type>",
"status": "error",
"error": "DNS resolution failed"
}WHOIS検索:
{
"domain": "<queried-domain>",
"status": "error",
"error": "WHOIS server not available"
}地理位置情報:
{
"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テストは失敗する可能性があります
コード品質
このプロジェクトでは、コードの品質を維持するためにいくつかのツールを使用しています。
黒でコードをフォーマットします:
uv run black .isort を使用してインポートをソートします。
uv run isort .mypy で型チェックを実行します。
uv run mypy .ruff で linting を実行します。
uv run ruff .ロードマップ
完了: ✓ ASN検索 ✓ DNSレコード検索 (A、AAAA、MXなど) ✓ WHOISレコード取得 ✓ IPジオロケーションサービス
今後追加予定のツール:
ドメイン評判スコアリング
SSL証明書分析
ネットワークポートスキャン
脅威インテリジェンスの統合
パッシブDNS履歴
メールセキュリティ分析(SPF、DKIM、DMARC)
BGPルート分析
ネットワークトラフィックの可視化
マルウェアハッシュ検索
URL の評判チェック
貢献
新しいIRツールの追加や既存のツールの改善への貢献を歓迎します。以下の手順に従ってください。
リポジトリをフォークする
機能ブランチを作成する
mcp_server.py の既存のパターンに従ってツールを追加します。
適切なドキュメントをリソースとして含める
変更内容を明確に記述したプルリクエストを送信します
ライセンス
アパッチ 2.0
セキュリティに関する考慮事項
このサーバーは、正当なセキュリティ調査およびインシデント対応を目的としています。ユーザーは、これらのツールを使用する際に、適用されるすべての法律および規制を遵守する必要があります。
Available Tools
4 toolsasnlookupD
| Name | Required | Description | Default |
|---|---|---|---|
| ipaddr | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Tool has no description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Tool has no description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool has no description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Tool has no description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Tool has no description.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Tool has no description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dnslookupD
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | ||
| record_type | No | A |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Tool has no description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Tool has no description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool has no description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Tool has no description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Tool has no description.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Tool has no description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geolookupD
| Name | Required | Description | Default |
|---|---|---|---|
| ipaddr | Yes | ||
| license_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Tool has no description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Tool has no description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool has no description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Tool has no description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Tool has no description.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Tool has no description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
whoislookupD
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Tool has no description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Tool has no description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool has no description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Tool has no description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Tool has no description.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Tool has no description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
4 tool updates
v0.1.0- First observed
asnlookup - First observed
dnslookup - First observed
geolookup - First observed
whoislookup
TDQS
Scored across 4 tools
Each tool has a clearly distinct purpose: asnlookup for Autonomous System Number queries, dnslookup for DNS resolution, geolookup for geographic IP location, and whoislookup for domain registration details. There is no overlap or ambiguity between these tools, making it easy for an agent to select the correct one based on the specific information needed.
All tool names follow a consistent pattern of noun+lookup (e.g., asnlookup, dnslookup, geolookup, whoislookup), using lowercase and no separators. This predictable naming scheme enhances readability and makes the tool set easy to navigate without any deviations or mixed conventions.
With 4 tools, this server is well-scoped for its purpose in IR (Incident Response) or network investigation. Each tool earns its place by covering a distinct aspect of network intelligence (ASN, DNS, geolocation, WHOIS), providing a focused and efficient set without being too thin or overloaded.
The tool set covers core network investigation functions comprehensively, with no obvious gaps for basic lookups. However, minor gaps might exist for advanced IR workflows, such as IP reputation checks or threat intelligence queries, but agents can likely work around this with the provided tools for most common tasks.
Maintenance
Related MCP Connectors
Cybersecurity MCP server for URL scanning, threat intelligence, and domain reputation.
The Google GKE MCP server is a managed Model Context Protocol server that provides AI applications with tools to manage Google Kubernetes Engine (GKE) clusters and Kubernetes resources. It exposes a structured, discoverable interface that allows AI agents to interact with GKE and Kubernetes APIs, enabling them to inspect cluster configurations, retrieve Kubernetes resource YAMLs, monitor operations like cluster upgrades, diagnose issues, and optimize costs—all without needing to parse text output or use complex kubectl commands.
The Telnyx MCP server is an official implementation of the Model Context Protocol that enables AI clients (like Claude Desktop, Cursor, and OpenAI Agents) to interact with Telnyx's telephony, messaging, and AI assistant APIs. It provides comprehensive capabilities including making and managing phone calls, sending SMS/MMS messages, purchasing and configuring phone numbers, creating AI assistants with custom instructions, managing cloud storage buckets, scraping and embedding website content, and handling integration secrets. The server exists as both a local implementation and a remotely hosted version, allowing developers to integrate real-world communication infrastructure directly into AI applications.
The Remote MCP server acts as a standardized bridge between LLM applications (like Claude, ChatGPT, and Cursor) and external services, enabling AI agents to access external tools and resources. Its primary capability is providing a centralized search tool to discover other MCP servers and their respective tools. Unlike local implementations, it runs remotely with OAuth authentication and permission controls for security.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceA Model Context Protocol server that provides access to Shodan and VirusTotal APIs for cybersecurity analysis, enabling analysts to perform network intelligence operations including host lookups, vulnerability analysis, and threat intelligence gathering.25-
- AlicenseNot gradedqualityDmaintenanceA Model Context Protocol server that integrates Wireshark's network analysis capabilities with AI systems like Claude, allowing direct analysis of network packet data without manual copying.32MIT
- AlicenseAqualityFmaintenanceA Model Context Protocol server that provides network packet capture and analysis capabilities through Wireshark/tshark integration, enabling AI assistants to perform network security analysis and troubleshooting.435MIT
- AlicenseNot gradedqualityDmaintenanceA Model Context Protocol server that provides comprehensive domain analysis capabilities including WHOIS lookups, DNS record queries, and DNS health checking.14MIT