Onion-OSINT-MCP
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Onion-OSINT-MCP Search Tor hidden services for ransomware leak sites tied to Conti"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
🧅 Onion-OSINT-MCP: Universal Tor (.onion) Threat Intelligence & OSINT Tool for Agentic AI
Herramienta universal de Ciberinteligencia (CTI) y OSINT pasivo en la red Tor (.onion) diseñada para integrarse de forma nativa en cualquier IA Agéntica:
Clientes MCP (Model Context Protocol): Claude Desktop, Claude Code, Cursor, Windsurf, Google Antigravity, OpenCode, Cline, Roo Code, Zed, Goose.
Frameworks de Agentes en Python: LangChain, LangGraph, CrewAI, AutoGen, LlamaIndex, SmolAgents, OpenAI Agents SDK, Anthropic Tool Use, Ollama / vLLM.
Agentes de Terminal / Skills (
SKILL.md&AGENTS.md): Aider, OpenHands, SWE-agent, Codex, Hermes Agent.
🏗️ Arquitectura y Flujo de Resiliencia
flowchart LR
Agent["🤖 IA Agéntica<br/>(MCP / SDK / CLI)"] --> Tool["search_onion_web()<br/>read_onion_page()"]
Tool --> Proxy["🛡️ Proxy Tor SOCKS5h<br/>(127.0.0.1:9050 / Auto-Bootstrap)"]
Proxy --> Engine1["1️⃣ Ahmia .onion v3<br/>(Servicio Oculto Nativo)"]
Proxy --> Engine2["2️⃣ Fallback Tor Exit<br/>(Pasarela Indexadora)"]
Tool --> LocalDB[("3️⃣ SQLite Local Index<br/>(onion_index.db)")]
Engine1 --> Heuristic["🔍 Analizador CTI<br/>(Anti-Scam & Detección de Espejos)"]
Engine2 --> Heuristic
LocalDB --> Heuristic
Heuristic --> Output["📊 JSON Estructurado<br/>(URLs .onion, Frescura, Fiabilidad)"]Características Clave
Aislamiento Estricto de Proxy y Sin Fugas DNS (
socks5h://+trust_env = False): Ignora cualquier proxy HTTP/HTTPS del sistema o variables de entorno (HTTP_PROXY,HTTPS_PROXY,ALL_PROXY,NO_PROXY, registro de Windows) forzando querequestsutilice exclusivamente el túnel SOCKS5h de Tor configurado.Distinción Explícita de Estados (
status):"completed"(ok: true,live_tor_reached: true): Búsqueda en vivo completada a través de Tor (conNo0resultados reales)."local_only"(ok: true,live_tor_reached: false): Consulta servida desde el índice local SQLite (onion_index.db), indicandodegraded: truecuando actúa como respaldo ante caída de Tor."connection_failed"(ok: false,live_tor_reached: false, MCPisError: true): Fallo de conexión a Tor sin resultados locales, evitando que un agente confunda un error de red con una búsqueda vacía.
Auto-Bootstrap Multiplataforma: Detecta automáticamente si existe un proxy Tor activo en
127.0.0.1:9050o9150. Si no está activo, localiza el binariotoren Linux, macOS o Windows y levanta un circuito temporal automáticamente.Heurística CTI de Fiabilidad y Clusters de Espejos: Detecta automáticamente redes de espejos/clones (múltiples dominios
.onionsirviendo idéntica ruta y título) y patrones de keyword stuffing o fraude.Lectura Estrictamente Pasiva (
read_onion_page): Solo permite peticionesHTTP GETa dominios.onion, eliminando<script>,<iframe>,<style>y<form>, e informando si la página contiene formularios de credenciales sin interactuar con ellos.
Related MCP server: sicry
🚀 Instalación Rápida
Requisitos
Python 3.10+
Tor instalado en el sistema (
apt install tor,brew install toro Tor Browser en Windows/macOS) — o bien Docker.
git clone https://github.com/jotatito05/onion-osint-mcp.git
cd onion-osint-mcp
pip install -r requirements.txt(Opcional) Instalación como paquete CLI global:
pip install -e .🔌 Integración con Cualquier IA Agéntica
Opción A: Servidor MCP en Python Puro (Recomendado — Sin Node.js)
Funciona en Claude Desktop, Claude Code, Cursor, Windsurf, Antigravity, Cline, OpenCode, etc. Añade esto a tu archivo mcp_config.json o claude_desktop_config.json:
{
"mcpServers": {
"onion-osint": {
"command": "python",
"args": [
"/ruta/absoluta/a/onion-osint-mcp/search_onion_web.py",
"mcp"
]
}
}
}Opción B: Servidor MCP en Node.js (@modelcontextprotocol/sdk)
Si prefieres ejecutar el wrapper en Node.js (npm install previo):
{
"mcpServers": {
"onion-osint": {
"command": "node",
"args": [
"/ruta/absoluta/a/onion-osint-mcp/index.js"
]
}
}
}Opción C: Contenedor Docker (Incluye Tor preinstalado)
No requiere instalar Tor ni Python en el sistema anfitrión:
docker build -t onion-osint-mcp .Configuración MCP con Docker:
{
"mcpServers": {
"onion-osint": {
"command": "docker",
"args": ["run", "-i", "--rm", "onion-osint-mcp"]
}
}
}Opción D: Frameworks de Agentes en Python (OpenAI, Anthropic, LangChain, CrewAI)
Importa directamente las funciones o exportadores de esquemas desde search_onion_web.py (ver ejemplos completos en examples/agent_integrations.py):
from search_onion_web import (
search_onion_web,
read_onion_page,
get_openai_tools,
get_anthropic_tools,
)
# Llamada directa desde cualquier agente Python
resultado = search_onion_web(query="lockbit", max_results=10, days=30)
print(resultado)
# Esquemas listos para OpenAI Function Calling / Ollama / vLLM / DeepSeek
openai_tools = get_openai_tools()
# Esquemas listos para Anthropic Claude Tool Use
anthropic_tools = get_anthropic_tools()Opción E: Uso por CLI (Para Agentes de Terminal y Analistas)
# Verificar estado del proxy Tor y nodo de salida
python search_onion_web.py status
# Buscar menciones o indicadores en servicios ocultos .onion
python search_onion_web.py search "ransomware" --max-results 10 --days 7
# Lectura pasiva y sanitizada de un servicio oculto .onion
python search_onion_web.py read "http://<direccion_v3>.onion/" --max-chars 5000🧠 System Prompt Recomendado para el Agente OSINT
El repositorio incluye SKILL.md y AGENTS.md para carga automática. Si configuras un agente personalizado, utiliza este System Prompt:
Eres un Agente de Ciberinteligencia y OSINT especializado en la navegación, análisis y extracción de información de la red Tor (servicios ocultos .onion).
Tu objetivo es asistir en la búsqueda de información pública, foros, documentación o menciones dentro de los límites legales y éticos de la investigación de ciberseguridad defensiva y Threat Intelligence.
### Capacidades y Herramientas Disponibles:
Dispones de la herramienta `search_onion_web(query: str)` que se conecta de forma segura a través de un proxy SOCKS5 y motores indexadores de la red Tor (como Ahmia o bases de datos indexadas locales), y `read_onion_page(url: str)` para lectura pasiva.
### Instrucciones de Operación:
1. Interpretación de la consulta: Analiza la solicitud del usuario y traduce los términos clave en consultas de búsqueda eficientes para entornos de la Dark Web.
2. Ejecución de la tool: Llama a la herramienta de búsqueda `.onion` cuando necesites recabar datos actualizados de servicios ocultos.
3. Manejo de resiliencia y latencia: Ten en cuenta que la red Tor presenta alta latencia y servicios intermitentes. Si una consulta falla o da timeout, intenta refinar los términos o buscar fuentes alternativas indexadas.
4. Análisis y Síntesis: Procesa los snippets y resultados devueltos. Presenta la información de manera estructurada, destacando:
- URLs `.onion` encontradas (si son públicas y relevantes).
- Resumen del contenido o hallazgos clave.
- Evaluación de la fiabilidad o frescura de la fuente.
5. Enfoque de Seguridad: No ejecutes payloads, no interactúes directamente con formularios de credenciales ni realices acciones más allá de la lectura pasiva y el análisis OSINT.⚙️ Variables de Entorno Soportadas
Variable | Descripción | Valor por Defecto |
| URL completa del proxy SOCKS5h externo (ej. | Auto-detectado ( |
| Host del proxy SOCKS5 de Tor. |
|
| Puerto SOCKS5 de Tor. |
|
| Ruta explícita al ejecutable | Auto-descubrimiento multiplataforma |
| Ruta del archivo SQLite para el índice local. |
|
🛡️ Enfoque de Seguridad y Uso Ético
Este proyecto ha sido desarrollado exclusivamente para investigación defensiva, Threat Intelligence (CTI), docencia y análisis OSINT pasivo:
No realiza fuerza bruta, explotación ni envío de formularios (
POST).Sanitiza el DOM eliminando scripts activos y formularios antes de entregar el texto al modelo de lenguaje, mitigando vectores de Indirect Prompt Injection o ejecución no deseada.
El usuario es responsable de cumplir con la legislación aplicable y las políticas de su organización durante la investigación.
Available Tools
2 toolsread_onion_pageA
Realiza una lectura pasiva (HTTP GET) de una URL .onion a través del proxy SOCKS5h de Tor, eliminando scripts y formularios de credenciales por seguridad OSINT. Distingue en 'status' entre 'completed', 'tls_error' (certificado autofirmado), 'timeout' y 'connection_failed'.
Inputs: url (required), max_chars, verify_tls.
search_onion_webA
Busca información pública, foros, documentación o menciones en servicios ocultos (.onion) de la red Tor a través de proxy SOCKS5h (Ahmia .onion + base de datos indexada local SQLite). Distingue en 'status' entre 'completed', 'local_only' y 'connection_failed'.
Inputs: query (required), days, local_only, max_results.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 2 tools
The two tools target clearly different operations: search_onion_web queries an index (Ahmia/local SQLite) and returns mentions, while read_onion_page performs a direct HTTP GET against a specific .onion URL. Their distinct status vocabularies (local_only/connection_failed vs tls_error/timeout) reinforce the operational boundary, leaving no realistic path to misselection.
Both names follow the same snake_case verb_noun pattern (search_..., read_...) with a consistent 'onion' resource qualifier. No mixed conventions or vague verbs.
Two tools is on the thin side, but they map to the two essential primitives of onion OSINT (discover and retrieve). Still, a 2-tool surface sits at the borderline where an agent may need workarounds for anything beyond a single search-then-read loop.
Search plus passive fetch covers the core discover-then-read lifecycle of the stated OSINT purpose, with sensible error statuses. Minor gaps remain: no result pagination/limits handling surfaced as a tool, no bulk or follow-link extraction, and no way to record or export findings.
Maintenance
Related MCP Connectors
Tor gateway for AI agents: fetch URLs and rotate circuits through Tor, Bitcoin-settled.
Route HTTP requests through the Tor network. Rotating exit IPs, .onion support, no body logging.
WAF-bypass web scraper and passive URL mapper for AI agents with zero pay-on-fail.
Proxy-rotated web scraping and cross-platform intelligence for AI agents.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables secure access to Tor/onion services with content filtering and safety guardrails for AI assistants.8MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to access Tor hidden services and the dark web through tools for search, fetch, and analysis over Tor.20MIT
- AlicenseAqualityCmaintenanceDark web & threat intelligence for AI agents. HIBP, ThreatFox, ransomware tracking, Tor .onion access, blockchain intel, exploit search, stealer logs, malware analysis — unified into a single MCP server.66419 npm524MIT
- AlicenseAqualityCmaintenanceEnables AI agents and compatible MCP clients to fetch, search, and download web content—including .onion services—anonymously through the Tor network, using a fresh circuit per call and retrying when exit nodes are blocked.62MIT