关于 otx
otx 是供 AI Agent 查询 AlienVault OTX 威胁情报的 MCP 服务,涵盖指标、脉冲和用户信息。默认仅开放只读工具,账户变更功能需显式启用。
主要功能
- 01跨类型指标丰富查询
- 02搜索脉冲和用户
- 03获取信誉与分析数据
- 04默认仅提供只读工具
- 05支持 stdio 和认证 HTTP
适用场景
- 01调查 IP、域名、哈希、URL 或 CVE
- 02查看恶意软件相关社区脉冲
- 03检查被动 DNS 或沙箱结果
MCP 相关
向 MCP 客户端提供 AlienVault OTX 工具和资源模板,支持 stdio 与 streamable HTTP。HTTP 访问可配置 Bearer Token 认证。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
快速入门 · 工具 · HTTP · 安全性 · 故障排除 · 文档
mcp-otx 是一个 MCP 服务,可让 AI Agent 访问 AlienVault OTX(开放威胁交换平台,现属 LevelBlue)。向 Agent 提供 IP、域名、文件哈希、URL 或 CVE,也可以提供恶意软件家族或攻击者供其调查,即可获取 OTX 社区掌握的信息:脉冲、信誉、被动 DNS、whois、沙箱分析及相关指标。
说明
本项目独立运营,与 AlienVault 或 LevelBlue 无关。你需要自己的 OTX API 密钥;免费账户即可。
亮点
- 全面覆盖 API。 提供 29 个工具,涵盖脉冲、指标、用户、订阅和 URL 提交,另有针对脉冲和指标的资源模板。
- 一次调用即可丰富指标信息。 支持所有 OTX 指标类型(IPv4、IPv6、域名、主机名、文件哈希、URL、CVE)及详细信息类别:信誉、地理位置、被动 DNS、恶意软件、whois、URL 列表、HTTP 扫描、沙箱分析。
- 默认只读。 只有使用
--read-write时,才会显示可更改 OTX 账户的 9 个工具。 - 按上下文容量调整输出。 系统会对大型 OTX 对象进行摘要并限制输出,同时保留 API 返回的总数,避免单次查询占满模型上下文。
- 安全的 HTTP。 为桌面客户端提供 stdio,同时支持带持有者令牌身份验证的流式 HTTP。未设置令牌时,服务不会监听面向网络的地址。
- 经过测试。 使用模拟的 OTX API 运行单元测试,并在 Python 3.10 至 3.13 上通过 CI 执行。
工作原理
flowchart LR
A["AI agent<br/>(Claude, Codex, Gemini, VS Code)"] -->|"MCP over stdio or HTTP"| S["mcp-otx"]
S -->|"HTTPS + X-OTX-API-KEY"| O["OTX DirectConnect API"]
O -->|"JSON"| S
S -->|"summarized, capped JSON"| A
快速入门
要求: Python 3.10 或更高版本、uv(或 pip),以及 OTX API 密钥。
# Claude Code
claude mcp add --transport stdio --env OTX_API_KEY=your-key otx -- uvx otx-mcp
# Codex CLI
codex mcp add otx --env OTX_API_KEY=your-key -- uvx otx-mcp
# Gemini CLI
gemini mcp add -e OTX_API_KEY=your-key otx uvx otx-mcp
使用 pip:pip install otx-mcp,然后运行命令 otx-mcp。有关 Claude Desktop、VS Code、Cline、Docker 和从源代码运行的说明,请参阅连接客户端。
然后询问你的 Agent:“OTX 了解到哪些关于 8.8.8.8 的信息?最近是否有关于 Emotet 的脉冲?” 更多提示词见示例工作流。
工具
20 个读取工具,以及 9 个带有 --read-write 的写入工具。完整参数和实际示例输出请参阅工具参考。
| 区域 | 读取工具 | 写入工具(--read-write) |
|---|---|---|
| 搜索 | search_pulses、search_users | |
| Pulse | get_pulse_details、get_pulse_indicators、get_related_pulses、search_related_pulses、list_pulse_activity、list_subscribed_pulses、get_subscribed_pulse_ids、get_pulse_events | create_pulse、subscribe_pulse、unsubscribe_pulse |
| 指标 | get_indicator_details、validate_indicator、list_indicator_types、export_indicators | |
| 用户 | get_user、get_current_user、list_user_pulses、list_my_pulses | subscribe_user、unsubscribe_user、follow_user、unfollow_user |
| 提交 | list_submitted_urls、list_submitted_files | submit_url、submit_urls |
资源模板:otx://pulse/{pulse_id} 和 otx://indicator/{type}/{value}。
HTTP 传输
stdio 是默认传输方式。对于远程或 Web 客户端,请运行可流式传输的 HTTP:
OTX_API_KEY=your-key uvx otx-mcp --transport streamable-http
# → http://127.0.0.1:8000/mcp
如需监听面向网络的地址,请设置 bearer token。客户端必须发送 Authorization: Bearer <token>:
OTX_API_KEY=your-key OTX_MCP_BEARER_TOKEN=a-long-random-secret \
uvx otx-mcp --transport streamable-http --host 0.0.0.0
docker build -t mcp-otx .
docker run --rm -p 127.0.0.1:8000:8000 -e OTX_API_KEY=your-key \
-e OTX_MCP_BEARER_TOKEN=a-long-random-secret \
-e OTX_MCP_TRANSPORT=streamable-http -e OTX_MCP_HOST=0.0.0.0 mcp-otx
OTX 的某些端点响应较慢(被动 DNS 和订阅可能需要 20 到 60 秒),因此请为远程客户端设置较长的读取超时(120 秒即可)。
配置
| 变量 | CLI 标志 | 默认值 | 说明 |
|---|---|---|---|
OTX_API_KEY | (必需) | 你的 OTX API 密钥。也会从 .env 读取 | |
OTX_API_BASE | https://otx.alienvault.com/api/v1 | API 根地址(用于测试) | |
OTX_MCP_TRANSPORT | --transport | stdio | stdio、streamable-http 或 sse |
OTX_MCP_HOST | --host | 127.0.0.1 | HTTP 绑定地址 |
OTX_MCP_PORT | --port | 8000 | HTTP 端口 |
OTX_MCP_READ_WRITE | --read-write | 关闭 | 1 会启用可更改账户的工具 |
OTX_MCP_BEARER_TOKEN | 关闭 | 要求 HTTP 请求携带 Authorization: Bearer <token> | |
--allow-remote | 关闭 | 允许绑定到面向网络的地址而不设置 token(不推荐) | |
--json-response | 关闭 | 使用纯 JSON,而非 SSE 流(可流式传输的 HTTP) | |
--stateless-http | 关闭 | 每个请求创建一个新会话(可流式传输的 HTTP) |
安全
警告
此服务以你的 OTX 账户身份运行。除非需要写入工具,否则请保持只读;切勿在没有 bearer token 和 TLS 的情况下暴露 HTTP。
- 默认只读。 创建 Pulse、订阅、关注用户和提交 URL 均需使用
--read-write。此服务根本没有提供编辑或删除 Pulse 的工具。 - 不可信内容。 Pulse 和指标的描述由 OTX 社区编写。此服务会告知模型将其视为数据,而非指令。
- API 密钥仅会通过请求头发送给 OTX API。
详情请参阅安全模型。请私下报告漏洞;参见 SECURITY.md。
故障排除
- 403 "Authentication required": API 密钥错误。
get_current_user可显示密钥所属的账户。 - 缺少写入工具: 使用
--read-write启动服务。 - 超时: 被动 DNS 和订阅调用最长可能需要 60 秒。请调高客户端的工具超时时间。
更多信息请参阅故障排除指南。
开发
git clone https://github.com/w0h1v/mcp-otx && cd mcp-otx
uv venv && uv pip install -e ".[dev]"
.venv/bin/python -m pytest # mocked OTX API, no key or network
请参阅 CONTRIBUTING.md 和更新日志。
许可证
MIT。请参阅 LICENSE。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。