プロトタイプ · プレビュー版:公式レジストリのすべてのサーバーを掲載し、30分ごとに同期しています。レビューとアカウント機能は今後のステップで始まります。
PopNx MCPAIを使う人のためのMCPサーバー · やさしい言葉で解説

Robin: AI-Powered Dark Web OSINT

作者:apurvsinghgautamバージョン 3.1.0i★ –iパソコンで動く
レジストリ名io.github.apurvsinghgautam/robin

インストール

概要

作者による説明(英語の原文)

Dark web OSINT over Tor: search onion engines, scrape pages, report with your own model.

PopNx MCPの3つの柱

この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。

できること

このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。

  • 接続方法: パソコンで動く
  • トランスポート: stdio
  • カテゴリ: サイバーセキュリティ

インストール

使っているAIアプリを選んで、設定をコピーしてください。

インストールの前に

  • 基本チェック:1項目中1項目に合格
  • あなたのパソコンで、あなたのユーザーと同じ権限(ファイル、ネットワーク、アプリ)で動きます。
  • レジストリには、入力が必要なキーは載っていません。

必要なもの

  • DockerDockerのインストール

どのアプリを使っていますか?

上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。

Claude Desktop → Settings → Developer → Edit Config を開き、claude_desktop_config.json にこれを貼り付けます

{
  "mcpServers": {
    "robin": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "docker.io/apurvsg/robin:v3.1",
        "mcp"
      ]
    }
  }
}

ターミナルでこれを実行します

claude mcp add robin -- docker run -i --rm docker.io/apurvsg/robin:v3.1 mcp

Cursorで開く

または、設定を自分でコピーする

プロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます

{
  "mcpServers": {
    "robin": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "docker.io/apurvsg/robin:v3.1",
        "mcp"
      ]
    }
  }
}

ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。

VS Codeで開く

または、設定を自分でコピーする

プロジェクトの .vscode/mcp.json に貼り付けます

{
  "servers": {
    "robin": {
      "type": "stdio",
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "docker.io/apurvsg/robin:v3.1",
        "mcp"
      ]
    }
  }
}

ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。

これはパソコンで動くサーバーですが、ChatGPTがつなげるのはインターネット上のサーバーだけです。ほかのアプリを選んでください。

選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。

この設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。

できること

パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。

基本チェックi

誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月7日にチェック

  • ✓ 合格

    作者とリポジトリが一致

    レジストリ名は、リポジトリを所有するGitHubアカウント apurvsinghgautam で確認済みです

  • … 未チェック

    今もメンテナンスされている

    このリポジトリはまだGitHubから読み取っていません

  • … 未チェック

    ライセンスがある

    このリポジトリはまだGitHubから読み取っていません

  • – 対象外

    エンドポイントが応答する

    これはパソコンで動くため、インターネット上のエンドポイントはありません

  • – 対象外

    OAuthでサインイン

    パソコンで動き、代わりにローカルの設定を使います

  • … 未チェック

    ツールの説明に隠れた指示がない

    パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです

サイバーセキュリティのほかのサーバーとの比較i

  • このカテゴリのほかの993件のうち0%よりスターが多い
  • このカテゴリのほかの993件のうち55%より最近レジストリに公開
  • 基本チェックの結果が、このカテゴリのほかの993件のうち100%と同じかそれ以上

レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。

よくある質問

Robin: AI-Powered Dark Web OSINTは安全ですか?

当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。

どんなキーやコードが必要ですか?

レジストリには必須のキーは載っていません。ただし、最初に使うときにサインインを求めるサーバーもあります。

パソコンで動きますか、それともクラウドですか?

あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。

今もメンテナンスされていますか?

GitHubリポジトリの最終更新は–、最新バージョン(3.1.0)がレジストリに届いたのは36 日前です。

どのアプリで使えますか?

Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにDockerも必要です。

代わりに使えるものは?

同じカテゴリには:ipdata MCP by usefulapi, MaxMind minFraud MCP by usefulapi, Lambda Labs MCP by usefulapi

代わりの候補

同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。

カードの見方:★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i

作者のREADME

READMEを開く

作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。

Robin: AI-Powered Dark Web OSINT Tool

Robin is an AI-powered tool for conducting dark web OSINT investigations. It leverages LLMs to refine queries, filter search results from dark web search engines, and provide an investigation summary. Installation • Robin as MCP • Troubleshooting • Contributing • Acknowledgements

Architecture


Features

  • 🤖 Multi-Model Support – OpenAI, Claude, Gemini, Mistral, OpenRouter, Ollama, or any OpenAI-compatible API (LM Studio, llama.cpp, Groq, etc.).
  • 🌐 Web UI – Streamlit-based interface for interactive investigations.
  • 🔌 MCP Support – Run Robin from any MCP-capable agent, using that agent's own model. See Robin as MCP.
  • 💬 Conversational Follow-ups – Ask grounded follow-up questions about an investigation without re-running the search, answered from that investigation's own data.
  • 🔀 One-Click Pivots – Suggested follow-up queries surfaced from the findings; click one to launch a fresh investigation.
  • 🐳 Docker-Ready – Recommended Docker deployment for clean, isolated usage.

