BeVigil MCP server

Descubra superfícies de ataque de aplicativos móveis via BeVigil OSINT — hosts, subdomínios, URLs e mais.

Documentação

Servidor MCP BeVigil

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

Mapeie a superfície de ataque móvel de uma empresa a partir do seu assistente de IA.

O BeVigil já escaneou milhões de aplicativos Android e extraiu a infraestrutura escondida neles — hosts de backend, subdomínios de staging, buckets S3, caminhos de API e parâmetros de consulta que nunca aparecem em DNS ou mecanismos de busca. Este servidor coloca esses dados atrás de sete ferramentas MCP, para que você possa solicitá-los em linguagem natural em vez de combinar chamadas curl manualmente.

Feito para caçadores de recompensas de bugs, pentesters, red teamers e engenheiros de segurança de aplicativos que fazem reconhecimento.

Testado com Claude Code, Claude Desktop, Codex, Cursor e VS Code.


Início rápido (2 minutos)

1. Obtenha uma chave de API gratuita

Cadastre-se em bevigil.com/osint-api. Contas gratuitas recebem 25 créditos, ou 200 se você se registrar com um e-mail corporativo. Uma consulta = um crédito.

2. Adicione o servidor

Sem clone, sem build — o npx baixa e executa.

Claude Code
claude mcp add bevigil -e BEVIGIL_API_KEY=your_key_here -- npx -y bevigil-mcp-server

Verifique se foi registrado com claude mcp list.

Claude Desktop

Edite claude_desktop_config.json (Configurações → Desenvolvedor → Editar Configuração):

{
  "mcpServers": {
    "bevigil": {
      "command": "npx",
      "args": ["-y", "bevigil-mcp-server"],
      "env": { "BEVIGIL_API_KEY": "your_key_here" }
    }
  }
}

Reinicie o Claude Desktop.

Codex
codex mcp add bevigil --env BEVIGIL_API_KEY=your_key_here -- npx -y bevigil-mcp-server

Verifique se foi registrado com codex mcp list.

Cursor

Adicione em ~/.cursor/mcp.json (global) ou .cursor/mcp.json (projeto):

{
  "mcpServers": {
    "bevigil": {
      "command": "npx",
      "args": ["-y", "bevigil-mcp-server"],
      "env": { "BEVIGIL_API_KEY": "your_key_here" }
    }
  }
}
VS Code (Copilot)

Adicione às configurações MCP do seu VS Code:

{
  "mcp": {
    "servers": {
      "bevigil": {
        "command": "npx",
        "args": ["-y", "bevigil-mcp-server"],
        "env": { "BEVIGIL_API_KEY": "your_key_here" }
      }
    }
  }
}

3. Faça sua primeira pergunta

Investigue o com.whatsapp com o BeVigil e resuma a infraestrutura que ele expõe.

Você deve receber algo assim — hostnames reais extraídos do código do aplicativo:

# 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
...

Pronto — você está fazendo OSINT direto da janela de chat.


O que você pode perguntar

Faça reconhecimento da pegada móvel de uma empresa

Quais aplicativos Android falam com api.acme.com? Depois extraia os hosts de cada um.

Encontre endpoints de staging e internos

Obtenha subdomínios de acme.com no BeVigil e sinalize qualquer coisa que pareça dev, staging ou interno.

Caçe armazenamento exposto

Quais buckets S3 o com.acme.mobile referencia?

Monte uma wordlist de fuzzing específica para o alvo

Extraia a wordlist do BeVigil para com.acme.mobile e salve os caminhos de API em paths.txt.

Faça pivô a partir de um único domínio

Encontre aplicativos que referenciam acme.com, depois investigue os três mais interessantes e me diga quais backends eles compartilham.

O último é onde um agente mostra seu valor — são uma dúzia de chamadas de API e uma passada de correlação que você faria manualmente.


Ferramentas

FerramentaEntradaRetorno
bevigil_get_hostsID do pacoteHostnames encontrados no código de um aplicativo
bevigil_get_subdomainsdomínioSubdomínios vistos em aplicativos indexados
bevigil_get_urlsdomínioURLs completas referenciadas por aplicativos
bevigil_get_s3_bucketsID do pacoteBuckets S3 referenciados em um aplicativo
bevigil_get_app_packageshostnameConsulta reversa — aplicativos que usam esse host
bevigil_get_wordlistID do pacoteCaminhos, endpoints e parâmetros para fuzzing
bevigil_investigate_appID do pacoteHosts + S3 + parâmetros + wordlist em um relatório

Paginação

Toda ferramenta que retorna listas aceita limit e offset opcionais (padrão 100, máximo 500). Quando os resultados são truncados, a resposta avisa e fornece o offset exato 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

As respostas não são armazenadas em cache. Cada chamada de ferramenta — incluindo cada página extra — é uma requisição de API e um crédito. O bevigil_investigate_app faz quatro chamadas por execução, então custa quatro. Quando os créditos acabam, você recebe uma mensagem clara em vez de um resultado vazio silencioso.

Aplicativos que ainda não estão indexados

O BeVigil só responde por aplicativos que já escaneou. Se um pacote não está no índice, as ferramentas informam como resolver isso:

"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.

Isso é deliberadamente distinto de "aplicativo indexado, mas sem buckets S3" — apenas o primeiro caso é algo sobre o qual você pode agir.


Referência de configuração

