mcpField
R
Robin: AI-Powered Dark Web OSINT

Robin: AI-Powered Dark Web OSINT

ローカル
github.com/apurvsinghgautamセキュリティ7.7k4 週間前に更新

Robin: AI-Powered Dark Web OSINT について

Robin は、ダークウェブ向けの AI 支援型 OSINT ツールです。Tor 経由でオニオン検索エンジンを検索してページを取得し、選択したモデルで結果を絞り込んで調査サマリーを作成します。合法的な調査とセキュリティ研究を目的とし、Web UI または MCP サーバーとして利用できます。

主な機能

  1. 01Tor 経由でダークウェブ検索エンジンを検索しページを取得
  2. 02複数の LLM プロバイダーと OpenAI 互換 API に対応
  3. 03インタラクティブな調査のための Streamlit Web UI
  4. 04保存済み調査データに基づくフォローアップ質問
  5. 05Docker によるデプロイ構成

活用シーン

  1. 01ダークウェブ関連テーマの合法的な OSINT 調査
  2. 02MCP 対応エージェントの自身のモデルを使った調査の実行
  3. 03後で確認するための調査レポートの保存

MCP 対応

Robin は MCP サーバーとして動作し、MCP クライアントは自身のモデルでそのツールを呼び出せます。検索とページ取得は Tor 経由で行われ、レポートは investigations フォルダーに保存されます。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"apurvsinghgautam-robin": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"docker.io/apurvsg/robin:v3.1"
]
}
}
}
起動コマンドdocker run -i --rm docker.io/apurvsg/robin:v3.1

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

パッケージ
ocidocker.io/apurvsg/robin:v3.1

ツール

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

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

詳細

ロゴ
リリース GitHub リリース Docker のプル数

スター履歴ランキング 今日の GitHub トレンドリポジトリ

Robin:AI を活用したダークウェブ OSINT ツール

Robin は、ダークウェブの OSINT 調査を行うための AI を活用したツールです。LLM を利用して検索クエリを改善し、ダークウェブ検索エンジンの検索結果を絞り込み、調査の概要を提供します。

インストール • MCP としての Robin • トラブルシューティング • コントリビューション • 謝辞

デモ

アーキテクチャ

ワークフロー


特徴

  • 🤖 マルチモデル対応 – OpenAI、Claude、Gemini、Mistral、OpenRouter、Ollama、または OpenAI 互換 API(LM Studio、llama.cpp、Groq など)を利用できます。
  • 🌐 Web UI – インタラクティブな調査を行える Streamlit ベースのインターフェースです。
  • 🔌 MCP 対応 – MCP に対応する任意のエージェントから、そのエージェント独自のモデルを使って Robin を実行できます。MCP としての Robin をご覧ください。
  • 💬 会話形式の追加質問 – 検索を再実行せずに、調査で得られたデータに基づいて調査に関する追加質問を行えます。
  • 🔀 ワンクリックで調査を展開 – 調査結果から提案される追加の検索クエリをクリックすると、新しい調査を開始できます。
  • 🐳 Docker 対応 – クリーンで分離された環境で使用できる、推奨の Docker デプロイ方法です。

⚠️ 免責事項

このツールは、教育および合法的な調査目的に限って使用することを想定しています。特定のダークウェブコンテンツへのアクセスやその利用は、管轄区域によっては違法となる場合があります。本ツールの誤用、または本ツールを使用して収集したデータについて、作者は一切責任を負いません。

責任を持って、自己責任でご利用ください。OSINT 調査を行う前に、関連するすべての法律および組織のポリシーを遵守していることを確認してください。

また、Robin はサードパーティ API(LLM を含む)を利用します。機密情報を含む可能性のあるクエリを送信する際は注意し、利用する API やモデルのプロバイダーの利用規約を確認してください。

インストール

メモ

検索を実行するには、ツールに Tor が必要です。Linux/Windows(WSL) では apt install tor、Mac では brew install tor で Tor をインストールできます。インストール後、Tor がバックグラウンドで実行されていることを確認してください。

ヒント

API キーは .env ファイル(.env.example をコピー)または環境変数で指定してください。キーは 1 つで十分です。Robin は、検出したプロバイダーのモデルを一覧表示します。対応しているキーは OPENAI_API_KEY、ANTHROPIC_API_KEY、GOOGLE_API_KEY、MISTRAL_API_KEY、OPENROUTER_API_KEY です。

