MCP server for Swift compilation and code analysis, providing tools for building Swift code snippets, analyzing AST, and slicing declarations
Three test-only tools with minimal descriptions and no input validation. 'echo' and 'fail' have trivial 10-char descriptions (below 20-char threshold). 'slow' lacks any description. All tools have basic schemas but lack parameter constraints, enums, or validation guidance. No error recovery hints. Tools are READ_ONLY and test-focused, not production-grade. Naming is generic (echo, fail, slow) rather than action-verb patterns (e.g., test_echo_string). No output schema documentation. This is a test harness, not a production tool suite.
Echo back input text
Tool that intentionally fails
Long-running tool for testing cancellation
Missing or trivial descriptions. 'echo' and 'fail' have 10-char descriptions (below 20-char minimum). 'slow' has no description at all.
Generic, non-action-verb naming. 'echo', 'fail', 'slow' do not follow verb_noun convention (e.g., test_echo_input, simulate_failure, test_long_running). LLMs cannot infer intent from these names alone.
No output schema documentation. Tools return results but no structured schema is declared for what fields/types the LLM should expect. Agents cannot plan downstream calls or extract data reliably.
No error recovery guidance. 'fail' tool intentionally fails but provides no hint to the LLM about what to do next (retry, skip, ask user). Error responses must guide recovery.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 33 | 2026-07-28+ | v2 |
Parameter 'text' in 'echo' lacks validation constraints. No min/max length, no format hint, no enum. LLMs may pass arbitrarily large or malformed strings.