内容
<div align="center">
# 克劳迪侦察员
### Claude 的 OSINT 套件 — 代理技能 + MCP 服务器
*"克劳迪的侦察员"* — 向罗马侦察单位(*exploratores*)和克劳迪致敬。OSINT 侦察,已移植到 AI 代理。
[](#-项目状态)
[](#)
[](LICENSE)
[](#-需求)
[](https://modelcontextprotocol.io)
[](#-功能)
</div>
---
> [!WARNING]
> **这是 ALPHA 软件。在测试之前,请勿在生产环境中使用。**
>
> 克劳迪侦察员是一个非常早期(alpha)的、社区维护的克劳迪侦察工具移植版。它已经经过功能测试,但尚未经过强化或验证,无法用于生产或操作使用。搜索网址、验证器和工具目录可能包含从上游继承或移植过程中引入的错误。**请独立验证每个输出,在安全环境中进行彻底测试,并在使用前将结果与可信源进行验证。** 使用风险自负 — 请参阅 [免责声明](#-免责声明)。
---
## 目录
- [关于](#-关于)
- [功能](#-功能)
- [工作原理](#-工作原理)
- [仓库布局](#-仓库布局)
- [需求](#-需求)
- [安装](#-安装)
- [代理技能(Claude 代码 / Cowork)](#代理技能(claude-代码--cowork))
- [MCP 服务器(Claude 桌面版)](#mcp-服务器(claude-桌面版))
- [使用](#-使用)
- [可用的 MCP 工具](#-可用的-mcp-工具)
- [重建目录](#-重建目录)
- [项目状态](#-项目状态)
- [路线图](#-路线图)
- [贡献](#-贡献)
- [安全与负责任的使用](#-安全与负责任的使用)
- [免责声明](#-免责声明)
- [许可证](#-许可证)
- [致谢](#-致谢)
## 🔎 关于
**克劳迪侦察员** 将 [**侦察员 OSINT 工具包**](https://github.com/SOsintOps/Exploratores) — 一个精选的 OSINT 搜索链接静态 Web 应用程序 — 转换为两个 AI 原生分发版本:
1. **代理技能** (`skill/`) — Claude(Opus/Sonnet)的即插即用技能,适用于 Claude 代码、Cowork 或代理 SDK。它教会模型专业的 OSINT 技艺(分析标准、5W1H 方法、OPSEC),并提供一个 CLI,将任何指标转换为精选的搜索链接集。
2. **MCP 服务器** (`mcp/`) — 一个 [模型上下文协议](https://modelcontextprotocol.io) 服务器(Python / FastMCP),为 Claude 桌面版或任何 MCP 兼容客户端公开相同的引擎作为可调用工具。
两者共享一个语言中立的核心:一个 **898 OSINT 工具目录**,涵盖 **24 个类别**,一个指标分类器,输入验证器,一个离线 IBAN 验证器和一个可逆的 PII 匿名器 — 所有这些都从原始工具包移植而来。
> [!IMPORTANT]
> 这些工具 **构建** OSINT 搜索网址;它们本身从不打开网页。打开和阅读由操作员(或显式调用的浏览器代理)保留,因此 OPSEC — VPN、干净的浏览器配置文件 — 仍然在人类控制之下。
## ✨ 功能
- **898 个精选 OSINT 工具**,涵盖 24 个类别(人员、用户名、电子邮件、域名、IP、电话、公司、加密货币、IBAN、地图、媒体、社交平台等)。
- **指标分类器** — 自动检测值是域名、电子邮件、IP、用户名、个人姓名、电话、坐标、IBAN、加密货币地址、VIN 等。
- **精选网址构建器** — 填充并 URL 编码只有适合指标的工具,这样您就可以获得相关、范围内的链接集,而不是 898 个原始链接。
- **跨平台关联** — 一个用户名可以扩展到支持它的每个社交/社区平台的正确搜索。
- **离线 IBAN 验证器** — ISO 13616 mod-97 检查,针对 71 个国家的表格。
- **可逆的 PII 匿名器** — 在将案例文本发送到外部模型之前,剥离电子邮件、IP、电话、IBAN、卡、网址和加密货币地址;在之后恢复。
- **技能无需强制依赖** — 标准库 Python 3.9+。
- **单一事实来源** — 一个共享的引擎 + 目录,通过构建脚本同步到两个交付版本;可以从上游工具包重新生成。
## 🧭 工作原理
```
指标 ──▶ 分类 ──▶ 构建字段 ──▶ 选择匹配工具 ──▶ URL 编码 ──▶ 精选链接集
"Mario Rossi" PERSON_NAME {firstname,lastname,…} 名称 + 记录 %20… 分组 Markdown / JSON
```
引擎是忠实的 Python 端口,移植自工具包的原始 JavaScript 逻辑(`indicator-classifier.js`、`validators.js`、`main.js`),因此生成的网址与 Web 工具包生成的网址相匹配。
## 📦 仓库布局
```text
Claudii-Exploratores/
├── skill/claudii-exploratores/ # 代理技能(SKILL.md + 脚本 + 引用)
│ ├── SKILL.md
│ ├── scripts/ # exploratores.py CLI + 引擎 + catalog.json
│ └── references/ # methodology.md, catalog_overview.md
├── mcp/ # MCP 服务器(Python,FastMCP)
│ ├── exploratores_osint_mcp/ # 包:server.py + 引擎 + catalog.json
│ ├── pyproject.toml
│ ├── config.example.json
│ └── README.md
├── shared/ # 引擎和目录的单一事实来源
│ ├── osint_core.py # 分类器、字段构建器、URL 渲染器
│ ├── iban_tools.py, redactor.py, _iban_countries.py
│ └── catalog.json # 898 工具(生成)
├── scripts/ # 构建、提取和验证工具
│ ├── extract_catalog.js # (重新)从 Web 工具包生成 catalog.json
│ ├── build_release.sh # 将引擎同步到 skill+mcp,封装 .skill
│ ├── classify_queries.py # 台面分类(auth/VPN)-> CSV
│ ├── build_verification_worklist.py # 按主机分组查询以进行实时检查
│ ├── record_verification.py # 将实时探测结果合并到工作列表中
│ ├── generate_live_report.py # 渲染实时验证报告
│ └── generate_access_guide.py # 渲染用户访问指南
├── docs/ # 安装、分布、访问和 auth/VPN 指南
├── dist/ # 构建输出(.skill 存档)— git-ignored
├── LICENSE # AGPL-3.0(从 Exploratores 继承)
└── NOTICE
```
`shared/` 是权威的。`scripts/build_release.sh` 将引擎 + 目录复制到 `skill/` 和 `mcp/`,因此每个都可以独立安装。
## ⚙️ 需求
- **Python 3.9+** (仅技能使用标准库;MCP 添加 `mcp` 包)。
- **Node.js** — 仅在从上游工具包 **重新生成** 目录时需要。
- 现代浏览器(和推荐的 VPN + 干净的配置文件)用于打开生成的链接。哪些来源需要 **登录**、**VPN** (和哪个国家)或 **Tor** 已在
[`docs/access-requirements-guide.md`](docs/access-requirements-guide.md) (实时验证)和桌面分析中记录
[`docs/query-auth-vpn-classification.md`](docs/query-auth-vpn-classification.md)。
## 🚀 安装
### 代理技能(Claude 代码 / Cowork)
将技能复制到您的技能目录中,或从客户端的 UI 安装打包存档:
```bash
mkdir -p ~/.claude/skills
cp -R skill/claudii-exploratores ~/.claude/skills/
# 或从 Claude 客户端安装 dist/claudii-exploratores.skill
```
然后直接提问,例如 *"对域名 example.com 运行 OSINT"*。
### MCP 服务器(Claude 桌面版)
```bash
cd mcp
pip install -e . # 或:uv pip install -e .
```
将服务器添加到您的 MCP 客户端配置中(参见 [`mcp/README.md`](mcp/README.md) 和
[`docs/INSTALL.md`](docs/INSTALL.md)):
```json
{
"mcpServers": {
"claudii-exploratores": {
"command": "python",
"args": ["-m", "exploratores_osint_mcp.server"]
}
}
}
```
## 💻 使用
直接驱动技能的 CLI:
```bash
cd skill/claudii-exploratores
# 检测指标是什么
python scripts/exploratores.py classify "john.doe@example.com"
# 构建精选的 OSINT 链接集(默认分组 Markdown)
python scripts/exploratores.py urls "example.com" --format markdown
# 强制输入类型,添加结构化字段,或缩小到特定平台
python scripts/exploratores.py urls "Mario Rossi" --type PERSON_NAME \
--field firstname=Mario --field lastname=Rossi
python scripts/exploratores.py urls "johndoe" --categories x,instagram,vk
# 实用程序
python scripts/exploratores.py iban "GB82 WEST 1234 5698 7654 32"
python scripts/exploratores.py redact "Contact john@x.com from 8.8.8.8"
python scripts/exploratores.py search "wayback"
```
## 🛠 可用的 MCP 工具
| 工具 | 目的 |
| --- | --- |
| `classify_indicator(value)` | 用置信度分数检测指标类型。 |
| `build_osint_urls(value, indicator_type?, categories?, fields?, include_onion?, limit?)` | 指标的精选 OSINT 搜索网址集。 |
| `search_catalog(query, limit?)` | 搜索 898 工具目录。 |
| `list_categories()` | 类别和工具数量。 |
| `verify_iban(value)` | 离线 IBAN 验证(ISO 13616 mod-97)。 |
| `redact_pii(text, only?, custom_patterns?)` | 匿名 PII,返回可逆映射。 |
| `restore_pii(text, redaction_map)` | 撤销匿名。 |
## 🔄 重建目录
如果上游工具包更新,请从中重新生成所有内容:
```bash
scripts/build_release.sh /path/to/Exploratores-3.4.1
```
这会重新提取 `catalog.json`(从工具包的 HTML 页面收集人类可读的标签),将引擎重新同步到两个交付版本,并重新打包 `.skill` 存档。
## 🧪 项目状态
**Alpha(v1.0.0-alpha)。** 套件功能齐全,并已通过内部 QA 测试(目录完整性、URL 编码、IBAN 和匿名往返、MCP 工具注册)。它 **尚未** 为生产环境强化。已知限制:
- 少数 URL 模板直接从上游继承,可能不完美(例如,具有字面空格的 dork 运算符;一个退化短 URL 模板)。
- 电话号码字段派生是尽力而为的,不会复制原始 Web 工具包的完整 `libphonenumber` 逻辑。
- IBAN 的离线 **银行名称** 解析未移植(仅结构验证);该数据集存在于原始 Web 工具包中。
请 **在受控环境中测试** 并在任何操作使用前报告问题。
## 🗺 路线图
- [ ] 覆盖分类器、渲染器、IBAN 和匿名器的自动化测试套件(pytest)。
- [ ] 每次推送的 CI(GitHub Actions)用于 lint + 测试。
- [ ] MCP 服务器的可选 PyPI 发布。
- [ ] 与上游工具包相比,更完整的电话号码解析一致性。
- [ ] IBAN 的可选银行名称解析。
## 🤝 贡献
欢迎贡献和错误报告。
1. 打开一个问题,描述错误或提案。
2. 分叉仓库并创建一个功能分支。
3. 将引擎更改保留在 `shared/`(单一事实来源)并运行
`scripts/build_release.sh` 将它们同步到 `skill/` 和 `mcp/`。
4. 打开一个拉取请求,包含清晰的描述和相关情况下的前后示例。
请遵循上游 `AGENTS.md` 中的约定并保留署名。
## 🛡 安全与负责任使用
- **仅限授权、合法的调查** — 研究、安全、新闻、尽职调查。不要将其用于跟踪、骚扰或人肉搜索。
- **工具构建链接;它们不会获取数据。** 打开页面会暴露您的 IP 和指纹给目标控制的基础设施 — 使用 VPN 和干净的浏览器配置文件,并优先使用缓存/存档视图进行首次联系。
- **将所有输出视为线索进行验证**,而非结论。在独立来源中进行验证,并记录出处。
- 部分目录条目是 **Tor 隐藏服务** (`.onion`)并需要 Tor 浏览器;使用 `--no-onion` / `include_onion=false` 排除它们。
若要报告安全问题,请在 GitHub 上开启私人安全咨询,而不是公开问题。
## ⚠️ 免责声明
本软件 **按原样** 提供,不保证任何种类、明示或暗示。 它是 **测试版**,**不适用于生产环境**。 作者和贡献者 **不承担** 因其使用而产生的任何损害、损失、法律后果或滥用而产生的任何责任。 您完全负责确保您的使用符合所有适用的法律、法规和第三方服务条款,并且在采取任何行动之前独立验证每个结果。
## 📄 许可证
在 **GNU Affero General Public License v3.0(AGPL-3.0)** 下许可 — 与原始作品相同的许可证。参见 [`LICENSE`](LICENSE) 和 [`NOTICE`](NOTICE)。
## 🙏 致谢
源自 *Ramingo*([SOsintOps](https://github.com/SOsintOps/Exploratores))的 **侦察员 OSINT 工具包**。该项目将搜索目录、分类器、验证器、IBAN 表和匿名概念移植到 Python 引擎,封装为 Claude 技能和 MCP 服务器。所有荣誉归于原始工具包及其策划者。