This server provides two read-only tools for Git repository analysis with basic HTTP transport. Naming follows verb_noun convention (git_directory_structure, git_read_important_files), which is correct. However, parameter descriptions are minimal, output schemas are not formally documented, and error handling is generic. The tools lack structured output specifications, making it difficult for LLMs to parse responses reliably. No tool annotations (readOnlyHint, idempotentHint) are present despite being READ_ONLY operations. The server achieves the baseline for a functional tool set but falls short of production quality due to incomplete schema documentation and lack of LLM-optimized parameter guidance.
Clone a Git repository and return its directory structure in a tree format.
Read the contents of specified files in a given git repository.
Output schemas not documented. Both tools return unstructured responses (plain string for git_directory_structure, dict[str, str] for git_read_important_files) without formally declaring field types, structure, or pagination. LLMs cannot reliably parse or chain these outputs.
Parameter descriptions are present but minimal (1-2 sentences). They lack format constraints, validation rules, or contextual guidance. E.g., repo_url should specify valid formats (HTTPS/SSH), and file_paths should clarify encoding expectations and size limits.
No tool annotations present. Both tools are READ_ONLY operations but lack idempotentHint or readOnlyHint annotations, preventing clients from optimizing caching and retry behavior.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 56 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 41 | - | v1 |
Error handling returns generic error strings ('Error: {str(e)}' or 'Error: File not found') without recovery guidance. LLMs receive no actionable next steps when failures occur.
No pagination support for git_read_important_files. If file_paths array is large, the tool processes all items synchronously. No limit parameter, no batching guidance, and no partial failure reporting per file.
No input validation constraints documented. repo_url should enforce valid Git URL formats; file_paths should have length limits and character restrictions. Current code silently passes invalid input to system commands.