MCP server that provides tools to read and explore Git repositories from GitHub and GitLab
GitIngest MCP provides three tools with reasonable naming and complete schemas. All tools follow verb_noun naming convention (repository_tree_view, repository_read, find_repositories). Tool descriptions are present and explain purpose well (avg ~120 chars). Input schemas use proper JSON Schema with types and descriptions for all parameters. However, output schemas are completely undocumented, a critical gap. Tool descriptions lack dependency hints, prerequisites, or guidance on when to use one tool vs another. Parameter descriptions are adequate but could be more prescriptive about formats and constraints. Error handling is not visible in the provided code, raising concerns about recovery guidance. No tool annotations (readOnlyHint/destructiveHint/idempotentHint) despite all three being read-only operations. No pagination support visible in find_repositories despite it accepting a 'limit' parameter, total count and cursor fields should be documented or implemented. Repository_tree_view excludes/includes patterns are explained but no guidance on glob syntax or common patterns. No per-tool idempotence guarantees stated. Composition is sound, tools are single-responsibility and likely produce compatible output (all return repo metadata/file content/search results), but this is not verified from the provided source.
Search for repositories matching a query. Supported providers: github, gitlab
Read file content from a Git repository. Supported providers: github, gitlab
View the file structure of a Git repository recursively. Supported providers: github, gitlab
Output schemas completely undocumented. No visible documentation of what these tools return, LLMs cannot plan downstream operations or extract fields for chaining.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). All three tools are read-only but this is not declared in the schema, forcing LLMs to guess safety properties.
No pagination documentation or guidance in find_repositories description. Tool accepts 'limit' parameter but description does not explain whether results are paginated, total count returned, or how to get next page.
Error handling not visible in tool definitions. No guidance on retryability, user-fixable errors, or recovery paths. LLMs cannot self-correct or adapt when calls fail.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | C | 67 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 42 | - | v1 |
find_repositories description lacks dependency hints. Should explain: 'Use this to discover repos before calling repository_tree_view or repository_read.' Agents do not infer discovery prerequisites.
exclude_patterns and include_patterns descriptions mention 'comma-separated glob patterns' but do not link to glob syntax documentation or give examples of valid patterns (e.g., '*.pyc', 'node_modules/**', '**/test/*'). LLMs may hallucinate invalid patterns.
git_ref parameter accepts 'branch name', 'tag:name', or 'commit:sha' but no enum constraints or detailed syntax rules. LLMs may try 'tag/name' or 'commit/sha' instead of ':' prefix, causing failures.