
Product
PHP and Composer Support Is Now in Beta
Socket’s PHP and Composer support is now in Beta for all customers, with PHP reachability analysis generally available.
bevigil-mcp-server
Advanced tools
MCP server for the BeVigil OSINT API — mobile app attack surface discovery (hosts, subdomains, S3 buckets, wordlists) for AI agents
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 together curl calls.
Built for bug bounty hunters, pentesters, red teamers, and appsec engineers doing recon.
Tested with Claude Code, Claude Desktop, Codex, Cursor, and VS Code.
Sign up at bevigil.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 — npx fetches and runs it.
claude mcp add bevigil -e BEVIGIL_API_KEY=your_key_here -- npx -y bevigil-mcp-server
Check it registered with claude mcp list.
Edit claude_desktop_config.json (Settings → Developer → Edit Config):
{
"mcpServers": {
"bevigil": {
"command": "npx",
"args": ["-y", "bevigil-mcp-server"],
"env": { "BEVIGIL_API_KEY": "your_key_here" }
}
}
}
Restart Claude Desktop.
codex mcp add bevigil --env BEVIGIL_API_KEY=your_key_here -- npx -y bevigil-mcp-server
Check it registered with codex 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" }
}
}
}
Add to your VS Code MCP settings:
{
"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.
Recon a company's mobile footprint
Which Android apps talk to
api.acme.com? Then pull the hosts out of each one.
Find staging and internal endpoints
Get subdomains for
acme.comfrom BeVigil and flag anything that looks like dev, staging, or internal.
Hunt for exposed storage
What S3 buckets does
com.acme.mobilereference?
Build a target-specific fuzzing wordlist
Pull the BeVigil wordlist for
com.acme.mobileand save the API paths topaths.txt.
Pivot from a single domain
Find apps referencing
acme.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.
| Tool | Input | Returns |
|---|---|---|
bevigil_get_hosts | package ID | Hostnames found in an app's code |
bevigil_get_subdomains | domain | Subdomains seen across indexed apps |
bevigil_get_urls | domain | Full URLs referenced by apps |
bevigil_get_s3_buckets | package ID | S3 buckets referenced in an app |
bevigil_get_app_packages | hostname | Reverse lookup — apps using that host |
bevigil_get_wordlist | package ID | Paths, endpoints, and params for fuzzing |
bevigil_investigate_app | package ID | Hosts + S3 + params + wordlist in one report |
Every list-returning tool takes optional limit and offset (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 are not cached. Every tool call — including each extra page — is one
API request and one credit. bevigil_investigate_app makes 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 .env file in the package root also 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 .env is 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 of npx:
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.
Design decisions worth knowing about:
.env) — never
hardcoded, never loggedUse 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:
git config core.hooksPath .githooks
It refuses any commit that stages a .env file or puts a non-placeholder value in
.env.example, and runs gitleaks on 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 — see LICENSE. 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.
FAQs
MCP server for the BeVigil OSINT API — mobile app attack surface discovery (hosts, subdomains, S3 buckets, wordlists) for AI agents
We found that bevigil-mcp-server demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.

Product
Socket’s PHP and Composer support is now in Beta for all customers, with PHP reachability analysis generally available.

Product
Socket is bringing experimental protection to Firefox, scanning 97,000+ extensions in Mozilla's official directory for malware and risky updates.

Research
/Security News
Three compromised Rust crates pulled in a malicious dependency that downloaded and executed cross-platform malware during Cargo builds.