Strictly read-only MCP server for Microsoft Defender XDR
Defender XDR MCP demonstrates solid fundamentals: all 12 tools have clear verb-noun naming (run_, list_, get_), descriptions present for all tools and parameters, and proper JSON Schema with types. However, descriptions are terse (avg ~60 chars, well below the 194-char baseline), lack actionable context for LLM selection, and output schemas are not documented. Parameters lack enums where appropriate (e.g., status, severity fields accept free-form strings). Error handling is minimal, no recovery guidance or categorization. All tools are read-only, reducing risk, but composition could be stronger (e.g., list_incidents returns incident IDs but no summary context to guide downstream get_incident calls). Audit logging is well-implemented (src/audit/log.ts) but not exposed as a tool feature.
Retrieve details of a specific security alert
Get the current authentication connection status and granted scopes
Retrieve details of a specific device including its vulnerabilities
Retrieve details of a specific security incident including associated alerts
List security alerts from Microsoft Defender XDR with optional filtering
List devices from Microsoft Defender for Endpoint with optional filtering
List security incidents from Microsoft Defender XDR with optional filtering
Descriptions are terse (avg ~60 chars vs. 194-char baseline). Missing WHEN to use each tool and dependencies. E.g., 'List security incidents' does not explain when to call this vs. list_alerts, or that get_incident should follow for details.
Filter parameters (status, severity, assignedTo) accept free-form strings with no enum constraints. LLMs will hallucinate invalid values. E.g., list_incidents accepts 'status' but valid values are not declared.
Output schemas not documented. LLMs cannot plan downstream calls or extract required fields. E.g., list_incidents returns incident IDs but response structure is not specified in tool definition.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 52 | 2026-07-28+ | v2 |
List security recommendations from Microsoft Defender for Endpoint
List software inventory from Microsoft Defender for Endpoint
List vulnerabilities from Microsoft Defender for Endpoint with optional filtering
List devices affected by a specific vulnerability
Execute a KQL hunting query against Microsoft Defender XDR security data
No error handling guidance. Tools return errors but do not tell LLM what to do next (retry, ask user, try alternative tool). E.g., 'Invalid query' does not suggest how to fix it.
Pagination parameters (continuationToken, top) present but no guidance on result limits or when pagination is required. LLMs may request excessive results.