AlienVault OTX MCP — Open Threat Exchange (free with key). Provides access to community-curated threat-intel pulses bundling indicators of compromise with TTPs, targeted industries, and references.
Three tools with complete schemas and reasonable descriptions. Naming follows verb_noun convention (search_, get_, lookup_). Descriptions are 150-250 chars, within the 10-1024 baseline. All parameters have type definitions and descriptions. However, output schemas are not formally documented, only inferred from code. Error handling is present but minimal (no recovery guidance or categorization). No tool annotations (readOnlyHint, etc.). Parameter descriptions lack format constraints and ranges (e.g., 'limit: 1-50' is stated but not enforced via schema minumum/maximum). The _apiKey parameter is exposed as a tool argument rather than injected server-side, violating secret-injection pattern.
Fetch a single OTX pulse: full description, references, indicators, attack IDs, targeted countries, malware families, industries, and creation/modification dates.
Look up an indicator (IPv4, domain, URL, or file hash) in OTX. Returns pulses referencing the indicator and observed-context fields. type auto-detected when omitted.
Search OTX threat-intel pulses by keyword. Returns pulse ID, name, description preview, tags, targeted countries, malware families, attack IDs, and indicator count.
API key exposed as tool parameter (_apiKey) instead of server-side injection. Credentials in tool parameters leak into agent logs and prompt history.
Output schemas not formally documented. Code shows normalizePulse() and response structures, but no explicit schema definitions for LLM consumption. LLMs cannot plan downstream calls without knowing return field names and types.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). All three tools are read-only but this is not declared in schema, forcing LLMs to infer safety from descriptions.
Parameter constraints (limit 1-50, page ≥1) stated in descriptions but not enforced in JSON Schema (missing minimum/maximum). LLMs cannot read prose constraints reliably.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 59 | 2026-07-28+ | v2 |
Error messages are generic ('OTX: unauthorized', 'OTX: not found'). No recovery guidance (e.g., 'Check API key at https://otx.alienvault.com' or 'Try a different pulse_id').