MCP server for managing CodeWars kata exercises, including importing, tracking progress, and setting up practice environments with socratic tutoring approach
Three tools with basic descriptions but critical gaps in schema documentation and parameter clarity. Tool names follow verb_noun convention (update_progress, import_kata, practice_python), but descriptions lack actionable detail for LLM selection. No visible input schema validation, parameter types, or constraints. Descriptions range 50-200 chars but omit WHEN to use each tool and what happens on failure. No output schema documentation. Error handling absent from visible code.
Import a specific kata by URL or ID. Allows importing exercises that may not be in the local index by fetching them directly from the CodeWars API.
Select and set up a random uncompleted kata for practice. Main workflow: 1. Load local index and user configuration 2. Sync user's completed katas from CodeWars 3. Filter out completed exercises 4. Select a random available kata 5. Lazy load full kata details from API 6. Create exercise folder and starter files
Force update of local history by querying CodeWars API. Use this tool when the user reports completing an exercise on the CodeWars website to refresh their local progress tracking.
No input schema validation visible. update_progress accepts optional 'username' but no type, format, or constraint documentation. LLMs cannot infer whether to pass 'john' or '[email protected]' or a user ID.
Descriptions lack WHEN to use each tool. 'Force update of local history' does not explain: Is this idempotent? What if the user has no CodeWars account? What does 'refresh' return? LLMs cannot distinguish between update_progress and practice_python without this context.
No output schema documented. practice_python description lists 6 workflow steps but does not state what the tool returns (file paths? exercise metadata? folder structure?). Agents cannot plan downstream actions without knowing the response shape.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 44 | 2026-07-28+ | v2 |
import_kata parameter 'url_or_id' is ambiguous. Description says 'CodeWars kata URL or kata ID' but does not specify format (e.g., 'https://www.codewars.com/kata/...' vs '5571d9fc11526780a000011a'). LLMs will guess and fail.
No error handling guidance. If CodeWars API is unreachable, or username is invalid, or kata import fails, the tool provides no recovery path. Descriptions do not mention failure modes or what the LLM should do next.