MCP Server for validating dynamically generated agent code skills before archiving. Parses AST to ensure strict syntax validity, verifies presence of docstrings, type annotations, and return statements, and tests execution in an isolated scope against assert test cases.
Two tools with minimal descriptions (both under 100 chars) and incomplete parameter documentation. validate_code_ast has a single string parameter with basic description; verify_skill_execution has three parameters, one typed as 'any' with no constraints. No output schemas documented. No error handling guidance. Tool names are verb-based but descriptions lack context on WHEN to use them, WHAT they return, or recovery paths. No parameter constraints (enums, ranges, formats). Schemas present but sparse, missing type info for 'expected_result' and no output structure defined.
Checks code syntax and architectural sanity via AST.
Executes synthesized skill against verification expression in isolated namespace.
Output schemas not documented. LLMs cannot plan downstream calls or extract required fields. validate_code_ast returns {valid, error, function_name, has_docstring, has_return, arg_count}; verify_skill_execution returns {status, reason, expected, actual, passed}, neither documented in tool definition.
Parameter 'expected_result' typed as 'any' with no constraints or format guidance. LLMs cannot infer valid input types. Description says 'Expected result of the test call expression' but does not specify: JSON-serializable? Numeric? String? Callable?
Tool descriptions lack WHEN-to-use context and recovery guidance. 'Checks code syntax and architectural sanity via AST' does not explain: What counts as 'architectural sanity'? When should I call this vs. just running the code? What should I do if validation fails?
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 39 | 2026-07-28+ | v2 |
No error classification or recovery guidance. verify_skill_execution can return REJECTED, FAILED_ASSERTION, RUNTIME_ERROR, or APPROVED, but LLM is not told which are retryable, which require user input, or what to do next.
No parameter descriptions for 'code_str' in validate_code_ast. Description says 'Python code string to validate' but does not specify: Max length? Encoding? What Python version? What syntax is rejected vs. accepted?