MCP Server for incident timeline extraction. Exposes extraction tools to Claude via Model Context Protocol.
This server presents a mixed quality profile typical of community incident-analysis tools. Strengths: all 8 tools have descriptions and explicit input schemas with proper JSON Schema structure; tool names are action-oriented (extract_, identify_, detect_, generate_, map_, parse_, analyze_); consistent READ_ONLY risk classification. Critical gaps: descriptions lack depth and LLM-optimization guidance; parameters are minimally described (most are single-line 'Raw incident text'); no output schemas documented anywhere (the server does not expose what fields LLM receives in responses); no error recovery guidance; no parameter constraints (enums, ranges, formats) despite tools accepting free-form text and optional parameters; composition issues (most tools solve only one analysis angle rather than offering a cohesive incident investigation pipeline); no indication of how results chain into downstream tool calls. Average tool score: 58/100.
Read a sample incident resource by URI and run the full analysis pipeline. Automatically detects format (plaintext or Slack export) and returns structured incident analysis with timeline, actions, entities, severity, IR phase mapping, and metrics.
Detect incident severity based on keywords and context. Returns severity level (critical/high/medium/low/unknown) with confidence score.
Extract entities involved in the incident. Finds services, IP addresses, and domains mentioned in text.
Extract chronological timeline of events from incident text. Returns events with timestamps, actors, and full context.
Generate comprehensive incident summary. Combines timeline, actions, entities, and severity into structured report.
Identify actions taken during incident response. Categorizes actions by type (investigation, remediation, communication, status).
No output schemas documented. Server exposes 8 tools but does not document what fields/structure each tool returns. LLMs cannot plan downstream calls or extract the right data without knowing the response format. This violates the pattern:response-shaper and mxe:response-field-naming principles.
Minimal parameter descriptions. Most parameters are described as 'Raw incident text' or 'JSON string' with no format hints, length constraints, encoding expectations, or language assumptions. LLMs cannot infer whether multi-language text is supported, what line length limits apply, or whether markup is stripped. This violates pattern:tool-description.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | C | 61 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 34 | - | v1 |
Map incident events to NIST SP 800-61 IR framework phases (Detection, Analysis, Containment, Eradication, Recovery, Post-Incident). Returns structured phase mapping with timeline, groupings, and metrics.
Parse Slack workspace export and extract incident timeline. Converts Slack JSON messages into structured incident analysis with timeline, actions, entities, severity, and IR phase mapping.
No enum constraints for known-set parameters. identify_actions describes action categories (investigation, remediation, communication, status) only in the description text, not as a schema enum. detect_severity hints at severity levels (critical/high/medium/low/unknown) without schema validation. map_to_framework lists framework name but does not enumerate valid values. This forces LLMs to hallucinate or guess valid options. Violates pattern:constrained-input.
No error recovery guidance. Tools accept free-form text and JSON but provide no error handling documentation or recovery suggestions. If parse_slack_export receives malformed JSON, analyze_resource receives an invalid URI, or extract_timeline receives unsupported language, there is no documented behavior or remediation path for the LLM. Violates pattern:recovery-guide.
Poor tool composition and chaining clarity. Six tools (extract_timeline, identify_actions, extract_entities, detect_severity, generate_summary, map_to_framework) all accept the same 'text' parameter and all return some form of incident analysis. There is no clear guidance on when to use one vs another, which to call first, whether results can be chained, or what downstream tools expect as input. This violates pattern:tool-chain and mxe:chat-data-model.
Resource URIs not formally specified. analyze_resource accepts URIs like 'incident://examples/simple' but the server does not document what URI schemes are valid, how to list available resources, or what error to expect for invalid URIs. This violates pattern:tool-description and mxe:chat-data-model (users should be able to discover resources).
No idempotence guarantees. Tools like generate_summary or map_to_framework may return slightly different results on repeated calls if they use LLM-based extraction (via _get_llm_client). No documentation of whether results are stable, whether retries are safe, or how to detect duplicate side effects. Violates pattern:idempotent-operation.