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

npm CI License: MIT M8ven Score bevigil-mcp-server MCP server

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.com de 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.mobile y guarda las rutas de API en paths.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

HerramientaEntradaDevuelve
bevigil_get_hostsID de paqueteNombres de host encontrados en el código de una aplicación
bevigil_get_subdomainsdominioSubdominios vistos en las aplicaciones indexadas
bevigil_get_urlsdominioURLs completas referenciadas por las aplicaciones
bevigil_get_s3_bucketsID de paqueteBuckets de S3 referenciados en una aplicación
bevigil_get_app_packagesnombre de hostBúsqueda inversa — aplicaciones que usan ese host
bevigil_get_wordlistID de paqueteRutas, endpoints y parámetros para fuzzing
bevigil_investigate_appID de paqueteHosts + 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 .env en 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.