mcpField
O
otx

otx

本地服务
github.com/w0h1v安全12 周前更新

关于 otx

otx 是供 AI Agent 查询 AlienVault OTX 威胁情报的 MCP 服务,涵盖指标、脉冲和用户信息。默认仅开放只读工具,账户变更功能需显式启用。

主要功能

  1. 01跨类型指标丰富查询
  2. 02搜索脉冲和用户
  3. 03获取信誉与分析数据
  4. 04默认仅提供只读工具
  5. 05支持 stdio 和认证 HTTP

适用场景

  1. 01调查 IP、域名、哈希、URL 或 CVE
  2. 02查看恶意软件相关社区脉冲
  3. 03检查被动 DNS 或沙箱结果

MCP 相关

向 MCP 客户端提供 AlienVault OTX 工具和资源模板,支持 stdio 与 streamable HTTP。HTTP 访问可配置 Bearer Token 认证。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"w0h1v-otx": {
"command": "uvx",
"args": [
"otx-mcp"
],
"env": {
"OTX_API_KEY": "<OTX_API_KEY>",
"OTX_MCP_READ_WRITE": "<OTX_MCP_READ_WRITE>"
}
}
}
}
启动命令uvx otx-mcp
需要配置的环境变量
OTX_API_KEY密钥Your AlienVault OTX API key
OTX_MCP_READ_WRITESet to 1 to expose account-mutating tools (create/subscribe/follow/submit). Read-only by default.

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypiotx-mcp1.2.0

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

MCP OTX:为 AI Agent 提供威胁情报。通过模型上下文协议获取 AlienVault OTX 的脉冲、指标、被动 DNS 和恶意软件分析。

PyPI 版本 CI 许可证:MIT Python 3.10 或更高版本 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
Pulseget_pulse_details、get_pulse_indicators、get_related_pulses、search_related_pulses、list_pulse_activity、list_subscribed_pulses、get_subscribed_pulse_ids、get_pulse_eventscreate_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_pulsessubscribe_user、unsubscribe_user、follow_user、unfollow_user
提交list_submitted_urls、list_submitted_filessubmit_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_BASEhttps://otx.alienvault.com/api/v1API 根地址(用于测试)
OTX_MCP_TRANSPORT--transportstdiostdio、streamable-http 或 sse
OTX_MCP_HOST--host127.0.0.1HTTP 绑定地址
OTX_MCP_PORT--port8000HTTP 端口
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。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。