BeVigil MCP server
Descubre superficies de ataque de aplicaciones móviles mediante BeVigil OSINT — hosts, subdominios, URLs y más.
Documentación
Servidor MCP de BeVigil
Mapea la superficie de ataque móvil de una empresa desde tu asistente de IA.
BeVigil ha escaneado millones de aplicaciones Android y ha extraído la infraestructura oculta
en ellas: hosts de backend, subdominios de staging, buckets de S3, rutas de API y parámetros
de consulta que nunca aparecen en DNS o en motores de búsqueda. Este servidor pone esos datos
detrás de siete herramientas MCP, para que puedas solicitarlos en lenguaje natural en lugar de
tener que combinar llamadas a curl.
Diseñado para cazadores de recompensas, pentesters, red teamers e ingenieros de seguridad de aplicaciones que realizan reconocimiento.
Probado con Claude Code, Claude Desktop, Codex, Cursor y VS Code.
Inicio rápido (2 minutos)
1. Obtén una clave de API gratuita
Regístrate en bevigil.com/osint-api. Las cuentas gratuitas obtienen 25 créditos, o 200 si te registras con un correo laboral. Una consulta = un crédito.
2. Añade el servidor
Sin clonar, sin compilar — npx lo descarga y lo ejecuta.
Claude Code
claude mcp add bevigil -e BEVIGIL_API_KEY=your_key_here -- npx -y bevigil-mcp-server
Comprueba que se registró con claude mcp list.
Claude Desktop
Edita claude_desktop_config.json (Configuración → Desarrollador → Editar configuración):
{
"mcpServers": {
"bevigil": {
"command": "npx",
"args": ["-y", "bevigil-mcp-server"],
"env": { "BEVIGIL_API_KEY": "your_key_here" }
}
}
}
Reinicia Claude Desktop.
Codex
codex mcp add bevigil --env BEVIGIL_API_KEY=your_key_here -- npx -y bevigil-mcp-server
Comprueba que se registró con codex mcp list.
Cursor
Añádelo a ~/.cursor/mcp.json (global) o .cursor/mcp.json (proyecto):
{
"mcpServers": {
"bevigil": {
"command": "npx",
"args": ["-y", "bevigil-mcp-server"],
"env": { "BEVIGIL_API_KEY": "your_key_here" }
}
}
}
VS Code (Copilot)
Añádelo a la configuración MCP de VS Code:
{
"mcp": {
"servers": {
"bevigil": {
"command": "npx",
"args": ["-y", "bevigil-mcp-server"],
"env": { "BEVIGIL_API_KEY": "your_key_here" }
}
}
}
}
3. Haz tu primera pregunta
Investiga com.whatsapp con BeVigil y resume la infraestructura que expone.
Deberías obtener algo como esto — nombres de host reales extraídos del código de la aplicación:
# Investigation Report: com.whatsapp
Source: BeVigil OSINT API
## Hosts / Domains (155 found)
• osaka.nyc3.cdn.digitaloceanspaces.com
• s3.getstickerpack.com
• logger.instagram.com
• dev503.prn2.facebook.com
...
Eso es todo — ya estás haciendo OSINT desde la ventana de chat.
Qué puedes preguntar
Reconocer la huella móvil de una empresa
¿Qué aplicaciones Android hablan con
api.acme.com? Luego extrae los hosts de cada una.
Encontrar endpoints de staging e internos
Obtén subdominios de
acme.comde BeVigil y marca cualquier cosa que parezca dev, staging o interno.
Buscar almacenamiento expuesto
¿A qué buckets de S3 hace referencia
com.acme.mobile?
Crear una wordlist de fuzzing específica para un objetivo
Extrae la wordlist de BeVigil para
com.acme.mobiley guarda las rutas de API enpaths.txt.
Pivotar desde un único dominio
Encuentra aplicaciones que hagan referencia a
acme.com, luego investiga las tres más interesantes y dime qué backends comparten.
La última es donde un agente demuestra su valor — son una docena de llamadas a la API y un paso de correlación que de otro modo harías manualmente.
Herramientas
| Herramienta | Entrada | Devuelve |
|---|---|---|
bevigil_get_hosts | ID de paquete | Nombres de host encontrados en el código de una aplicación |
bevigil_get_subdomains | dominio | Subdominios vistos en las aplicaciones indexadas |
bevigil_get_urls | dominio | URLs completas referenciadas por las aplicaciones |
bevigil_get_s3_buckets | ID de paquete | Buckets de S3 referenciados en una aplicación |
bevigil_get_app_packages | nombre de host | Búsqueda inversa — aplicaciones que usan ese host |
bevigil_get_wordlist | ID de paquete | Rutas, endpoints y parámetros para fuzzing |
bevigil_investigate_app | ID de paquete | Hosts + S3 + parámetros + wordlist en un solo informe |
Paginación
Cada herramienta que devuelve listas acepta limit y offset opcionales (por defecto 100, máximo
500). Cuando los resultados se truncan, la respuesta lo indica y proporciona el offset exacto
para continuar:
Hosts for com.whatsapp (155 found)
Source: BeVigil OSINT (package: com.whatsapp)
Showing 1-100 of 155.
For the next page, call this tool again with offset=100.
Créditos
Las respuestas no se almacenan en caché. Cada llamada a una herramienta — incluyendo cada página
adicional — es una solicitud a la API y un crédito. bevigil_investigate_app hace cuatro llamadas por
ejecución, por lo que cuesta cuatro. Cuando se agotan los créditos, recibes un mensaje claro en lugar de
un resultado vacío silencioso.
Aplicaciones que aún no están indexadas
BeVigil solo responde por las aplicaciones que ya ha escaneado. Si un paquete no está en el índice, las herramientas te indican cómo solucionarlo:
"com.acme.mobile" is not in BeVigil's index, so there is no data to return.
To add it, upload the APK at https://bevigil.com/scanApp. BeVigil scans the app
and indexes the assets it finds, after which this tool will return them.
Esto se distingue deliberadamente de "la aplicación está indexada pero no tiene buckets de S3" — solo el primer caso es algo sobre lo que puedes actuar.
Referencia de configuración
Clave de API
Preferido: configúrala en la configuración de tu cliente MCP (como se muestra en el inicio rápido), que la pasa al servidor como variable de entorno. Para uso en shell:
export BEVIGIL_API_KEY=your_api_key_here
Un archivo .env en la raíz del paquete también funciona. Ten en cuenta que se resuelve en relación
con el paquete instalado, no con tu directorio de trabajo, ya que los clientes MCP
lanzan servidores desde ubicaciones arbitrarias. Las variables de entorno reales siempre tienen prioridad sobre
.env, y .env está en gitignore — nunca lo confirmes.
Ejecución desde el código fuente
Para desarrollo local, o para fijar un commit específico:
git clone https://github.com/santhosh-005/bevigil-mcp-server.git
cd bevigil-mcp-server
npm install
npm run build
Luego apunta tu cliente al punto de entrada compilado en lugar de npx:
claude mcp add bevigil -e BEVIGIL_API_KEY=your_key_here -- node /absolute/path/to/bevigil-mcp-server/build/index.js
Requisitos: Node.js 20.12+, una clave de API de BeVigil y un cliente compatible con MCP.
Cómo funciona
MCP Client → BeVigil MCP Server → osint.bevigil.com
· Zod input validation
· pagination + truncation
· error normalisation
El servidor es una capa delgada y bien protegida: valida entradas, mantiene las respuestas dentro de un presupuesto de contexto razonable y convierte las varias formas diferentes de la API de decir "no hay nada aquí" en un mensaje único, consistente y accionable.
Decisiones de diseño que vale la pena conocer:
- Siete herramientas con forma de tarea, no envoltorios de endpoints crudos — cada una se corresponde con algo que un investigador realmente quiere.
- Resultados paginados con sugerencias de siguiente offset, para que los conjuntos de resultados grandes sigan siendo accesibles sin inundar la ventana de contexto.
- Búsquedas concurrentes en el flujo de trabajo de investigación.
- Manejo de fallos parciales — una búsqueda rota no hunde todo el informe.
- Los hallazgos se etiquetan como datos observados, nunca se afirman como vulnerabilidades. Un nombre de bucket es una pista, no un hallazgo.
Limitaciones
- Solo datos de aplicaciones móviles — esto refleja lo que está incrustado en el código de las aplicaciones Android, no enumeración de DNS ni escaneo a nivel de internet. Úsalo junto con tus herramientas habituales, no en lugar de ellas.
- Cobertura solo de índice — solo aplicaciones que BeVigil ha escaneado. Las aplicaciones no indexadas se pueden enviar en bevigil.com/scanApp.
- Sin búsqueda de aplicaciones — necesitas un ID de paquete o dominio de antemano; no hay endpoint para descubrir aplicaciones por nombre.
- Metadatos limitados de aplicaciones — las búsquedas inversas de nombres de host devuelven nombre y versión de la aplicación; de lo contrario, solo obtienes activos relevantes para la seguridad.
- Actualidad de los datos — los resultados reflejan el escaneo más reciente de BeVigil de cada aplicación, que puede no estar actualizado.
- Basado en créditos — consulta Créditos arriba.
Seguridad
- Las claves de API se leen del entorno (o de un
.enven la raíz del paquete) — nunca codificadas, nunca registradas - Los mensajes de error nunca exponen credenciales, y una prueba lo verifica
- El servidor solo se comunica con endpoints conocidos de BeVigil — sin recuperación de URLs arbitrarias
- Los parámetros de ruta están codificados en URL, por lo que un ID de paquete manipulado no puede escapar del endpoint previsto
- Todas las entradas de las herramientas se validan con esquemas Zod
- Los tiempos de espera de solicitud evitan conexiones colgadas
- Los tamaños de página están limitados (máximo 500) para evitar desbordamiento de contexto
- Un hook de pre-commit y un trabajo de CI verifican que ninguna credencial llegue al repositorio
- Cada herramienta está anotada como de solo lectura y no destructiva — nada de lo que este servidor expone puede modificar datos
- Sin telemetría, sin análisis, sin consultas almacenadas — consulta PRIVACY.md
Úsalo de manera responsable. Esta herramienta consulta una base de datos OSINT pública. Lo que hagas con los resultados es tu responsabilidad — solo prueba sistemas que estés autorizado a probar.
Desarrollo
npm install
npm test # typecheck + full suite
npm run lint # typecheck only
npm run build
Las pruebas utilizan el ejecutor integrado de Node con respuestas de API simuladas — sin llamadas en vivo, sin gastar créditos. La cobertura abarca el cliente de API (encabezados de autenticación, cada ruta de error HTTP, tiempos de espera, respuestas malformadas y con envoltura, y una verificación de que los errores nunca filtran la clave) y los siete manejadores de herramientas, incluido el comportamiento de fallo parcial del flujo de trabajo de investigación. Una prueba de contrato de registro también verifica que cada herramienta declare un esquema de entrada y las cuatro pistas de comportamiento MCP.
Para habilitar el hook de pre-commit que bloquea la confirmación de credenciales:
git config core.hooksPath .githooks
Rechaza cualquier commit que prepare un archivo .env o ponga un valor que no sea un marcador de posición en
.env.example, y ejecuta gitleaks en los cambios
preparados cuando está instalado.
Estructura del proyecto
├── src/
│ ├── index.ts # MCP server entry point
│ ├── bevigil-client.ts # API client (auth, errors, timeouts, envelopes)
│ ├── types.ts # Shared types, pagination, output helpers
│ └── tools/ # One file per MCP tool
├── tests/
│ ├── bevigil-client.test.ts
│ ├── tools.test.ts
│ └── fixtures/responses.ts
├── .github/workflows/ci.yml # Typecheck, build, test, secret scan
├── .githooks/pre-commit # Blocks committing credentials
└── server.json # MCP Registry metadata
Contribuciones
Las incidencias y solicitudes de extracción son bienvenidas — informes de errores, nuevos endpoints de BeVigil y configuraciones de cliente para hosts MCP no listados arriba son todos útiles.
Licencia
MIT — consulta LICENSE. Política de privacidad: PRIVACY.md.
No afiliado ni respaldado por CloudSEK. BeVigil es un producto de CloudSEK; este es un cliente de código abierto independiente para su API OSINT pública.