BeVigil MCP server

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

Documentação

BeVigil MCP Server

npm CI License: MIT

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

O BeVigil 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 montar chamadas curl.

Feito para caçadores de bug bounty, pentesters, red teamers e engenheiros de appsec 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 — 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 Config):

{
  "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 a ~/.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 suas configurações de MCP do 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 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
...

É isso — você está fazendo OSINT a partir da janela de chat.


O que você pode perguntar

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 para acme.com do BeVigil e sinalize qualquer coisa que pareça dev, staging ou interno.

Procure por armazenamento exposto

Quais buckets S3 o com.acme.mobile referencia?

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

Pivote 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

FerramentaEntradaRetorna
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 informa isso 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. 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 para aplicativos que já escaneou. Se um pacote não estiver no índice, as ferramentas informam como corrigir 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 distinguido de "aplicativo está indexado, mas não tem 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 para o servidor como uma 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. Observe que ele é resolvido em relação ao pacote instalado, e não ao seu diretório de trabalho, já que os clientes MCP iniciam servidores de lugares arbitrários. Variáveis de ambiente reais sempre vencem .env, e .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

Em seguida, 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 do 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 defendida: valida entradas, mantém as respostas dentro de um orçamento de contexto sensato e transforma as várias maneiras 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 endpoint — cada uma mapeia algo que um pesquisador realmente deseja.
  • 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 trabalho de investigação.
  • Tratamento de falhas parciais — uma consulta quebrada não derruba o relatório inteiro.
  • Os achados são rotulados como dados observados, nunca afirmados como vulnerabilidades. Um nome de bucket é uma pista, não um achado.

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-o junto com suas ferramentas habituais, não no lugar delas.
  • Cobertura apenas do índice — apenas 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 antecipadamente; 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ê obtém apenas ativos relevantes para segurança.
  • Atualidade 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

  • As chaves de API são lidas do ambiente (ou de um .env na raiz do pacote) — nunca codificadas, nunca registradas
  • Mensagens de erro nunca expõem credenciais, e um teste garante isso
  • O servidor só fala com endpoints conhecidos do BeVigil — sem busca arbitrária de URLs
  • 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 previnem conexões penduradas
  • Tamanhos de página são limitados (máx. 500) para evitar estouro de contexto
  • Um hook de pre-commit e um job de CI verificam que nenhuma credencial chega ao repositório

Use com responsabilidade. Esta ferramenta consulta um banco de dados OSINT público. 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 trabalho de investigação.

Para habilitar o hook de pre-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 alterações 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 do BeVigil e configurações de cliente para hosts MCP não listados acima são todos úteis.

Licença

MIT — veja LICENSE.

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