MCP server that runs make commands to build projects and execute tests
Both tools have descriptions but lack critical schema definition. Input schemas are empty objects ({}), violating the requirement that parameters have type definitions. Descriptions are present but generic (194-char baseline suggests 50-200 chars is optimal; these are ~120 chars, acceptable length but lack actionable detail). No parameter descriptions exist because no parameters are defined. No output schema is documented. Error handling is minimal, tools return raw JSON without recovery guidance. Tool names lack verb-noun clarity ('make' and 'make-test' are command names, not action verbs like 'run_make' or 'execute_build'). No tool annotations (destructiveHint, readOnlyHint, idempotentHint) despite 'make' being a WRITE operation.
Run make to build the project. Returns the contents of standard output and standard error
Run make test to execute unit tests. Returns the contents of standard output and standard error
Empty input schemas ({}). Both tools declare no parameters, violating the requirement that schemas use proper JSON Schema with types and descriptions.
Tool names lack action verbs. 'make' and 'make-test' are command names, not verb_noun patterns (e.g., 'run_make', 'execute_build', 'run_tests'). LLMs rely on verb-prefixed names to infer intent before reading descriptions.
No output schema documented. Tools return JSON with 'success', 'stdout', 'stderr' fields, but this structure is not declared in the tool definition. LLMs cannot plan downstream calls or extract fields reliably.
Missing tool annotations. 'make' is marked WRITE risk but has no destructiveHint annotation. 'make-test' is READ_ONLY but has no readOnlyHint. Annotations are required for agents to reason about side effects and retry safety.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 35 | 2026-07-28+ | v2 |
No error recovery guidance. Tools return raw JSON with success/stdout/stderr but do not guide the LLM on what to do if the command fails. Per pattern:recovery-guide, errors must tell the agent what to do next.