A Quarkus-based MCP server that provides URL shortening functionality
Single tool with minimal definition quality. UrlShortener has a basic description (11 chars: 'Shortens URL') that falls below the 20-char minimum and lacks context on when/why to use it. Input schema is present with proper type (string) and format (uri), but parameter description is generic. No output schema documented. No error handling guidance. Tool lacks idempotency hints, rate-limit warnings, or recovery paths for external service failures. Naming is acceptable (verb_noun pattern) but description quality is critically weak.
Shortens URL
Tool description is critically short (11 chars: 'Shortens URL'). Minimum baseline is 20 chars; A+ tools average 194 chars. LLMs cannot determine when to select this tool vs alternatives or what it returns.
No output schema documented. LLMs cannot plan downstream tool calls or extract the shortened URL field name. Baseline: 100% of A+ tools document return types.
No error handling guidance. External URL shortener service (SpoomeUrlShortenerService) can fail, timeout, or rate-limit. Tool provides no recovery hints, retry logic, or fallback. LLM has no guidance on what to do if shortening fails.
Parameter description is generic ('The original long URL'). Does not specify format constraints, length limits, or valid URL schemes. LLMs may pass invalid URLs (e.g., 'ftp://', 'mailto:', relative paths) that the @URL validator rejects.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 47 | 2026-07-28+ | v2 |
No idempotency or rate-limit hints. Repeated calls with the same URL may generate different short URLs or hit rate limits. Tool should document whether it is idempotent and what rate limits apply.