⚠️ Disclaimer

This tool is intended for educational and lawful investigative purposes only. Accessing or interacting with certain dark web content may be illegal depending on your jurisdiction. The author is not responsible for any misuse of this tool or the data gathered using it.

Use responsibly and at your own risk. Ensure you comply with all relevant laws and institutional policies before conducting OSINT investigations.

Additionally, Robin leverages third-party APIs (including LLMs). Be cautious when sending potentially sensitive queries, and review the terms of service for any API or model provider you use.

Installation

[!NOTE]

The tool needs Tor to do the searches. You can install Tor using apt install tor on Linux/Windows(WSL) or brew install tor on Mac. Once installed, confirm if Tor is running in the background.

[!TIP]

Provide your API key either in a .env file (copy .env.example) or as environment variables. One key is enough: Robin lists models for whichever providers it finds. Supported keys are OPENAI_API_KEY, ANTHROPIC_API_KEY, GOOGLE_API_KEY, MISTRAL_API_KEY and OPENROUTER_API_KEY.

For Ollama, nothing goes in your .env. Robin defaults to http://host.docker.internal:11434, which is what the recommended Docker install needs. Two things are still on you:

1. Run the container with --add-host=host.docker.internal:host-gateway (the README command already does).

2. Make Ollama listen on all interfaces, since it binds to 127.0.0.1 by default and a container cannot reach that. If you start it yourself, OLLAMA_HOST=0.0.0.0 ollama serve &. If it runs under systemd, sudo systemctl edit ollama.service, add [Service] and Environment="OLLAMA_HOST=0.0.0.0", then sudo systemctl daemon-reload && sudo systemctl restart ollama.

See TROUBLESHOOTING.md if it still doesn't appear.

For any other OpenAI-compatible provider (LM Studio, llama.cpp, Groq, etc.), use the 🔌 Custom API Provider expander in the sidebar — no .env changes required. Enter the base URL, an optional API key, and optionally a model name if the provider doesn't expose /v1/models for auto-discovery.

Docker [Recommended]
  • Pull the latest Robin docker image
docker pull apurvsg/robin:latest
  • Create a .env file in the folder you run from, with your API key in it (see .env.example). Create it before the first run: if it does not exist, Docker mounts an empty folder in its place and Robin starts with no keys.
touch .env   # then add your API key to it
  • Run the docker image as:
docker run --rm \

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

[!TIP]

To persist saved investigations across Docker restarts, mount a named volume or a local directory at /app/investigations.

A named volume works the same on every OS and needs no host path. It is also the volume the agent commands in Robin as MCP mount, so the UI shows the same reports your agent saved:

`bash

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

`

Or mount a local directory, if you want the JSON files on your own disk:

`bash

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 are saved to the investigations/ folder in your working directory and can be loaded from the Past Investigations panel in the sidebar.

Create the folder yourself first (mkdir -p investigations) so Docker does not create it as root. The container runs as UID 1000, and on Linux a folder owned by anyone else is read-only to it — Robin prints one warning and the save fails, though the investigation still runs. If you hit that, or your own UID isn't 1000, use the named volume above, or see Saved investigations fail with permission denied on Linux.

  • Open your browser and navigate to http://localhost:8501
Build it yourself

To run your own build instead of the published image, clone the repository and build it:

docker build -t robin .

Then use the same run commands with robin in place of apurvsg/robin:latest:

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

  • Open your browser and navigate to http://localhost:8501

Robin as MCP

Any LLM service that speaks MCP can run it, using its own model. The sections below are worked examples for the common hosts; a host that is not listed works the same way, with whatever wording it uses for "add an MCP server".

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

Or check it into the project in .mcp.json. A Tor investigation takes minutes, so raise the per-server timeout:

{

"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

The ChatGPT desktop app shares this host: adding Robin under Settings → MCP servers there writes the same configuration, and its tools appear in Codex sessions rather than in an ordinary ChatGPT chat.

A Tor search usually takes a couple of minutes, which can outlast Codex's default MCP tool timeout, so raise the limits in ~/.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"

Pull the image first (docker pull apurvsg/robin:latest) so the first start is not also a download.

Claude Desktop

Add this to claude_desktop_config.json and restart the app:

{

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

Hermes

In ~/.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

Or in the config, under mcp.servers:

{

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

ChatGPT

The desktop app's Settings → MCP servers configures the Codex host that the app, the Codex CLI and the IDE extension share, so add Robin there and it appears in Codex sessions: see Codex. An ordinary ChatGPT chat cannot run it, because chat reaches MCP servers through connectors that run in OpenAI's infrastructure rather than on your machine.

Security
  • Nothing sends, executes, or runs a shell. The only writes are saved reports, into investigations/ under a filename Robin picks; the agent never names a path.
  • Searches, page scrapes and search-engine health checks go through Tor, so the app you are using never fetches a dark web page itself. Model provider calls and the model list refresh go directly, not through Tor.
  • Scraped text comes back inside untrusted-data delimiters, with control, zero-width and bidi characters stripped first, so your model reads it as evidence rather than as instructions.

Acknowledgements

PopNxに聞く