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. 01通过 Tor 搜索暗网引擎并抓取页面
  2. 02支持多家 LLM 服务及 OpenAI 兼容接口
  3. 03Streamlit Web UI 交互式调查
  4. 04基于调查数据的追问与关联查询建议
  5. 05提供 Docker 部署方式

适用场景

  1. 01对暗网相关主题开展合法的 OSINT 调查
  2. 02让 MCP 兼容 Agent 使用自身模型运行调查
  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

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

Logo
Release GitHub Release Docker Pulls

Star History Rank GitHub Trending Repository of the Day

Robin:AI 驱动的暗网 OSINT 工具

Robin 是一款 AI 驱动的工具,用于开展暗网 OSINT 调查。它利用大模型优化查询、筛选暗网搜索引擎的搜索结果,并提供调查摘要。

安装 • 将 Robin 用作 MCP • 故障排除 • 参与贡献 • 致谢

演示

架构

工作流


功能

  • 🤖 多模型支持 – OpenAI、Claude、Gemini、Mistral、OpenRouter、Ollama,或任何兼容 OpenAI 的 API(LM Studio、llama.cpp、Groq 等)。
  • 🌐 Web UI – 基于 Streamlit 的界面,支持交互式调查。
  • 🔌 MCP 支持 – 可从任何支持 MCP 的 Agent 中运行 Robin,并使用该 Agent 自身的模型。参见将 Robin 用作 MCP。
  • 💬 对话式后续提问 – 无需重新运行搜索,即可就调查内容提出有依据的后续问题;答案基于该调查自身的数据。
  • 🔀 一键切换调查方向 – 根据调查发现推荐后续查询;点击即可启动新的调查。
  • 🐳 支持 Docker – 推荐使用 Docker 部署,实现干净、隔离的使用环境。

⚠️ 免责声明

本工具仅供教育和合法调查之用。根据您所在的司法管辖区,访问或交互某些暗网内容可能违法。作者不对本工具的任何滥用行为或使用本工具收集的数据承担责任。

请负责任地使用,并自行承担风险。在开展 OSINT 调查前,请确保遵守所有相关法律和机构政策。

此外,Robin 使用第三方 API(包括大模型)。发送可能包含敏感信息的查询时请谨慎,并查看您所用 API 或模型提供商的服务条款。

安装

说明

该工具需要 Tor 执行搜索。你可以在 Linux/Windows(WSL) 上使用 apt install tor,或在 Mac 上使用 brew install tor 安装 Tor。安装后,请确认 Tor 是否在后台运行。

提示

通过 .env 文件(复制 .env.example)或环境变量提供 API 密钥即可。只需一个密钥: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 安装方式所需的地址。你仍需自行完成以下两项设置:

  1. 使用 --add-host=host.docker.internal:host-gateway 运行容器(README 中的命令已包含此参数)。
  2. 让 Ollama 监听所有网络接口,因为它默认绑定到 127.0.0.1,而容器无法访问该地址。如果你自行启动 Ollama,请运行 OLLAMA_HOST=0.0.0.0 ollama serve &。如果 Ollama 由 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
  • 在运行命令的文件夹中创建 .env 文件,并在其中填写 API 密钥(参见 .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 挂载命名卷或本地目录。

命名卷适用于所有操作系统,无需指定主机路径。Robin as MCP 中 Agent 命令挂载的也是此卷,因此 UI 会显示 Agent 保存的同一批报告:

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 面板加载。

请先自行创建该文件夹(mkdir -p investigations),以免 Docker 将其创建为 root 用户所有。在 Linux 上,容器以 UID 1000 运行,其他用户所有的文件夹对其而言是只读的——Robin 会打印一条警告,保存操作会失败,但调查仍会继续。如果遇到此问题,或你的 UID 不是 1000,请使用上面的命名卷,或参阅 Saved investigations fail with permission denied on Linux。

  • 打开浏览器并访问 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

Robin 作为 MCP

任何支持 MCP 的大模型服务都可以使用自己的模型运行它。下面各节提供了适用于常见宿主的示例;未列出的宿主也可以用同样的方式配置,只需使用它添加 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,会写入相同的配置;它的工具会出现在 Codex 会话中,而不是普通的 ChatGPT 对话中。

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 对话无法运行它,因为 ChatGPT 通过在 OpenAI 基础设施上运行的连接器访问 MCP 服务,而不是在你的计算机上运行。

安全性
  • 不会发送、执行或运行任何 Shell 命令。唯一的写入操作是保存报告,文件位于 investigations/ 目录下,文件名由 Robin 选择;Agent 不会指定路径。
  • 搜索、页面抓取和搜索引擎健康检查都通过 Tor 进行,因此你使用的应用本身不会抓取暗网网页。模型提供商调用和模型列表刷新则直接进行,不经过 Tor。
  • 抓取的文本会放在不可信数据分隔符内返回,并且会先剥除控制字符、零宽字符和双向文本字符,因此模型会将其作为证据来读取,而不是作为指令。

致谢

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。