Ollama の場合、.env に設定する項目はありません。Robin はデフォルトで http://host.docker.internal:11434 を使用します。これは推奨される Docker インストールに必要な設定です。次の 2 点はご自身で設定してください。

  1. --add-host=host.docker.internal:host-gateway を指定してコンテナーを実行します(README のコマンドにはすでに指定されています)。
  2. Ollama がすべてのインターフェースでリッスンするようにします。デフォルトでは 127.0.0.1 にバインドされるため、コンテナーからアクセスできません。手動で起動する場合は、OLLAMA_HOST=0.0.0.0 ollama serve & を実行します。systemd で実行している場合は、sudo systemctl edit ollama.service を実行し、[Service] と Environment="OLLAMA_HOST=0.0.0.0" を追加してから、sudo systemctl daemon-reload && sudo systemctl restart ollama を実行します。

それでも表示されない場合は、TROUBLESHOOTING.md を参照してください。

それ以外の OpenAI 互換プロバイダー(LM Studio、llama.cpp、Groq など)では、サイドバーの 🔌 Custom API Provider エクスパンダーを使用してください。.env の変更は不要です。ベース URL、任意の API キー、そしてプロバイダーが自動検出用の /v1/models を公開していない場合は任意のモデル名を入力します。

Docker[推奨]
  • 最新の Robin Docker イメージをプルします
docker pull apurvsg/robin:latest
  • 実行するフォルダーに、API キーを記載した .env ファイルを作成します(.env.example を参照)。初回実行前に作成してください。ファイルがない場合、Docker はその場所に空のフォルダーをマウントし、Robin はキーなしで起動します。
touch .env   # then add your API key to it
  • 次のように Docker イメージを実行します。
docker run --rm \
   -v "$(pwd)/.env:/app/.env" \
   --add-host=host.docker.internal:host-gateway \
   -p 8501:8501 \
   apurvsg/robin:latest

ヒント

Docker の再起動後も保存した調査を保持するには、名前付きボリュームまたはローカルディレクトリーを /app/investigations にマウントします。

名前付きボリュームはすべての OS で同じように動作し、ホストのパスも不要です。また、Robin as MCP のエージェントコマンドがマウントするボリュームでもあるため、UI にはエージェントが保存したレポートと同じものが表示されます。

docker run --rm \
   -v "$(pwd)/.env:/app/.env" \
   -v robin-investigations:/app/investigations \
   --add-host=host.docker.internal:host-gateway \
   -p 8501:8501 \
   apurvsg/robin:latest

JSON ファイルを自分のディスクに保存したい場合は、ローカルディレクトリーをマウントします。

docker run --rm \
   -v "$(pwd)/.env:/app/.env" \
   -v "$(pwd)/investigations:/app/investigations" \
   --add-host=host.docker.internal:host-gateway \
   -p 8501:8501 \
   apurvsg/robin:latest

調査は作業ディレクトリー内の investigations/ フォルダーに保存され、サイドバーの Past Investigations パネルから読み込めます。

Docker がフォルダーを root として作成しないように、あらかじめフォルダーを作成してください(mkdir -p investigations)。コンテナーは UID 1000 で実行されます。Linux では、それ以外のユーザーが所有するフォルダーはコンテナーから読み取り専用となるため、Robin は警告を 1 回表示し、保存に失敗しますが、調査自体は実行されます。この問題が発生した場合、またはご自身の UID が 1000 でない場合は、上記の名前付きボリュームを使用するか、Linux で保存した調査が permission denied で失敗する場合を参照してください。

  • ブラウザーを開き、http://localhost:8501 にアクセスします
自分でビルドする

公開済みのイメージではなく自分でビルドしたものを実行するには、リポジトリーをクローンして ビルドします。

docker build -t robin .

その後、同じ実行コマンドで apurvsg/robin:latest を robin に置き換えて使用します。

docker run --rm \
   -v "$(pwd)/.env:/app/.env" \
   --add-host=host.docker.internal:host-gateway \
   -p 8501:8501 \
   robin
docker run --rm \
   -v "$(pwd)/.env:/app/.env" \
   -v "$(pwd)/investigations:/app/investigations" \
   --add-host=host.docker.internal:host-gateway \
   -p 8501:8501 \
   robin
  • ブラウザーを開き、http://localhost:8501 にアクセスします

