BeVigil MCP server
About
Discover mobile app attack surfaces via BeVigil OSINT — hosts, subdomains, URLs, and more.
Details
- Author
- santhosh-005
- Categories
- Developer Tools, Security, Other
Jump to
Setup
Install BeVigil MCP server in your MCP client (Claude Desktop, Cursor, Windsurf, and others).
Repository: https://github.com/santhosh-005/bevigil-mcp-server
Follow the installation instructions in the repository README, then restart your MCP client.
Map a company's mobile attack surface from your AI assistant.
BeVigil has scanned millions of Android apps and extracted the infrastructure hiding inside them — backend hosts, staging subdomains, S3 buckets, API paths, and query parameters that never appear in DNS or search engines. This server puts that data behind seven MCP tools, so you can ask for it in plain language instead of stitching togethercurlcalls.
Built forbug bounty hunters,pentesters,red teamers, andappsec engineersdoing recon.
Tested with Claude Code, Claude Desktop, Codex, Cursor, and VS Code.
Sign up atbevigil.com/osint-api. Free accounts get 25 credits, or 200 if you register with a work email. One lookup = one credit.
No clone, no build —npxfetches and runs it.
claude mcp add bevigil -e BEVIGIL_API_KEY=your_key_here -- npx -y bevigil-mcp-server
Check it registered withclaude mcp list.
Editclaude_desktop_config.json(Settings → Developer → Edit Config):
{ "mcpServers": { "bevigil": { "command": "npx", "args": ["-y", "bevigil-mcp-server"], "env": { "BEVIGIL_API_KEY": "your_key_here" } } } }
codex mcp add bevigil --env BEVIGIL_API_KEY=your_key_here -- npx -y bevigil-mcp-server
Check it registered withcodex mcp list.
Add to~/.cursor/mcp.json(global) or.cursor/mcp.json(project):
{ "mcpServers": { "bevigil": { "command": "npx", "args": ["-y", "bevigil-mcp-server"], "env": { "BEVIGIL_API_KEY": "your_key_here" } } } }
{ "mcp": { "servers": { "bevigil": { "command": "npx", "args": ["-y", "bevigil-mcp-server"], "env": { "BEVIGIL_API_KEY": "your_key_here" } } } } }
Investigate com.whatsapp with BeVigil and summarise the infrastructure it exposes.
You should get back something like this — real hostnames pulled out of the app's code:
# 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 ...
That's it — you're doing OSINT from the chat window.
Which Android apps talk toapi.acme.com? Then pull the hosts out of each one.
Get subdomains foracme.comfrom BeVigil and flag anything that looks like dev, staging, or internal.
What S3 buckets doescom.acme.mobilereference?
Build a target-specific fuzzing wordlist
Pull the BeVigil wordlist forcom.acme.mobileand save the API paths topaths.txt.
Find apps referencingacme.com, then investigate the three most interesting ones and tell me which backends they share.
The last one is where an agent earns its keep — that's a dozen API calls and a correlation pass that you'd otherwise do by hand.
Every list-returning tool takes optionallimitandoffset(default 100, max 500). When results are truncated the response says so and gives the exact offset to continue from:
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.
Responses arenot cached. Every tool call — including each extra page — is one API request and one credit.bevigil_investigate_appmakes four calls per run, so it costs four. When credits run out you get a clear message rather than a silent empty result.
BeVigil only answers for apps it has already scanned. If a package isn't in the index, the tools tell you how to fix that:
"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.
This is deliberately distinguished from "app is indexed but has no S3 buckets" — only the first case is something you can act on.
Preferred: set it in your MCP client config (as shown in the quick start), which passes it to the server as an environment variable. For shell use:
export BEVIGIL_API_KEY=your_api_key_here
A.envfile in thepackage rootalso works. Note that it's resolved relative to the installed package rather than your working directory, since MCP clients launch servers from arbitrary places. Real environment variables always win over.env, and.envis gitignored — never commit it.
For local development, or to pin a specific commit:
git clone https://github.com/santhosh-005/bevigil-mcp-server.git cd bevigil-mcp-server npm install npm run build
Then point your client at the built entry point instead ofnpx:
claude mcp add bevigil -e BEVIGIL_API_KEY=your_key_here -- node /absolute/path/to/bevigil-mcp-server/build/index.js
Requirements:Node.js 20.12+, a BeVigil API key, and an MCP-compatible client.
MCP Client → BeVigil MCP Server → osint.bevigil.com · Zod input validation · pagination + truncation · error normalisation
The server is a thin, well-defended layer: it validates inputs, keeps responses inside a sensible context budget, and turns the API's several different ways of saying "nothing here" into one consistent, actionable message.
- Seven task-shaped tools, not raw endpoint wrappers — each maps to something a researcher actually wants.
- Paginated resultswith next-offset hints, so large result sets stay reachable without flooding the context window.
- Concurrent lookupsin the investigation workflow.
- Partial failure handling— a broken lookup doesn't sink the whole report.
- Findings are labelled observed data, never asserted as vulnerabilities. A bucket name is a lead, not a finding.
- Mobile app data only— this reflects what's embedded in Android app code, not DNS enumeration or internet-wide scanning. Use it alongside your usual tooling, not instead of it.
- Index-only coverage— only apps BeVigil has scanned. Unindexed apps can be submitted atbevigil.com/scanApp.
- No app search— you need a package ID or domain up front; there's no endpoint to discover apps by name.
- Limited app metadata— reverse hostname lookups return app name and version; otherwise you get security-relevant assets only.
- Data freshness— results reflect BeVigil's most recent scan of each app, which may not be current.
- Credit-based— seeCreditsabove.
- API keys are read from the environment (or a package-root.env) — never hardcoded, never logged
- Error messages never expose credentials, and a test asserts this
- The server only talks to known BeVigil endpoints — no arbitrary URL fetching
- Path parameters are URL-encoded, so a crafted package ID can't escape the intended endpoint
- All tool inputs are validated with Zod schemas
- Request timeouts prevent hanging connections
- Page sizes are bounded (max 500) to prevent context overflow
- A pre-commit hook and a CI job both check that no credential reaches the repo
- Every tool is annotated read-only and non-destructive — nothing this server exposes can modify data
- No telemetry, no analytics, no stored queries — seePRIVACY.md
Use responsibly.This tool queries a public OSINT database. What you do with the results is your responsibility — only test systems you're authorised to test.
npm install npm test # typecheck + full suite npm run lint # typecheck only npm run build
Tests use Node's built-in runner with mocked API responses — no live calls, no credits spent. Coverage spans the API client (auth headers, every HTTP error path, timeouts, malformed and enveloped responses, and a check that errors never leak the key) and all seven tool handlers, including the investigation workflow's partial-failure behaviour. A registration contract test also asserts that every tool declares an input schema and all four MCP behaviour hints.
To enable the pre-commit hook that blocks committing credentials:
It refuses any commit that stages a.envfile or puts a non-placeholder value in.env.example, and runsgitleakson staged changes when installed.
├── 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
Issues and PRs welcome — bug reports, new BeVigil endpoints, and client configurations for MCP hosts not listed above are all useful.
MIT — seeLICENSE. Privacy policy:PRIVACY.md.
Not affiliated with or endorsed by CloudSEK. BeVigil is a CloudSEK product; this is an independent open-source client for their public OSINT API.
This is a web browser that enables your coding agent, such as Claude Code, to visit websites on your behalf and assist you in identifying bugs or creating UI test cases.
MCP-native OSINT framework for AI agents. Exposes 9 intelligence tools (email enumeration, username search, breach check, WHOIS, IP intel, subdomain enum, dorks, paste search, phone intel) via Model Context Protocol. Also works as a standalone Python CLI.
Real-time OSINT intelligence platform for global security monitoring.
MCP server for ScanMalware.com URL scanning, malware detection, and analysis
Provides threat intelligence queries for IPs, domains, files, URLs, and vulnerabilities using the ThreatBook API.
Interact with Binalyze AIR's digital forensics and incident response capabilities using natural language.
Manage threat models, components, and security data on the Devici platform.
Performs data enrichment on observables using third-party services via the security-cli Python package.
Exploit Intelligence Platform MCP Server
An MCP (Model Context Protocol) server that gives AI assistants access to the Exploit Intelligence Platform — hundreds of thousands of vulnerabilities and exploits from NVD, CISA KEV, VulnCheck KEV, InTheWild.io, ENISA EUVD, OSV.dev, EPSS, ExploitDB, Metasploit, GitHub, and more. I
An AI-powered threat intelligence analysis tool for multi-source IOC analysis, APT attribution, and interactive reporting.
Check if an account or password has been compromised in a data breach using the Have I Been Pwned API.
Sign in to leave a review
Use Google, GitHub, or an email account so ratings stay tied to real people.
No reviews posted yet.





