MCP server for fast Kotlin/Native iOS klib API lookup
Server defines 6 tools with reasonable naming (verb_noun pattern) and mostly complete schemas. However, descriptions are inconsistent in depth, some are generic (e.g., 'Get the current status' for get_status), and several parameter descriptions lack actionable detail. Output schemas are not documented. Error handling guidance is absent. Tool composition is sound (each does one thing), but parameter interdependencies (e.g., kotlinVersion + target + frameworks) are underdocumented. No tool annotations (readOnlyHint/destructiveHint) despite clear risk profiles.
Discover available Kotlin/Native installations on the system
Get detailed explanation and metadata for a specific symbol
Get the current status of the klib API lookup service
Look up a Kotlin/Native symbol in the indexed klib API database
Rebuild the klib API index for specified Kotlin/Native frameworks
Search the Kotlin/Native klib API database for symbols matching a query
Output schemas not documented. LLMs cannot plan downstream calls or extract required fields (e.g., what does lookup_symbol return? Is it a list? Does it include framework/version info for chaining?). Violates pattern:tool requirement.
Tool annotations missing. rebuild_index is destructive (WRITE risk) and should declare destructiveHint=true; lookup_symbol and search_klib_api are read-only and should declare readOnlyHint=true. Agents cannot distinguish safe from unsafe tools without annotations.
Parameter interdependencies underdocumented. rebuild_index accepts kotlinVersion, target, and frameworks, but no description explains how they interact or which combinations are valid. dryRun and cleanBefore have no guidance on side effects or idempotency.
Inferred effective spec: 2025-06-18+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 44 | 2025-06-18+ | v2 |
get_status description is generic ('Get the current status of the klib API lookup service'). Does not explain what fields are returned, when to call it, or what 'status' means (ready? indexing? error?).
No error handling guidance. Tools lack recovery hints (e.g., 'If symbol not found, try search_klib_api with a partial query'). Agents cannot self-correct on failures.