This server provides an interactive course to help users learn Git version control.
This server has significant quality gaps across naming, descriptions, schemas, and error handling. While tool names start with verbs (get_, start_, clear_, next_), descriptions lack sufficient detail for LLM decision-making, parameter descriptions are sparse, and output schemas are not documented. The server provides 5 tools with basic functionality but insufficient metadata for production use. Input schemas exist but are minimal, and descriptions are generic without actionable context about when/why to use each tool.
Clears the course history and resets the course state.
Returns the current status of the Git course, including the current lesson and step.
Moves to the next step in the Git course and returns the content for that step or tells the user to answer the questions or complete the exercises before moving on.
Starts the Git course resumes the course from where the user left off, if there is no state, the course will start from the beginning.
Sets the current lesson and step in the course state and returns the content for that step. Do not use this tool to advance the course, use `next_git_course_step` instead.
Output schemas not documented. No return type specifications for any tool. LLMs cannot plan downstream calls or extract structured data without knowing what fields are returned.
Tool descriptions are too generic and lack actionable context. 'Clears the course history and resets the course state' does not explain when to use this tool, prerequisites, or side effects. Descriptions should be 50-200 characters and state WHAT, WHEN, and WHY.
Parameter descriptions are missing or minimal. The 'questions_answered' and 'insists' parameters in next_git_course_step have descriptions but lack examples of how the LLM should determine these values. No guidance on how to detect 'insist' in user prompts or validate 'questions_answered'.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 48 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 44 | - | v1 |
Error handling is minimal. Only 'start_git_lesson_step' includes a try/except with ToolError. Other tools do not document what errors can occur, how to recover, or what invalid inputs look like. No guidance for LLMs on retry logic or fallback actions.
Tool naming ambiguity: 'start_git_course' and 'start_git_lesson_step' both use 'start' but have different semantics (resume vs. jump to). LLM may conflate them. Names like 'resume_git_course' vs 'jump_to_lesson_step' would be clearer.
No pagination or result limits documented. If 'get_git_course_status' or similar tools eventually return lists of lessons/steps, there is no mechanism to handle large result sets or cap output. Current string returns are unstructured.
Commented-out sampling code indicates incomplete migration to current MCP spec. The async/await pattern in 'next_git_course_step' is present but sampling is disabled. Code comments reference unimplemented MCP features, creating confusion about what is actually supported.