Chave de API

Preferido: defina-a na configuração do seu cliente MCP (como mostrado no início rápido), que a passa ao servidor como variável de ambiente. Para uso em shell:

export BEVIGIL_API_KEY=your_api_key_here

Um arquivo .env na raiz do pacote também funciona. Note que ele é resolvido em relação ao pacote instalado, e não ao seu diretório de trabalho, já que clientes MCP iniciam servidores de lugares arbitrários. Variáveis de ambiente reais sempre vencem o .env, e o .env é ignorado pelo git — nunca o envie.

Executando a partir do código-fonte

Para desenvolvimento local, ou para fixar um commit específico:

git clone https://github.com/santhosh-005/bevigil-mcp-server.git
cd bevigil-mcp-server
npm install
npm run build

Depois aponte seu cliente para o ponto de entrada compilado em vez 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+, uma chave de API BeVigil e um cliente compatível com MCP.


Como funciona

MCP Client  →  BeVigil MCP Server  →  osint.bevigil.com
              · Zod input validation
              · pagination + truncation
              · error normalisation

O servidor é uma camada fina e bem protegida: valida entradas, mantém as respostas dentro de um orçamento de contexto sensato e transforma as várias formas diferentes da API de dizer "nada aqui" em uma mensagem consistente e acionável.

Decisões de design que vale a pena conhecer:

  • Sete ferramentas moldadas por tarefa, não wrappers brutos de endpoints — cada uma mapeia algo que um pesquisador realmente quer.
  • Resultados paginados com dicas de próximo offset, para que grandes conjuntos de resultados permaneçam acessíveis sem inundar a janela de contexto.
  • Consultas concorrentes no fluxo de investigação.
  • Tratamento de falhas parciais — uma consulta quebrada não derruba o relatório inteiro.
  • Descobertas são rotuladas como dados observados, nunca afirmadas como vulnerabilidades. Um nome de bucket é uma pista, não uma descoberta.

Limitações

  • Apenas dados de aplicativos móveis — isso reflete o que está embutido no código de aplicativos Android, não enumeração de DNS ou varredura em toda a internet. Use junto com suas ferramentas habituais, não no lugar delas.
  • Cobertura apenas do índice — somente aplicativos que o BeVigil escaneou. Aplicativos não indexados podem ser enviados em bevigil.com/scanApp.
  • Sem busca de aplicativos — você precisa de um ID de pacote ou domínio de antemão; não há endpoint para descobrir aplicativos por nome.
  • Metadados limitados de aplicativos — consultas reversas de hostname retornam nome e versão do aplicativo; caso contrário, você recebe apenas ativos relevantes para segurança.
  • Atualização dos dados — os resultados refletem a varredura mais recente do BeVigil de cada aplicativo, que pode não ser atual.
  • Baseado em créditos — veja Créditos acima.

Segurança

  • Chaves de API são lidas do ambiente (ou de um .env na raiz do pacote) — nunca codificadas, nunca registradas em logs
  • Mensagens de erro nunca expõem credenciais, e um teste garante isso
  • O servidor só fala com endpoints BeVigil conhecidos — sem busca de URLs arbitrárias
  • Parâmetros de caminho são codificados em URL, então um ID de pacote malicioso não pode escapar do endpoint pretendido
  • Todas as entradas de ferramentas são validadas com esquemas Zod
  • Timeouts de requisição evitam conexões penduradas
  • Tamanhos de página são limitados (máximo 500) para evitar estouro de contexto
  • Um hook de pré-commit e um job de CI verificam que nenhuma credencial chega ao repositório
  • Toda ferramenta é anotada como somente leitura e não destrutiva — nada que este servidor expõe pode modificar dados
  • Sem telemetria, sem analytics, sem consultas armazenadas — veja PRIVACY.md

Use com responsabilidade. Esta ferramenta consulta um banco de dados público de OSINT. O que você faz com os resultados é sua responsabilidade — teste apenas sistemas que você está autorizado a testar.


Desenvolvimento

npm install
npm test        # typecheck + full suite
npm run lint    # typecheck only
npm run build

Os testes usam o runner embutido do Node com respostas de API simuladas — sem chamadas ao vivo, sem gastar créditos. A cobertura abrange o cliente de API (cabeçalhos de autenticação, todos os caminhos de erro HTTP, timeouts, respostas malformadas e envelopadas, e uma verificação de que erros nunca vazam a chave) e todos os sete manipuladores de ferramentas, incluindo o comportamento de falha parcial do fluxo de investigação. Um teste de contrato de registro também garante que toda ferramenta declara um esquema de entrada e as quatro dicas de comportamento MCP.

Para habilitar o hook de pré-commit que bloqueia o commit de credenciais:

git config core.hooksPath .githooks

Ele recusa qualquer commit que prepare um arquivo .env ou coloque um valor não placeholder em .env.example, e executa gitleaks nas mudanças preparadas quando instalado.

Estrutura do projeto
├── 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

Contribuindo

Issues e PRs são bem-vindos — relatórios de bugs, novos endpoints BeVigil e configurações de cliente para hosts MCP não listados acima são todos úteis.

Licença

MIT — veja LICENSE. Política de privacidade: PRIVACY.md.

Não afiliado ou endossado pela CloudSEK. BeVigil é um produto da CloudSEK; este é um cliente open-source independente para sua API pública de OSINT.