Simple MCP server for fetching the remote git repository content as a structured text file
Four tools with complete input schemas and descriptions, but significant quality gaps. Tool names follow verb_noun pattern (get_*, check_*), which is good. However, descriptions are verbose (200-400+ chars) and lack LLM-optimized structure. No output schemas documented. Parameters lack constraints (enums, ranges). Error handling is minimal, no recovery guidance or categorization. No tool annotations (readOnlyHint, idempotentHint). The use_token parameter exposes authentication logic that should be server-side. Overall: functional but below production baseline.
Check if a GitLab token is configured and valid.
Get statistics about a Git repository without downloading all content. This tool clones a git repository from the provided URL, analyzes its structure, and returns statistical information useful for LLM processing, including: - Estimated token count - Total file count - Repository structure Args: repo_url (str): The URL of the Git repository to clone use_token (bool, optional): Whether to use the GitLab token for authentication. Defaults to True. Returns: str: A formatted text representation of the repository statistics Raises: GitCommandError: If there is an error during the git clone operation Exception: For any other errors that occur during processing
Fetch the entire content of a Git repository as a structured text file. This tool clones a Git repository from the provided URL, processes all files, and returns the complete repository structure and content as a single formatted text. The repository is cloned with depth=1 for efficiency. Binary files and files matching .gitignore patterns are automatically excluded. Args: repo_url (str): The URL of the Git repository to clone. use_token (bool, optional): Whether to use the GitLab token for authentication. Defaults to True. Returns: str: A formatted text representation of the repository structure and content, or an error message if retrieval fails.
Fetch the content of a single specified file from a Git repository. This tool clones a Git repository from the provided URL, reads the content of the specified file, and returns it as a string. The repository is cloned with depth=1 for efficiency. If the file does not exist or an error occurs, an appropriate error message is returned. Args: repo_url (str): The URL of the Git repository to clone. file_path (str): The relative path to the file within the repository. use_token (bool, optional): Whether to use the GitLab token for authentication. Defaults to True. Returns: str: The content of the specified file, or an error message if retrieval fails.
No output schemas documented. LLMs cannot plan downstream calls or extract structured data. Tools return free-text strings; agent must parse unstructured output.
use_token parameter exposes authentication logic as a tool parameter. Secrets/auth decisions should be server-side via environment variables or vault, not exposed to LLM.
Descriptions are verbose (200-400+ chars) and lack LLM-optimized structure. Missing WHAT/WHEN/WHY clarity. Baseline for A+ tools is 50-200 chars with explicit action and use case.
No error handling guidance. Errors return raw exception messages (GitCommandError, generic Exception). LLM cannot determine if error is retryable, user-fixable, or fatal.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 50 | 2026-07-28+ | v2 |
No tool annotations (readOnlyHint, idempotentHint). All tools are read-only and idempotent, but this is not declared. Agents cannot infer safety properties.