Otx

io.github.w0h1v由 GitHub 帳號 w0h1v 發布v1.2.0更新於 Oct 24, 2026

MCP server for AlienVault OTX threat intelligence: indicators, pulses, search, and users.

概覽

AI 產生的概覽

為 AI 助理提供 AlienVault OTX 威脅情報存取權的 MCP 伺服器:指標、pulse、使用者、訂閱和 URL 提交。

可以做什麼
搜尋 pulse 和使用者,讀取 pulse 詳細資料、指標、相關 pulse、活動與事件,包括已訂閱的 pulse,以及 pulse 和指標的資源範本。對 IP 位址、網域、檔案雜湊、URL 和 CVE 等指標進行擴充和驗證,列出指標類型並匯出指標。查詢使用者和目前帳戶,列出使用者或自己的 pulse。啟用讀寫後,可建立 pulse、訂閱或取消訂閱 pulse 和使用者、追蹤或取消追蹤使用者,以及提交 URL 或檔案。
適用情境
適合在調查 IP、網域、雜湊、URL 或 CVE,或研究惡意軟體家族或攻擊者時使用,把 OTX 社群的 pulse、信譽、被動 DNS、whois 和沙箱資料帶入助理上下文。
執行需求
以 Python 套件在本機執行(Python 3.10 或更新版本,uv 或 pip)。需要 AlienVault OTX API 金鑰,透過 OTX_API_KEY 環境變數提供;免費帳戶即可。需要存取 OTX API 的網路。選用的 streamable HTTP 模式在網路綁定位址時需要 bearer 權杖。
安裝前請注意
伺服器以你的 OTX 帳戶身分運作,OTX_API_KEY 可存取該帳戶。寫入工具(建立 pulse、訂閱、追蹤、提交 URL)僅在啟用讀寫時出現;除非需要,否則保持唯讀。pulse 和指標文字由社群撰寫,不可信。切勿在沒有 bearer 權杖和 TLS 的情況下暴露 HTTP。部分端點可能需要長達 60 秒。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Otx,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

[MCP OTX: threat intelligence for AI agents. Pulses, indicators, passive DNS and malware analysis from AlienVault OTX over the Model Context Protocol.]

[PyPI version] [CI] [License: MIT] [Python 3.10 or newer] [MCP Registry]

Quickstart · Tools · HTTP · Security · Troubleshooting · Docs

mcp-otx is an MCP server that gives AI agents access to AlienVault OTX (Open Threat Exchange, now LevelBlue). Hand your agent an IP, domain, file hash, URL or CVE, or a malware family or adversary to research, and get back what the OTX community knows: pulses, reputation, passive DNS, whois, sandbox analysis and related indicators.

[!NOTE] Independent project, not affiliated with AlienVault or LevelBlue. You need your own OTX API key; a free account is enough.

Highlights

  • Full API coverage. 29 tools across pulses, indicators, users, subscriptions and URL submissions, plus resource templates for pulses and indicators.
  • One-call indicator enrichment. Every OTX indicator type (IPv4, IPv6, domain, hostname, file hash, URL, CVE) and detail section: reputation, geo, passive DNS, malware, whois, URL lists, HTTP scans, sandbox analysis.
  • Read-only by default. The 9 tools that change your OTX account only appear with --read-write.
  • Context-sized output. Large OTX objects are summarized and capped, with the API's total counts kept, so one lookup doesn't fill the model's context.
  • Safe HTTP. stdio for desktop clients, plus streamable HTTP with bearer-token auth. The server refuses to listen on a network-facing address without a token.
  • Tested. Unit tests against a mocked OTX API run in CI on Python 3.10 to 3.13.

How it works

mermaid
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

Quickstart

Requirements: Python 3.10 or newer, uv (or pip), and an OTX API key.

sh
# Claude Codeclaude mcp add --transport stdio --env OTX_API_KEY=your-key otx -- uvx otx-mcp
# Codex CLIcodex mcp add otx --env OTX_API_KEY=your-key -- uvx otx-mcp
# Gemini CLIgemini mcp add -e OTX_API_KEY=your-key otx uvx otx-mcp

With pip: pip install otx-mcp, then use the command otx-mcp. For Claude Desktop, VS Code, Cline, Docker and running from source, see Connect a client.

Then ask your agent: "What does OTX know about 8.8.8.8, and are there recent pulses about Emotet?" More prompts are in example workflows.

Tools

20 read tools, plus 9 write tools with --read-write. Full parameters and real sample output are in the tool reference.

AreaRead toolsWrite tools (--read-write)
Searchsearch_pulses, search_users
Pulsesget_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
Indicatorsget_indicator_details, validate_indicator, list_indicator_types, export_indicators
Usersget_user, get_current_user, list_user_pulses, list_my_pulsessubscribe_user, unsubscribe_user, follow_user, unfollow_user
Submissionslist_submitted_urls, list_submitted_filessubmit_url, submit_urls

Resource templates: otx://pulse/{pulse_id} and otx://indicator/{type}/{value}.

HTTP transport

stdio is the default. For remote or web clients, run streamable HTTP:

sh
OTX_API_KEY=your-key uvx otx-mcp --transport streamable-http# → http://127.0.0.1:8000/mcp

To listen on a network-facing address, set a bearer token. Clients must then send Authorization: Bearer <token>:

sh
OTX_API_KEY=your-key OTX_MCP_BEARER_TOKEN=a-long-random-secret \  uvx otx-mcp --transport streamable-http --host 0.0.0.0
sh
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 is slow on some endpoints (passive DNS and subscriptions can take 20 to 60 s), so give remote clients a long read timeout (120 s works).

Configuration

VariableCLI flagDefaultDescription
OTX_API_KEY(required)Your OTX API key. Also read from .env
OTX_API_BASEhttps://otx.alienvault.com/api/v1API root (for testing)
OTX_MCP_TRANSPORT--transportstdiostdio, streamable-http or sse
OTX_MCP_HOST--host127.0.0.1HTTP bind address
OTX_MCP_PORT--port8000HTTP port
OTX_MCP_READ_WRITE--read-writeoff1 exposes the account-changing tools
OTX_MCP_BEARER_TOKENoffRequire Authorization: Bearer <token> on HTTP
--allow-remoteoffAllow a network-facing bind without a token (not recommended)
--json-responseoffPlain JSON instead of SSE streams (streamable HTTP)
--stateless-httpoffA new session per request (streamable HTTP)

Security

[!WARNING] The server acts as your OTX account. Keep it read-only unless you need the write tools, and never expose HTTP without a bearer token and TLS.

  • Read-only by default. Pulse creation, subscriptions, follows and URL submissions need --read-write. Editing or deleting pulses isn't exposed as a tool at all.
  • Untrusted content. Pulse and indicator descriptions are written by the OTX community. The server tells the model to treat them as data, not instructions.
  • The API key is sent only to the OTX API, in a header.

Details are in the security model. Report vulnerabilities privately; see SECURITY.md.

Troubleshooting

  • 403 "Authentication required": the API key is wrong. get_current_user shows which account a key belongs to.
  • A write tool is missing: start the server with --read-write.
  • Timeouts: passive DNS and subscription calls can take up to 60 s. Raise your client's tool timeout.

More in the troubleshooting guide.

Development

sh
git clone https://github.com/w0h1v/mcp-otx && cd mcp-otxuv venv && uv pip install -e ".[dev]".venv/bin/python -m pytest    # mocked OTX API, no key or network

See CONTRIBUTING.md and the changelog.

License

MIT. See LICENSE.

來源:README.md,提交 d77d277

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v1.2.0最新Oct 13, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分