MCP server for Architecture Decision Records (ADR) management, providing tools for generating ADR indexes, validating ADR format, and managing ADR lifecycle
Single tool 'adr-index' has a detailed description (194 chars, within baseline 34-392 range) explaining dual modes and use cases. However, the input schema exhibits critical structural issues: parameters are split across three fields (adr_dir, adr_dir_opt, adr_dir_arg) creating ambiguity and mutual exclusivity that is not documented in parameter descriptions. Most parameters lack type information in the visible schema (adr_dir, adr_dir_opt, readme are strings but lack format/pattern constraints). The schema does not document output structure, pagination, or error cases. Parameter descriptions are present but do not explain dependencies (e.g., 'adr_dir_arg selects README mode unless -o/--adr-dir is used' is buried in tool description, not in param descriptions). No error handling guidance visible. Tool name 'adr-index' is a noun phrase, not a verb_noun pattern (should be 'generate_adr_index' or 'build_adr_index'). The tool performs multiple distinct operations (context mode vs README mode) which violates single-responsibility principle.
Generate ADR indexes for context injection and local README navigation. Supports two modes: context mode for generating compact one-row-per-ADR maps (markdown, JSON, or graph format) and README mode for managing ADR index blocks in docs/adr/README.md
Tool name 'adr-index' is a noun phrase, not a verb_noun action. Should be 'generate_adr_index' or 'build_adr_index' to signal intent to LLM.
Parameter schema lacks type definitions and constraints. 'adr_dir', 'adr_dir_opt', 'readme' are documented as strings but have no format, pattern, or length constraints. No enum for 'format' values in schema (only in description).
Mutually exclusive parameters (adr_dir_arg vs adr_dir_opt vs output) are not documented in parameter descriptions. LLM cannot determine which combination is valid without reading tool description.
No output schema documented. LLM cannot know what fields to expect (markdown text, JSON structure, graph format) or how to chain results to downstream tools.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 41 | 2026-07-28+ | v2 |
Tool performs two distinct operations (context mode and README mode) in one tool, violating single-responsibility principle. Should split into 'generate_adr_context_index' and 'update_adr_readme_index'.