关于 BeVigil OSINT
BeVigil OSINT 是面向安全研究人员的 MCP 服务,用于查询 BeVigil 已索引 Android 应用中提取的基础设施数据。工具可查找主机、子域名、URL、存储桶和模糊测试字典。
主要功能
- 01查询主机和子域名
- 02获取应用引用的 URL 与 S3 存储桶
- 03反查使用某主机的应用
- 04生成端点和参数字典
- 05汇总查询并生成应用报告
- 06对大量结果分页
适用场景
- 01梳理移动应用引用的基础设施
- 02查找域名的测试环境子域名
- 03识别使用某主机的应用
- 04整理用于模糊测试的 API 路径
MCP 相关
通过 BeVigil OSINT API 向 MCP 客户端提供七种只读 OSINT 工具。结果来自已索引的 Android 应用,列表查询支持分页。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
7收录的工具列表 · 更新于 4 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| limit | integer | 否 | 要返回的最大结果数(默认值为 100,最大值为 500)。 |
| offset | integer | 否 | 返回一页结果前要跳过的结果数(默认值为 0)。使用此参数获取第一页之后的结果。 |
| package_id | string | 是 | Android 包 ID(例如 "com.whatsapp"、"com.instagram.android")。这是 Android 应用的唯一标识符。 |
详细介绍
BeVigil MCP Server
通过 AI 助手绘制公司的移动攻击面。
BeVigil 已扫描数百万款 Android 应用,并提取出其中隐藏的基础设施信息——后端主机、预发布子域名、S3 存储桶、API 路径和查询参数,这些信息从未出现在 DNS 或搜索引擎中。此服务通过七个 MCP 工具提供这些数据,让你可以用日常语言提问,而不必拼接 curl 调用。
专为进行侦察的漏洞赏金猎人、渗透测试人员、红队成员和应用安全工程师打造。
已在 Claude Code、Claude Desktop、Codex、Cursor 和 VS Code 中测试。
快速开始(2 分钟)
1. 获取免费 API 密钥
在 bevigil.com/osint-api 注册。免费账户可获得 25 个额度,使用工作邮箱注册则可获得 200 个额度。每次查询消耗 1 个额度。
2. 添加服务
无需克隆,无需构建——npx 会获取并运行它。
Claude Code
claude mcp add bevigil -e BEVIGIL_API_KEY=your_key_here -- npx -y bevigil-mcp-server
使用 claude mcp list 检查是否已注册。
Claude Desktop
编辑 claude_desktop_config.json(Settings → Developer → Edit Config):
{
"mcpServers": {
"bevigil": {
"command": "npx",
"args": ["-y", "bevigil-mcp-server"],
"env": { "BEVIGIL_API_KEY": "your_key_here" }
}
}
}
重启 Claude Desktop。
Codex
codex mcp add bevigil --env BEVIGIL_API_KEY=your_key_here -- npx -y bevigil-mcp-server
使用 codex mcp list 检查是否已注册。
Cursor
添加到 ~/.cursor/mcp.json(全局)或 .cursor/mcp.json(项目):
{
"mcpServers": {
"bevigil": {
"command": "npx",
"args": ["-y", "bevigil-mcp-server"],
"env": { "BEVIGIL_API_KEY": "your_key_here" }
}
}
}
VS Code (Copilot)
添加到 VS Code 的 MCP 设置中:
{
"mcp": {
"servers": {
"bevigil": {
"command": "npx",
"args": ["-y", "bevigil-mcp-server"],
"env": { "BEVIGIL_API_KEY": "your_key_here" }
}
}
}
}
3. 提出你的第一个问题
使用 BeVigil 调查 com.whatsapp,并总结它暴露的基础设施。
你应该会得到类似这样的结果——从应用代码中提取出的真实主机名:
# 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
...
就是这样——你现在可以在聊天窗口中进行 OSINT 了。
你可以提出的问题
侦察公司的移动端足迹
哪些 Android 应用会连接到
api.acme.com?然后提取每个应用中的主机。
查找预发布和内部端点
从 BeVigil 获取
acme.com的子域名,并标记任何看起来像 dev、staging 或 internal 的条目。
搜寻暴露的存储
com.acme.mobile引用了哪些 S3 存储桶?
构建针对目标的模糊测试词表
获取
com.acme.mobile的 BeVigil 词表,并将 API 路径保存到paths.txt。
从单个域名进行关联调查
查找引用
acme.com的应用,然后调查其中最有意思的三个,并告诉我它们共用了哪些后端。
最后一个场景最能体现 Agent 的价值——它需要调用十几个 API 并进行关联分析,而这些工作原本都得手动完成。
工具
| 工具 | 输入 | 返回内容 |
|---|---|---|
bevigil_get_hosts | 包 ID | 在应用代码中发现的主机名 |
bevigil_get_subdomains | 域名 | 在已索引应用中发现的子域名 |
bevigil_get_urls | 域名 | 应用引用的完整 URL |
bevigil_get_s3_buckets | 包 ID | 应用中引用的 S3 存储桶 |
bevigil_get_app_packages | 主机名 | 反向查询——使用该主机的应用 |
bevigil_get_wordlist | 包 ID | 用于模糊测试的路径、端点和参数 |
bevigil_investigate_app | 包 ID | 一份报告汇总主机、S3、参数和词表 |
分页
每个返回列表的工具都接受可选的 limit 和 offset(默认值为 100,最大值为
500)。结果被截断时,响应会说明这一点,并给出继续获取结果的确切偏移量:
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.
额度
响应不会缓存。每次工具调用(包括每个额外分页)都算作一次 API 请求和一个额度。bevigil_investigate_app 每次运行会调用四次,因此会消耗四个额度。额度用完时,系统会给出明确提示,而不是静默返回空结果。
尚未编入索引的应用
BeVigil 只会针对已扫描的应用提供结果。如果某个软件包尚未编入索引,工具会告诉你如何处理:
"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.
系统会特意将这种情况与“应用已编入索引,但没有 S3 存储桶”区分开来——只有前一种情况可以采取后续操作。
配置参考
API 密钥
推荐:在 MCP 客户端配置中设置(如快速入门所示),该配置会将密钥作为环境变量传递给服务。若要在 Shell 中使用:
export BEVIGIL_API_KEY=your_api_key_here
软件包根目录中的 .env 文件也可使用。请注意,该文件的解析位置相对于已安装的软件包,而非你的工作目录,因为 MCP 客户端可能会从任意位置启动服务。实际环境变量的优先级始终高于 .env,且 .env 已加入 gitignore——切勿提交该文件。
从源代码运行
用于本地开发或固定到特定提交:
git clone https://github.com/santhosh-005/bevigil-mcp-server.git
cd bevigil-mcp-server
npm install
npm run build
然后将客户端指向构建后的入口点,而不是 npx:
claude mcp add bevigil -e BEVIGIL_API_KEY=your_key_here -- node /absolute/path/to/bevigil-mcp-server/build/index.js
要求: Node.js 20.12+、BeVigil API 密钥,以及兼容 MCP 的客户端。
工作原理
MCP Client → BeVigil MCP Server → osint.bevigil.com
· Zod input validation
· pagination + truncation
· error normalisation
该服务是一层精简且防护周全的中间层:它会验证输入,将响应控制在合理的上下文预算内,并将 API 表示“没有结果”的各种方式统一转换为一致且可采取行动的提示。
值得了解的设计决策:
- 七个面向任务的工具,而非原始端点封装——每个工具都对应研究人员实际需要完成的任务。
- 分页结果带有下一个偏移量提示,便于获取大型结果集,同时避免撑满上下文窗口。
- 调查工作流中的并发查询。
- 部分失败处理——某项查询出错不会影响整份报告。
- 发现结果均标记为观测数据,绝不会直接断言为漏洞。存储桶名称只是线索,而非发现结论。
局限性
- 仅包含移动应用数据——数据反映的是 Android 应用代码中包含的内容,而非 DNS 枚举或全网扫描。请将其与常用工具配合使用,而非替代常用工具。
- 仅覆盖索引中的应用——仅包含 BeVigil 已扫描的应用。可通过 bevigil.com/scanApp 提交尚未编入索引的应用。
- 不支持应用搜索——你需要预先提供软件包 ID 或域名;没有按名称查找应用的端点。
- 应用元数据有限——反向主机名查询会返回应用名称和版本;除此之外,仅提供与安全相关的资产。
- 数据时效性——结果反映 BeVigil 对各应用的最近一次扫描,可能不是最新数据。
- 基于额度——请参阅上文的额度。
安全
- API 密钥从环境变量(或项目根目录下的
.env)读取——绝不硬编码,也绝不记录到日志中 - 错误消息绝不会泄露凭据,且有测试对此进行断言
- 服务只与已知的 BeVigil 端点通信——不会获取任意 URL
- 路径参数会进行 URL 编码,因此精心构造的包 ID 无法绕过预期端点
- 所有工具输入均使用 Zod 模式进行验证
- 请求超时可防止连接挂起
- 页面大小设有上限(最多 500),以防上下文溢出
- 预提交钩子和 CI 任务都会检查是否有凭据进入代码仓库
- 每个工具都标注为只读且非破坏性——此服务公开的任何内容都无法修改数据
- 不进行遥测、不做分析、不存储查询——请参阅 PRIVACY.md
请负责任地使用。 此工具会查询公开的 OSINT 数据库。如何使用查询结果由你负责——只能测试你获准测试的系统。
开发
npm install
npm test # typecheck + full suite
npm run lint # typecheck only
npm run build
测试使用 Node 内置的运行器和模拟的 API 响应——不会发起实时调用,也不会消耗额度。覆盖范围包括 API 客户端(身份验证标头、所有 HTTP 错误路径、超时、格式错误及带信封的响应,以及错误不会泄露密钥的检查)和全部七个工具处理程序,包括调查工作流的部分失败行为。注册契约测试还会断言每个工具都声明了输入模式和全部四项 MCP 行为提示。
若要启用用于阻止提交凭据的预提交钩子:
git config core.hooksPath .githooks
如果提交中包含 .env 文件,或 .env.example 中有非占位符值,钩子就会拒绝提交;如果已安装 gitleaks,还会对暂存的更改运行该工具。
项目结构
├── 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
贡献
欢迎提交问题和 PR——错误报告、新的 BeVigil 端点,以及适用于上述未列出的 MCP 宿主的客户端配置都很有帮助。
许可证
MIT——请参阅 LICENSE。隐私政策:PRIVACY.md。
与 CloudSEK 无关联,也未获得其认可。BeVigil 是 CloudSEK 的产品;这是一个独立的开源客户端,用于访问其公开的 OSINT API。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。