MCP としての Robin

MCP に対応した LLM サービスであれば、独自のモデルを使って Robin を実行できます。以下のセクションでは、一般的なホストでの設定例を紹介します。一覧にないホストでも、「MCP サーバーを追加する」に相当する項目を使えば、同じように設定できます。

Claude Code
claude mcp add robin -- docker run -i --rm -v robin-investigations:/app/investigations apurvsg/robin mcp

または、プロジェクトの .mcp.json に追加してください。Tor を使った調査には数分かかるため、サーバーごとのタイムアウトを延長します。

{
  "mcpServers": {
    "robin": {
      "command": "docker",
      "args": ["run", "-i", "--rm", "-v", "robin-investigations:/app/investigations", "apurvsg/robin", "mcp"],
      "timeout": 600000
    }
  }
}
Codex
codex mcp add robin -- docker run -i --rm -v robin-investigations:/app/investigations apurvsg/robin mcp

ChatGPT デスクトップアプリもこのホストを共有しています。Settings → MCP servers で Robin を追加すると、同じ設定が書き込まれ、ツールは通常の ChatGPT チャットではなく Codex セッションに表示されます。

Tor 検索には通常数分かかるため、Codex のデフォルトの MCP ツールタイムアウトを超える場合があります。~/.codex/config.toml で上限を引き上げてください。

[mcp_servers.robin]
command = "docker"
args = ["run", "-i", "--rm", "-v", "robin-investigations:/app/investigations", "apurvsg/robin", "mcp"]
tool_timeout_sec = 600
startup_timeout_sec = 60

# Only for non-interactive runs (`codex exec`): Codex declines MCP tool calls
# that would need approval, so pre-approve Robin's read-only tools.
default_tools_approval_mode = "approve"

最初の起動時にダウンロードも行われないよう、先にイメージを取得してください(docker pull apurvsg/robin:latest)。

Claude Desktop

claude_desktop_config.json に追加して、アプリを再起動してください。

{
  "mcpServers": {
    "robin": {
      "command": "docker",
      "args": ["run", "-i", "--rm", "-v", "robin-investigations:/app/investigations", "apurvsg/robin", "mcp"]
    }
  }
}
Hermes

~/.hermes/config.yaml に追加してください。

mcp_servers:
  robin:
    command: docker
    args: [run, -i, --rm, -v, "robin-investigations:/app/investigations", apurvsg/robin, mcp]
    timeout: 600
OpenClaw
openclaw mcp add robin --command docker --arg run --arg -i --arg --rm --arg -v --arg robin-investigations:/app/investigations --arg apurvsg/robin --arg mcp

または、設定の mcp.servers の下に追加してください。

{
  "mcp": {
    "servers": {
      "robin": {
        "transport": "stdio",
        "command": "docker",
        "args": ["run", "-i", "--rm", "-v", "robin-investigations:/app/investigations", "apurvsg/robin", "mcp"],
        "requestTimeoutMs": 600000
      }
    }
  }
}
ChatGPT

デスクトップアプリの Settings → MCP servers では、アプリ、Codex CLI、IDE 拡張機能が共有する Codex ホストを設定します。そこで Robin を追加すると、Codex セッションに表示されます。詳しくはCodexを参照してください。通常の ChatGPT チャットでは Robin を実行できません。チャットは、MCP サーバーにアクセスする際、ユーザーのマシン上ではなく OpenAI のインフラストラクチャ上で動作するコネクターを経由するためです。

セキュリティ
  • シェルに何かを送信、実行、起動することはありません。書き込まれるのは保存済みレポートのみで、Robin が選んだファイル名で investigations/ に保存されます。エージェントがパスを指定することはありません。
  • 検索、ページのスクレイピング、検索エンジンの健全性チェックは Tor 経由で行われるため、使用中のアプリがダークウェブのページを直接取得することはありません。モデルプロバイダーへの呼び出しとモデルリストの更新は、Tor を経由せずに直接行われます。
  • スクレイピングしたテキストは、信頼できないデータを示す区切りの中に入れて返されます。その前に、制御文字、ゼロ幅文字、双方向テキスト制御文字を除去するため、モデルはその内容を指示ではなく証拠として読み取ります。

謝辞

コメント

MCP は初めてですか?

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

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