OSINT Server
БесплатноНе проверенEnables AI agents to perform controlled OSINT tasks (domain, IP, email, phone, username recon; metadata analysis; breach checks) in a Docker sandboxed Kali Linu
Описание
Enables AI agents to perform controlled OSINT tasks (domain, IP, email, phone, username recon; metadata analysis; breach checks) in a Docker sandboxed Kali Linux environment.
README
Servidor MCP para agentes IA que permite ejecutar tareas OSINT de forma controlada, trazable y segura sobre una imagen Docker de Kali Linux.
Compatible con Claude Code, Gemini CLI y ChatGPT (mediante GPT Actions o function calling).
Arquitectura
[Claude Code / Gemini CLI / ChatGPT]
|
| MCP: stdio (local) / HTTP+SSE (remoto)
v
[mcp_server/server.py] Python, Anthropic MCP SDK
|
| HTTP → localhost:8001
v
[osint_api/main.py] FastAPI
|
v
[Docker Kali OSINT Sandbox]
├── whois, dig, subfinder, theHarvester, httpx, whatweb
├── sherlock, maigret, holehe, phoneinfoga
├── exiftool, mat2, pdfinfo, file, strings
├── gitleaks, trufflehog, git (clonado de repos)
└── Conectores: AbuseIPDB, HIBP, EmailRep, VirusTotal, Shodan, Cala.ai
Workflows OSINT disponibles
| Workflow | Descripción |
|---|---|
domain_recon |
WHOIS, DNS, subdominios (subfinder), theHarvester, Shodan pasivo. Con passive_only=false: sondeo HTTP (httpx) y fingerprinting web (whatweb) |
ip_reputation |
ASN, reputación, abuse reports, Shodan pasivo |
email_reputation |
Servicios registrados, reputación, brechas (no passwords) |
phone_reputation |
Carrier, país, tipo de línea, spam signals |
username_recon |
Cuentas activas en 300+ plataformas (Sherlock + Maigret), enriquecimiento PDL/FullContact |
person_recon |
Búsqueda por nombre completo: empleo, educación, perfiles sociales, ubicación (PDL, FullContact, IntelX) |
reverse_image_search |
Búsqueda inversa por imagen, hash perceptual, TinEye |
metadata_analysis |
Metadatos EXIF/GPS, autor, software, hash SHA256 de imágenes y documentos |
breach_exposure_check |
Exposición en brechas conocidas, VirusTotal (sin passwords) |
vehicle_recon |
Matrícula española o VIN → marca, modelo, motor, emisiones, historial ITV |
secret_scan |
Escaneo de secretos/credenciales filtrados en un repositorio git público (github, gitlab, bitbucket, codeberg) o fichero subido, con gitleaks + trufflehog. Secretos siempre redactados |
company_recon |
Due-diligence de entidad vía Cala.ai: resuelve un nombre (empresa, persona, producto, ley, lugar) → ficha verificada con fuentes (sector, funding, registro, relaciones, métricas) + resumen sourced. Marca señales de sanciones/PEP/litigios |
📖 Ejemplos de consulta para cada workflow (lenguaje natural + payload + curl): docs/examples.md
Herramientas de soporte MCP
| Herramienta | Descripción |
|---|---|
list_osint_tools |
Lista el catálogo de herramientas disponibles |
recommend_osint_workflow |
Auto-detecta tipo de indicador y recomienda workflows |
run_osint_workflow |
Ejecuta cualquier workflow por nombre |
get_task_result |
Consulta estado y resultado de una tarea (soporta long-polling con ?wait=N) |
export_report |
Exporta informe en Markdown / JSON / HTML |
API de archivos
Permite analizar imágenes y documentos para extraer metadatos EXIF/GPS y datos del autor.
| Endpoint | Descripción |
|---|---|
POST /files/upload |
Sube un archivo binario directamente (curl, API clients). Valida MIME por magic bytes. |
POST /files/fetch |
Descarga un archivo desde URL pública y lo prepara para análisis. Uso obligatorio desde GPT Actions (no puede enviar binarios). |
Formatos soportados: JPEG, PNG, WebP, GIF, TIFF, BMP, HEIC, PDF, DOC/DOCX, XLS/XLSX, PPT/PPTX, ODT/ODS/ODP. Límite: 20 MB.
Nota para ChatGPT: usar siempre
fetchFilecon la URL del archivo. Servicios que preservan metadatos EXIF:0x0.st,catbox.moe,transfer.sh. Evitar Imgur, WhatsApp y CDNs de redes sociales (eliminan metadatos).
Inicio rápido
Desarrollo local
# 1. Clonar y configurar
git clone <repo> mcp-osint-server
cd mcp-osint-server
python3 -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
# 2. Configurar variables de entorno
cp config/.env.example config/.env
# Editar config/.env (al menos OSINT_INTERNAL_API_KEY)
# 3. Levantar la OSINT API
uvicorn osint_api.main:app --host 127.0.0.1 --port 8001 --reload
# 4. (En otra terminal) Probar el servidor MCP
source .venv/bin/activate
python -m mcp_server.server --transport stdio
Docker Compose (producción)
cp config/.env.example config/.env
# Editar config/.env
docker compose -f docker/docker-compose.yml up -d
# OSINT API en http://localhost:8001
# MCP Server (SSE) en http://localhost:3000/sse
Conectar a clientes IA
| Cliente | Documentación |
|---|---|
| Claude Code | docs/connect-claude-code.md |
| Gemini CLI | docs/connect-gemini.md |
| ChatGPT | docs/connect-chatgpt.md |
Ejemplo rápido — Claude Code (stdio)
Añade a ~/.claude/settings.json:
{
"mcpServers": {
"osint": {
"command": "/ruta/al/proyecto/.venv/bin/python",
"args": ["-m", "mcp_server.server", "--transport", "stdio"],
"cwd": "/ruta/al/proyecto",
"env": {
"OSINT_API_URL": "http://127.0.0.1:8001",
"OSINT_INTERNAL_API_KEY": "tu-clave",
"OSINT_MODE": "safe"
}
}
}
}
Tests
source .venv/bin/activate
pip install pytest pytest-asyncio
pytest tests/ -v
Variables de entorno
Configuración del sistema
| Variable | Descripción | Por defecto |
|---|---|---|
OSINT_MODE |
Modo de operación: safe, analyst, lab |
safe |
OSINT_INTERNAL_API_KEY |
Clave compartida MCP server ↔ OSINT API (cómo generarla) | changeme |
LOG_LEVEL |
Nivel de log: DEBUG, INFO, WARNING, ERROR | INFO |
MAX_TASK_TIME_SECONDS |
Timeout máximo por tarea | 300 |
MAX_CONCURRENT_TASKS |
Tareas concurrentes máximas | 3 |
Generar OSINT_INTERNAL_API_KEY
No se obtiene de ningún proveedor externo: es un secreto compartido que tú generas y que autentica al servidor MCP frente a la OSINT API (cabecera X-OSINT-API-Key). Debe ser idéntico en ambos lados (el .env de la API y la config del cliente MCP). Genera un valor aleatorio con cualquiera de estos comandos:
# Opción A — UUID
uuidgen
# Opción B — 32 bytes aleatorios en hex (Python, siempre disponible)
python3 -c "import secrets; print(secrets.token_hex(32))"
# Opción C — OpenSSL
openssl rand -hex 32
Copia el valor en config/.env:
OSINT_INTERNAL_API_KEY=el-valor-generado
Y usa el mismo valor en la config del cliente MCP (campo OSINT_INTERNAL_API_KEY del ejemplo de Claude Code más abajo) y al ejecutar el check en modo --live. No lo dejes en changeme fuera de desarrollo.
Modelos LLM (para el cliente)
| Variable | Descripción | Dónde obtener la key |
|---|---|---|
OLLAMA_URL |
URL del servidor Ollama | — (local) |
OLLAMA_MODEL |
Modelo por defecto | — |
DEEPSEEK_API_KEY |
DeepSeek API (deepseek-chat / deepseek-reasoner) | platform.deepseek.com |
OPENAI_API_KEY |
OpenAI API (GPT-4o, GPT-4o-mini...) | platform.openai.com/api-keys |
APIs externas OSINT
Todas son opcionales. El sistema funciona con las que estén configuradas y degrada graciosamente las que faltan.
| Variable | Servicio | Plan gratuito | Dónde obtener la key |
|---|---|---|---|
SHODAN_API_KEY |
Shodan — passive service discovery por IP | No (desde $49/mes) | account.shodan.io |
CENSYS_API_TOKEN |
Censys — hosts, certificados, dominios | Sí (250 req/mes) | search.censys.io/account |
VIRUSTOTAL_API_KEY |
VirusTotal — reputación de URLs, dominios, IPs, hashes | Sí (500 req/día) | virustotal.com/gui/my-apikey |
ABUSEIPDB_API_KEY |
AbuseIPDB — reportes de abuso por IP | Sí (1000 req/día) | abuseipdb.com/account/api |
HIBP_API_KEY |
Have I Been Pwned — brechas por email | No (desde £3.50/mes) | haveibeenpwned.com/API/Key |
EMAILREP_API_KEY |
EmailRep — reputación de email | Sí (limitado) | emailrep.io/key |
IPQUALITYSCORE_API_KEY |
IPQualityScore — fraud scoring para email, teléfono e IP | Sí (5000 req/mes) | ipqualityscore.com/user/settings |
FULLCONTACT_API_KEY |
FullContact — enriquecimiento de persona (nombre, empleo, perfiles sociales) | Sí (500 req/mes) | dashboard.fullcontact.com |
INTELX_API_KEY |
Intelligence X — búsqueda en leaks, pastes, darkweb, Telegram | Sí (limitado) | intelx.io → Account → API |
PEOPLEDATALABS_API_KEY |
People Data Labs — enriquecimiento de persona: historial laboral, educación, skills, perfiles sociales, dominios email | Sí (100 req/mes free) | peopledatalabs.com → API Keys |
CALA_API_KEY |
Cala.ai — conocimiento verificado / due-diligence de entidad: empresas, personas, sanciones/PEP, registros, litigios, con fuentes | Sí (100 créditos/mes) | console.cala.ai |
SECURITYTRAILS_API_KEY |
SecurityTrails — DNS histórico, subdominios | Sí (50 req/mes) | securitytrails.com/app/account/credentials |
TINEYE_API_KEY |
TinEye — búsqueda inversa de imágenes | No (desde $200/mes) | api.tineye.com |
NUMVERIFY_API_KEY |
Numverify — validación de teléfonos | Sí (100 req/mes) | numverify.com/dashboard |
TWILIO_ACCOUNT_SID + TWILIO_AUTH_TOKEN |
Twilio Lookup — carrier, tipo de línea | Pago por uso ($0.005/req) | console.twilio.com |
RAPIDAPI_KEY |
RapidAPI (Autoways/DGT) — matrícula o VIN → marca, modelo, motor, emisiones, fechas | Según plan | rapidapi.com — Autoways |
Seguridad
- Sin ejecución de comandos raw en modo
safe. - Allowlist estricta de binarios y argumentos CLI.
- Validación de todos los inputs antes de cualquier ejecución.
- Enmascarado de PII y API keys en outputs.
- Docker sandbox:
no-new-privileges,cap_drop: ALL,read_only. - Rate limiting por cliente y por API externa.
- Tool poisoning: resultados de internet se tratan como datos no confiables.
Estructura del proyecto
mcp-osint-server/
├── mcp_server/ # Servidor MCP (stdio + SSE)
│ ├── server.py # Entry point, 16 herramientas MCP
│ └── schemas/ # Pydantic models compartidos
├── osint_api/ # FastAPI backend
│ ├── main.py
│ ├── runners/ # Ejecución segura de CLIs
│ ├── parsers/ # Parsers de output por herramienta
│ ├── connectors/ # APIs externas (AbuseIPDB, HIBP, etc.)
│ ├── workflows/ # 12 workflows OSINT
│ ├── catalog/ # Catálogo de herramientas
│ ├── security/ # Allowlist, validator, sanitizer, rate limiter
│ └── reports/ # Generadores Markdown/JSON/HTML
├── docker/ # Dockerfile.kali + docker-compose.yml
├── config/ # tools.yml, policies.yml, .env.example
├── docs/ # Documentación de conexión por cliente
└── tests/ # Tests unitarios
Roadmap
- Fase 1 (actual): MVP — 12 workflows, Docker Kali, catálogo, informes, API archivos, long-polling
- Fase 2: Autenticación, políticas por rol, cola de tareas, auditoría avanzada
- Fase 3: Correlación de entidades, grafo OSINT, scoring avanzado, STIX/TAXII
Licencia
Para uso en OSINT defensivo y autorizado únicamente. No usar para: doxxing, stalking, fuerza bruta, explotación activa o cualquier actividad ilegal.
Установка OSINT Server
У этого сервера нет опубликованного пакета — он собирается из исходников. Открой репозиторий и следуй инструкции в README.
▸ github.com/lliwi/osint-mcpFAQ
OSINT Server MCP бесплатный?
Да, OSINT Server MCP бесплатный — установка в пару кликов через Unyly без оплаты.
Нужен ли API-ключ для OSINT Server?
Нет, OSINT Server работает без API-ключей и переменных окружения.
OSINT Server — hosted или self-hosted?
Self-hosted: сервер запускается локально на твоей машине командой из раздела установки.
Как установить OSINT Server в Claude Desktop, Claude Code или Cursor?
Открой OSINT Server на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.
Похожие MCP
Gmail
Read, send and search emails from Claude
автор: GoogleSlack
Send, search and summarize Slack messages
автор: SlackRunbear
No-code MCP client for team chat platforms, such as Slack, Microsoft Teams, and Discord.
Discord Server
A community discord server dedicated to MCP by [Frank Fiegel](https://github.com/punkpeye)
Compare OSINT Server with
Не уверен что выбрать?
Найди свой стек за 60 секунд
Автор?
Embed-бейдж для README
Похожее
Все в категории communication
