mcp-maltego について
mcp-maltegoは、MaltegoのtransformとMachineを使ってOSINT調査を行うAIエージェント向けMCPサーバーです。調査グラフと手順の履歴を保持し、ネイティブの.mtgxファイルでMaltego Desktopとデータを交換できます。
主な機能
- 01組み込みとカスタムのtransform実行
- 02Machineによるtransformの連鎖
- 03調査グラフと出所情報の保存
- 04次の調査手順の提案
- 05ネイティブ.mtgxファイルの入出力
- 06MarkdownとHTMLレポートの生成
活用シーン
- 01ドメイン、インフラ、メールアドレスの調査
- 02案件の手順に沿ったエンティティと関係の追跡
- 03Maltego Desktopでエージェントの調査を継続
MCP 対応
MCPクライアントに、案件・エンティティ・リンクの管理、transformとMachineの実行、次の手順の提案、調査グラフの入出力を行うOSINTツールを提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
mcp-maltego
AI エージェント向けの Maltego OSINT。
Claude、Gemini、Codex、Copilot、Cursor、または任意の MCP クライアントから、トランスフォームや Machine を実行し、リンクグラフを構築・分析して、結果をネイティブ形式の
.mtgx として Maltego に戻せます。
mcp-maltego は、AI エージェントを Maltego オペレーターにする Model Context Protocol サーバーです。実際のトランスフォーム(組み込みのもの、商用プロバイダーのもの、または独自の TRX/iTDS サーバー)を実行し、それらを Machine に連結し、あらゆる手順の記録を保持する永続的な調査グラフを維持して、次のピボットを提案し、すべてを Maltego Desktop にエクスポートします。使用するすべてのエージェントで、1 つのグラフを共有します。
主な機能
- 20 個のツールで、あらゆるモデルに対応します。 Gemini の厳格な関数呼び出しサブセットに照らして検証されるフラットな JSON スキーマを採用しています。バリエーションは
actionパラメーターでグループ化されているため、エージェントに大量のツールを提示せずに済みます。 - すぐに使える実際の変換機能が 38 種類あります。 API キーなしで利用できる機能が 26 種類(DNS over HTTPS、RDAP/WHOIS、crt.sh と CertSpotter を介した証明書透明性、HackerTarget、urlscan.io、Shodan InternetDB、Team Cymru と RIPE Stat による ASN/ネットブロック、Gravatar、GitHub プロフィール詳細、AlienVault OTX 脅威パルス、複数ネットワークでのプロフィール検索、解析)あり、キーを設定すると有効になるプロバイダー変換機能が 12 種類(VirusTotal、Shodan、SecurityTrails、Censys、Hunter.io、Have I Been Pwned、GreyNoise、Tatum)あります。
- Maltego の変換機能も利用できます。 Maltego TRX/iTDS XML プロトコルに対応しているため、エージェントは Maltego で使うものと同じ変換機能を実行できます。
- Machines。 DomainRecon、InfrastructureRecon、EmailRecon、CompanyFootprint、PersonalFootprint、PersonaFootprint、URLRecon、ThreatSweep、ASNToNetblocks、および TOML で定義する独自の Machine に対応し、再帰的なラウンドとコスト予算も利用できます。
- HUMINT、Breach Router、マルチエージェントスウォーム。 ネイティブの
humint.*エンティティオントロジー(humint.Alias、humint.Organization、humint.LocationHistory、humint.PsychologicalTrait)、プラットフォームを横断した仮名の相関付け、対象の行動プロファイリング([Hipótesis])、時系列の異常検知、重み付けされた関係性、ローカル SQLite + k-Anonymity/XposedOrNot による侵害ルーター(BreachSemanticPivot)、および楽観的ロックを用いたマルチエージェントによるケースのfork/delegate/mergeに対応します。 - 調査コパイロット。
osint_investigateを呼び出すだけで、検出、ケース作成、適切な Machine の選択、スコアリング、推奨事項の提示を行います。すべての手順(何を、何に対して、なぜ実行し、どのような結果になったか)が記録され、各エンティティには説明可能な来歴と優先度スコアが付与されます。また、次善のアクションは各変換機能の実績から学習します。 - ネイティブの Maltego ラウンドトリップ。 階層型、放射状、または力指向レイアウトで、調査の記憶を埋め込んだ
.mtgxをエクスポートできます。.mtgx のインポート、Maltego Desktop 内のローカル変換機能によるケースのオープン、近隣エンティティの展開、エンティティのエージェントへの送信、および使用中の Maltego エンティティオントロジーのインポートにも対応します。 - レポートと CLI。 Markdown または単体で動作する HTML 形式のエグゼクティブレポートを作成でき、ターミナルや CI では
maltegoctlを利用できます。 - デフォルトで安全です。 OSINT の内容は信頼できないデータとして扱われ、XML は defusedxml で解析され、アーカイブは上限付きで読み込まれます。エージェントが任意の URL を指定することはできず、API キーがログに記録されることもありません。
要件
- Node.js 18 以降(
npx用)。 - uv — Python 3.12 のランタイムを自動で管理します(まだ
uvがインストールされていない場合、初回実行時にmcp-maltegoが~/.maltego-mcp/binに自動でインストールします)。
ランタイム、~/.maltego-mcp/.env テンプレート、Maltego Desktop ブリッジ .mtz、グローバル CLI ランチャー(~/.local/bin または %USERPROFILE%\.local\bin 内の mcp-maltego、maltego-mcp、maltegoctl、maltego-mcp-bridge を PATH に追加)を、次の 1 つのコマンドで準備できます。
npx -y mcp-maltego setup
また、どの OS/ディストリビューション(Windows PowerShell/CMD、macOS、Ubuntu/Debian、Kali、Fedora/RHEL、Arch、Alpine)でも、特定のデプロイモードまたはクライアントターゲットを選択できます。
npx -y mcp-maltego setup --mode global # (Default) Global CLI in ~/.local/bin + PATH (run from any directory)
npx -y mcp-maltego setup --mode local # Isolated inside ~/.maltego-mcp without modifying PATH
npx -y mcp-maltego setup --mode http # Prepare + print Streamable HTTP server startup
npx -y mcp-maltego setup --client claude # Print ready-to-use config for a specific client (claude|gemini|codex|copilot|cursor|all)
はじめに
ほとんどの MCP クライアントで有効な標準設定:
{
"mcpServers": {
"maltego": {
"command": "npx",
"args": ["-y", "mcp-maltego"]
}
}
}
次に、エージェントに次のように依頼します:
example.com を調査し、事案の概要を教えて、Maltego 用にエクスポートしてください。
Claude Code
claude mcp add maltego -- npx -y mcp-maltego
Claude Desktop
claude_desktop_config.json を編集し(Settings → Developer → Edit Config)、上記の標準設定を追加します。
Gemini CLI
上記の標準設定を ~/.gemini/settings.json(すべてのプロジェクト)または .gemini/settings.json(1 つのプロジェクト)に追加します。
Codex
codex mcp add maltego -- npx -y mcp-maltego
または ~/.codex/config.toml に追加します:
[mcp_servers.maltego]
command = "npx"
args = ["-y", "mcp-maltego"]
GitHub Copilot CLI
標準設定を ~/.copilot/mcp-config.json、またはリポジトリ内の .mcp.json / .github/mcp.json に追加します。
VS Code
.vscode/mcp.json:
{ "servers": { "maltego": { "command": "npx", "args": ["-y", "mcp-maltego"] } } }
Cursor
標準設定を ~/.cursor/mcp.json または .cursor/mcp.json に追加します。
OpenCode
opencode.json:
{ "mcp": { "maltego": { "type": "local", "command": ["npx", "-y", "mcp-maltego"], "enabled": true } } }
Qwen Code
標準設定を ~/.qwen/settings.json または .qwen/settings.json に追加します。
Orca IDE and other multi-agent setups
このリポジトリをクローンして Orca で開きます。各エージェントが読み込むプロジェクトファイル(.mcp.json、
.gemini/settings.json、.codex/config.toml、.cursor/mcp.json、.qwen/settings.json、opencode.json)が含まれているため、手動で登録しなくても、すべての
ワークツリーでサーバーを利用できます。すべてのエージェントは ~/.maltego-mcp の 1 つのグラフを共有します。
docs/ORCA.md を参照してください。
リモート(Streamable HTTP)
npx -y mcp-maltego --transport http --port 8000 # http://127.0.0.1:8000/mcp
サーバーは localhost のみでバインドします。認証機能はまだないため、ネットワークに公開しないでください。
| グループ | ツール | 説明 |
|---|---|---|
| カタログ | osint_list_entity_types | カテゴリ別のエンティティオントロジー(標準、ネイティブの humint.*、およびお使いの Maltego からインポートしたもの) |
osint_list_transforms | トランスフォーム、Machines、プロバイダーキー、サーバーのステータス | |
| ケース | osint_manage_case | マルチエージェントスウォーム用のサブケースを作成、フォーク/委任、(楽観的ロックを使用して)マージ、または削除 |
osint_list_cases | ページ分割された一覧 | |
osint_get_case_summary | 件数、優先度の高いエンティティ、品質指標 | |
| エンティティ | osint_upsert_entity | エンティティを作成または統合(正規化された値、決定論的な ID、メモ) |
osint_manage_entity | 信頼度/メモ/プロパティの編集、.mtgx の visual_style の設定、HUMINT の analyze_behavior の実行、または削除 | |
osint_get_entity | 詳細、説明付きスコア、来歴、保留中のトランスフォーム | |
osint_search_entities | ケース内またはケース横断で検索し、優先度順に並べ替え | |
| リンク | osint_link_entities | エンティティのリンク/リンク解除、HUMINT の役割/感情/重みの analyze、またはプラットフォーム横断の ID の correlate |
osint_get_neighbors | 方向とリンクの種類を含む関連エンティティ | |
osint_find_paths | 2 つのエンティティ間のパス | |
| トランスフォーム | osint_run_transform | 1 つのエンティティに対して 1 つのトランスフォームを実行 |
osint_expand_entity | 適用可能なすべてのトランスフォーム(「Run All」) | |
osint_run_machine | Machine またはアドホックなチェーンを、ラウンド数と予算を指定して実行 | |
| コパイロット | osint_investigate | 1 回の呼び出しですべてを実行:検出、ケース作成、Machine 実行、スコア付け、推奨、レポート作成 |
osint_suggest_next_steps | トランスフォームのパフォーマンス履歴に基づく、決定論的な次善アクション | |
osint_get_timeline | 調査の手順的メモリー(steps)、または対象の時系列と異常(subject) | |
| 交換 | osint_export_case | mtgx(レイアウトとメモリーを含む)、json、graphml、csv、report_md、report_html |
osint_import_graph | Maltego で保存した .mtgx(メモリーを含む)または CSV をインポート |
entity_type には、任意の Maltego の種類、独自の prefix.Name、または値から種類を検出する "auto" を指定できます。
トランスフォーム
| カテゴリ | トランスフォーム | API キー |
|---|---|---|
| DNS(HTTPS 経由+パッシブ) | DNSToIP、DNSToIPv6、DomainToMX、DomainToNS、DomainToTXT、DNSToCNAME、IPToReverseDNS、HackerTargetSubdomains | — |
| WHOIS(RDAP、ARIN フォールバック付き) | DomainToWhois、IPToWhois | — |
| ネットワークと露出状況 | IPToAS、IPToNetblock(Team Cymru)、RIPEStatASNToNetblocks、InternetDBIPToServices(ポート、CPE、CVE) | — |
| 証明書と Web | DomainToSubdomains(crt.sh+CertSpotter フォールバック)、CertSpotterSubdomains、URLScanDomainSearch | — |
| ID、ソーシャル、HUMINT | AliasToProfiles(GitHub、GitLab、Hacker News、Keybase、DEV)、GitHubAliasToDetails、GravatarEmailToProfile、EmailToAlias、AnalyzeSubjectBehavior | — |
| 漏えいと脅威インテリジェンス(API キー不要) | BreachSemanticPivot(ローカル SQLite+HIBP Pwned Passwords の k-匿名性+XposedOrNot)、OTXHashToThreatPulses | — |
| 解析 | EmailToDomain、URLToDomain、WebsiteToDomain、DomainToWebsite | — |
| VirusTotal | VTDomainToIP、VTIPToDomain、VTDomainToSubdomains、VTHashToDetection | VIRUSTOTAL_API_KEY |
| Shodan | ShodanIPToServices、ShodanDomainToSubdomains | SHODAN_API_KEY |
| SecurityTrails | SecurityTrailsSubdomains | SECURITYTRAILS_API_KEY |
| Censys | CensysIPToServices | CENSYS_API_ID、CENSYS_API_SECRET |
| Hunter.io | HunterDomainToEmails | HUNTER_API_KEY |
| Have I Been Pwned | HIBPEmailToBreaches | HIBP_API_KEY |
| GreyNoise | GreyNoiseIPContext | GREYNOISE_API_KEY |
| Tatum | TatumBTCAddressToTx | TATUM_API_KEY |
クライアントの設定を通じてキーを渡します。
{ "mcpServers": { "maltego": { "command": "npx", "args": ["-y", "mcp-maltego"],
"env": { "SHODAN_API_KEY": "...", "VIRUSTOTAL_API_KEY": "..." } } } }
独自の Maltego トランスフォームサーバー(TRX/iTDS)は ~/.maltego-mcp/transforms.toml で宣言します。詳しくは
config/transforms.example.toml を参照してください。カスタム Machines も同じファイルに記述します。
Maltego Desktop との統合
| 方向 | 方法 |
|---|---|
| エージェント → Maltego | osint_export_case で .mtgx を作成し、File → Open で開きます |
| Maltego → エージェント | ~/.maltego-mcp/imports/ に .mtgx として保存し、エージェントにインポートを依頼します |
| Maltego 内でのリアルタイム利用 | npx mcp-maltego ctl mtz でローカルトランスフォーム(MCP · Abrir caso、MCP · Vecinos en el caso、MCP · Guardar en el caso)を生成します。Import | Export → Import Config でファイルをインポートしてください |
| 独自のオントロジー | Maltego から設定をエクスポートし、npx mcp-maltego ctl import-entities config.mtz を実行します |
ローカルトランスフォームは、トランスフォームサーバーなしで Maltego CE および商用エディションで動作します。ブリッジを使用するには、
コマンドパスを安定させるため、パッケージをグローバルにインストールしてください(npm i -g mcp-maltego)。詳細は
docs/MALTEGO.md をご覧ください。
設定
| 変数 | デフォルト | 用途 |
|---|---|---|
MALTEGO_MCP_HOME | ~/.maltego-mcp | 共有状態:グラフ、カタログ、インポート、エクスポート、ランタイム |
MALTEGO_MCP_TRANSFORMS_FILE | <home>/transforms.toml | トランスフォームサーバーと Machines のカタログ |
MALTEGO_MCP_BACKEND | memory | memory(ローカル JSON、マルチプロセス対応)または gremlin(Azure Cosmos DB、実験的) |
MCP_MALTEGO_UV | 自動検出 | uv が PATH にない場合のフルパス |
詳細は docs/USO.md(スペイン語)をご覧ください。
CLI
npx mcp-maltego ctl inspect case.mtgx # validate a .mtgx
npx mcp-maltego ctl lookup DomainToMX gmail.com # quick lookup, nothing saved
npx mcp-maltego ctl transforms --type maltego.Domain
npx mcp-maltego ctl export demo --format report_html
npx mcp-maltego ctl import-entities config.mtz
npx mcp-maltego ctl mtz
プロンプトの例
- [email protected] を調査し、次に実行する価値のあるピボットを教えてください。
- example.com で DomainRecon を 2 ラウンド、エンティティ数の上限を 200 にして実行してください。
- IP アドレス 93.184.216.34 とケース demo 内のメールアドレスの間にあるすべての経路を見つけてください。
- ケース demo を放射状レイアウトで Maltego 用にエクスポートし、HTML レポートを作成してください。
- Maltego で acme.mtgx として保存したグラフをケース acme にインポートし、そこから続けてください。
コントリビューターとアナリスト向けの AI エージェントとスキル
このリポジトリには、単一のソース(.agents/)から生成された 10 個のエージェントと 15 個のスキルが含まれており、Claude Code、Gemini CLI、
Qwen Code、GitHub Copilot、Codex 向けに用意されています。スキルはオープンな Agent Skills 形式で、
Cursor でも読み込めます。
- 調査エージェント(この MCP を使用):
osint-analyst(次善のアクションを繰り返し検討するループとメモリを備えた copilot)、cti-analyst(防御目的の露出情報と IOC のトリアージ)、ioc-composer(MISP、ATT&CK、TheHive、 Cortex を用いた複数 MCP の IOC グラフ)、recon-toolchain-integrator(theHarvester、amass、recon-ng、SpiderFoot の出力をグラフに取り込みます)。 - 調査スキル:企業のフットプリント、アイデンティティのフットプリント、インフラストラクチャのマッピング、IOC グラフの作成、 外部 OSINT ツール、調査手法。
- 開発エージェントとスキル:MCP ツールの設計、トランスフォームとカスタムプロバイダー、Machines、グラフモデル、 Maltego 形式、標準外エンティティ、セキュリティレビュー、テスト、リリース、デプロイ。
コミュニティの取り組み(SulimanAbdulrazzaq/maltego-mcp、lidless-labs/maltego-mcp、HexStrike AI、MCP-Kali-Rust)に着想を得ています。 攻撃的な機能(エクスプロイト)は意図的に対象外としています。
セキュリティと責任ある利用
OSINT の内容は信頼できないものとして扱い、指示として従うことはありません。設計および脆弱性の報告方法については SECURITY.md をご覧ください。 ご利用の地域の法律、各プロバイダーの利用規約、データ保護規則(GDPR など)を遵守する責任は利用者にあります。
開発
git clone https://github.com/Data-Unix/MCP-MALTEGO.git && cd MCP-MALTEGO
uv sync
uv run pytest -q && uv run ruff check . && uv run mypy src # Python
npm test # npm launcher
npx @modelcontextprotocol/inspector uv run maltego-mcp # inspect the server
アーキテクチャ、コントリビューターと AI エージェント向けの規約:AGENTS.md。機能仕様の網羅状況:docs/COBERTURA.md。変更履歴:CHANGELOG.md。
ライセンス
MIT。Maltego は Maltego Technologies GmbH の商標です。このプロジェクトは独立したものであり、Maltego Technologies と提携関係になく、同社による推奨も受けていません。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。