MCP server implementation for ISOPlanner API integration
All 5 tools have trivial descriptions (10-40 chars) and empty input schemas ({}). No parameter descriptions, no output schemas documented, no error handling guidance. Tools are read-only but lack idempotent/readOnly annotations. Naming is verb-based (get_*) but descriptions provide zero context for LLM selection. This server fails the critical baseline: 100% of A+ tools have documented return types and param descriptions; 94% have docstrings >34 chars. These tools have neither.
Get all controls associated with risks
Get all objectives associated with risks
Get all processes associated with risks
Get all tags associated with risks
Get a list of all risks
All tools have empty input schemas ({}). LLMs cannot infer parameter constraints or types.
Descriptions are 10 - 40 characters ('Get a list of all risks', 'Get all tags associated with risks'). Baseline for A+ tools is 194 chars (p10=34, p90=392).
No output schemas documented. LLMs cannot plan downstream calls or extract required fields (e.g., riskId, controlId). Baseline: 100% of A+ tools have documented return types.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 33 | 2026-07-28+ | v2 |
No error handling guidance. If an API call fails (auth, timeout, 404), LLMs receive raw errors with no recovery path. Missing pattern: recovery-guide.
No tool annotations (readOnlyHint, idempotentHint). All tools are read-only and idempotent but lack explicit hints. LLMs cannot infer safety properties.