Production-style MCP server for PitCrew Ops incident response workflows
Server has 6 tools with basic schemas and descriptions, but significant gaps limit production readiness. All tools have descriptions (10-80 chars, mostly adequate), and most have input schemas using Zod validation. However, output schemas are undocumented, LLMs cannot predict response structure. Parameter descriptions are minimal or missing context. Error handling is absent; tools return generic JSON without recovery guidance. No tool annotations (readOnlyHint/destructiveHint). Naming is verb-forward (fetch_, query_, create_, notify) but lacks specificity in some cases (summarize_logs, suggest_remediation are vague about what 'summarization' and 'suggestion' entail). The server targets incident response, a domain requiring clear, actionable tool contracts, but falls short of production standards.
Create an incident ticket in a system like Jira/ServiceNow/GitHub (demo stub)
Fetch latest active alerts from monitoring
Send a message to a channel (Slack/Teams) - demo stub
Query logs for a service within a timeframe (e.g. 5m, 15m, 1h)
Suggest safe remediation steps based on the incident summary
Summarize raw log lines into an SRE-friendly incident narrative
Output schemas undocumented. All 6 tools return JSON via toTextResponse() but LLMs cannot predict field names, types, or structure. This forces agents to parse unstructured text and guess at downstream field availability.
Parameter descriptions lack actionable constraints. 'logs' param in summarize_logs accepts 'any' type with minimal guidance ('Log entries as array or newline-separated string'). No format examples, no error cases, no guidance on expected structure.
No error handling or recovery guidance. Tools return generic JSON responses with no error classification, retryability hints, or actionable next steps. An LLM cannot distinguish between transient failures and permanent errors.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 51 | <=2025-11-25 | v2 |
Missing tool annotations. create_ticket and notify are destructive/write operations but lack destructiveHint annotation. fetch_alerts and query_logs are read-only but lack readOnlyHint. Agents cannot infer safety without explicit hints.
Vague tool names reduce discoverability. 'summarize_logs' and 'suggest_remediation' do not clearly convey what they produce or when to use them vs. similar tools. 'summarize_logs' could mean extract, filter, or generate narrative, ambiguous for LLM selection.