MCP server that reverse-engineers a trustworthy rebuild spec from an existing app.
Critical gaps across all dimensions. Tool descriptions are present but generic (10-50 chars), failing the 20-char minimum for non-zero scores. No parameter descriptions, type definitions, or output schemas documented. Tools lack verb-noun naming clarity (e.g., 'ingest_repo' vs 'analyze_repo', 'flag_known_bug' is ambiguous). No evidence of error handling, validation, or recovery guidance. Security concerns: no indication of permission gates or audit trails for WRITE operations (flag_known_bug, resolve_case, generate_spec). Composition issues: tools appear to operate on a shared case/queue state without clear chaining via IDs.
Crawls a website to gather behavioral signals
Flags a known bug in the codebase
Generates a rebuild specification from analyzed app data
Retrieves the queue of cases to be resolved
Ingests a repository and extracts route and signal information
Resolves a case with a decision
No input schemas visible in source code. All 6 tools lack JSON Schema definitions with parameter types, constraints, and descriptions.
Tool descriptions are generic and under 20 characters (e.g., 'Ingests a repository and extracts route and signal information' is 60 chars but lacks WHEN to use, prerequisites, or output structure).
WRITE operations (flag_known_bug, resolve_case, generate_spec) lack permission gates, audit trails, or confirmation steps. No evidence of dry-run support or recovery guidance if operations fail.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 36 | <=2025-11-25 | v2 |
No error handling or recovery guidance visible. Tools do not document what errors are retryable, user-fixable, or fatal. No actionable error messages (e.g., 'Invalid case_id: must be UUID format').
Tool composition unclear. No visible output schemas or chaining IDs. If get_case_queue returns cases, what fields does it include? Can resolve_case accept the case_id from get_case_queue output directly?