bonetrees/osint-mcp-gateway

GitHub: bonetrees/osint-mcp-gateway

一个模块化的 OSINT MCP 服务器平台,通过带 BM25 搜索的网关将多个威胁情报源聚合后统一暴露给 AI 客户端,实现对话式多源情报调查。

Stars: 0 | Forks: 0

# OSINT MCP 工具 用于 OSINT 和威胁情报调查的模块化、对话式 MCP 服务器。每个服务器封装了一个情报源并可独立部署;OSINT Gateway 将它们聚合在一起,并向 Claude 暴露一个支持 BM25 搜索的工具目录。 ## 服务器 | 服务器 | 功能说明 | 端口 | API key | |---|---|---|---| | **OSINT Gateway** | 聚合所有后端;支持跨目录的 BM25 工具搜索 | 9000 | — | | Shodan | IP / 服务 / 漏洞查询 | 9102 | `SHODAN_API_KEY` | | VirusTotal | 文件 / URL / 域名 / IP 情报 | 9103 | `VT_API_KEY` | | DNS OSINT | DNS 侦察(解析、PTR、axfr 探测、SPF/DMARC) | 9104 | — | | WHOIS | RDAP 注册和路由数据 | 9105 | — | | RIPEStat | BGP、前缀、ASN、地理位置、滥用联系人 | 9106 | — | | OTX | AlienVault 社区威胁情报 — pulse 和 indicator | 9107 | `OTX_API_KEY` | API key 位于仓库根目录的 `.env` 中。 ## 快速开始 ### 从源码构建(本地开发) ``` # 启动一切 docker compose up --build # 或单台服务器 docker compose up --build shodan # Health checks curl http://localhost:9000/health # Gateway curl http://localhost:9102/health # Shodan # ... ``` ### 使用来自 GHCR 的预构建镜像 每次合并到 `main` 分支时,所有服务器的镜像都会发布到 `ghcr.io/bonetrees/`,标签为 `latest` 和短 SHA。 ``` # One-time auth gh auth refresh -s read:packages && gh auth token | docker login ghcr.io -u "$(gh api user -q .login)" --password-stdin # 拉取并运行 docker compose -f docker-compose.yml -f docker-compose.ghcr.yml pull docker compose -f docker-compose.yml -f docker-compose.ghcr.yml up -d # 固定特定 build 以便 rollback IMAGE_TAG= docker compose -f docker-compose.yml -f docker-compose.ghcr.yml up -d ``` 请参阅 [`CLAUDE.md`](./CLAUDE.md) 获取完整的命令参考。 ## 架构 - **每个服务器一个容器** — 每个服务器均可独立部署 - **Streamable-HTTP 传输** — 同一容器既可在本地运行,也可在 Cloud Run 中运行 - **通过 Gateway 组合** — 客户端看到约 4 个可见工具(`search_tools`、`call_tool`、`list_backends`、`gateway_status`);Gateway 代理底层约 50 个工具组成的目录,并提供基于 BM25 的搜索以便发现 - **自包含** — 服务器之间没有共享的运行时依赖;每个都是一个独立的 Poetry 项目 ## 项目结构 ``` ├── CLAUDE.md # Project-level instructions and command reference ├── docker-compose.yml # All servers, build-from-source ├── docker-compose.ghcr.yml # Override that pulls prebuilt GHCR images ├── docs/ │ ├── PROJECT_VISION.md # "Vibe Investigate" concept │ ├── MCP_SERVER_TEMPLATE.md # Architecture template for new servers │ └── GATEWAY_TEMPLATE.md # Gateway-specific patterns ├── tools/ │ ├── osint-gateway/ │ ├── shodan_mcp/ │ ├── dns-osint-mcp/ │ ├── vt_mcp/ │ ├── whois-mcp/ │ ├── ripestat-mcp/ │ └── otx-mcp/ └── .github/workflows/ └── build-images.yml # GHCR build-and-push pipeline ``` ## 文档 - **[CLAUDE.md](./CLAUDE.md)** — 项目级别的说明、命令参考、跨服务器规范 - **[docs/PROJECT_VISION.md](./docs/PROJECT_VISION.md)** — 我们在构建什么以及为什么 - **[docs/MCP_SERVER_TEMPLATE.md](./docs/MCP_SERVER_TEMPLATE.md)** — 新服务器的规范架构模板 - **[docs/GATEWAY_TEMPLATE.md](./docs/GATEWAY_TEMPLATE.md)** — Gateway 特定的模式 - 各服务器专属 README:[Gateway](./tools/osint-gateway/README.md) · [Shodan](./tools/shodan_mcp/README.md) · [DNS OSINT](./tools/dns-osint-mcp/README.md) · [VirusTotal](./tools/vt_mcp/README.md) · [WHOIS](./tools/whois-mcp/README.md) ## 开发 每个服务器都是一个独立的 Poetry 项目。针对特定服务器的命令(安装、测试、lint)位于每个服务器的 `CLAUDE.md` 中。新服务器应遵循 [`docs/MCP_SERVER_TEMPLATE.md`](./docs/MCP_SERVER_TEMPLATE.md) — 包括针对 BM25 发现的描述增强指南。 代码风格:Python ≥3.13,Black + Pylint,全面使用类型提示,日志中使用 `%s` 延迟格式化。
标签:Docker, ESC4, GitHub, MCP服务, OSINT, 威胁情报, 安全防御评估, 实时处理, 开发者工具, 版权保护, 请求拦截, 逆向工具