MCP server for Rapid7 InsightIDR — investigate alerts, search logs with LEQL, manage investigations, track assets and users, and query threat intelligence
Rapid7 MCP presents well-structured tool definitions with consistent naming conventions (all tools follow verb_noun pattern), explicit enum constraints, and reasonable parameter descriptions. However, several tools lack comprehensive output schema documentation, and parameter descriptions often lack actionable format/constraint details expected in production tools. The server registers 7 tools with proper input schemas using Zod validation, but output schemas are not explicitly documented in the visible code. Descriptions are present but average 100-150 characters, below the 194-char production baseline, and lack dependency hints or recovery guidance. Schema completeness is moderate: constraints are declared (enums for severity/status/type), but many parameters lack minimum/maximum bounds or format specifications. Error handling mechanisms are not visible in the sampled code.
Get full details of a specific InsightIDR alert including its detection rule and metadata
Get evidence and indicators associated with an InsightIDR alert
Get full details of an InsightIDR asset including installed software, vulnerabilities, and network interfaces
Get recent activity for an asset including logins, processes, and network connections
List InsightIDR alerts with optional filters for severity, type, status, and date range
Search InsightIDR assets (endpoints) by hostname, IP address, OS, or agent status
Output schemas not documented in visible code. Tools return structured data but LLMs cannot infer field names, types, or nested structures. This forces agents to discover response format through trial-and-error or trial calls.
Parameter descriptions lack actionable constraint details. E.g., 'size' param states 'Number of results to return (1-100)' but does not explain API behavior if size is omitted, or what the default implies. 'start_time' and 'end_time' accept 'ISO 8601 timestamp' but do not specify timezone handling or precision requirements.
Descriptions are brief (60 - 75 chars for get_alert, get_alert_evidence, get_asset) and lack context for LLM tool selection. E.g., 'Get full details of a specific InsightIDR alert' does not answer WHEN to use this vs search/list; no mention of prerequisites or what 'full details' includes.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | C | 66 | 2025-06-18+ | v2 |
| 2026-03-09 | D | 51 | - | v1 |
Update the status of an InsightIDR alert (open, investigating, or closed)
No error handling guidance visible in tool definitions. If an alert_id is invalid or an asset is not found, expected error messages and recovery paths (e.g., 'Try search_assets() first') are not documented. LLMs cannot adapt to failures without explicit guidance.
assignee_email parameter in update_alert_status lacks validation rules. Description states 'format:email' but does not explain: Is this required? What happens if the email is not a valid user in InsightIDR? Can the LLM pass any valid email, or only whitelisted users?