MCP server for Git operations using Spring AI and JGit
This server has critical definition quality gaps. Tool descriptions are minimal (4-20 chars), most parameter descriptions are null/missing, and input schemas lack proper documentation. While tools are registered with @Tool annotations and use Spring AI framework, the definitions do not meet production standards. No output schemas are documented. Error handling throws RuntimeException without guidance. The server uses Spring AI's MethodToolCallbackProvider, suggesting tool registration is present, but parameter documentation is severely deficient.
add file to git
commit file to git
get diff
push file to git
仓库状态
Parameter descriptions are null or missing for all tools except git_status. LLMs cannot infer parameter meaning from names alone (e.g., 'filePath' could be relative or absolute, required or optional). This violates the pattern:tool-description requirement that every parameter must have a non-empty description.
Tool descriptions are too short (4-20 characters) and lack context. 'add file to git' and 'get diff' do not explain WHEN to use the tool, what it returns, or prerequisites. Descriptions should be 50-200 chars and answer: What does it do? When should the LLM call it? What does it return?
No output schemas are documented. LLMs cannot plan downstream tool calls or extract structured data from responses. Tools return String (statusInfo, dirCache.toString(), commit.toString(), pushResults.toString(), diffEntryList.toString()), but the response structure is not declared.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 29 | 2026-07-28+ | v2 |
Error handling throws RuntimeException without recovery guidance. Errors like 'IOException | GitAPIException' are caught and re-thrown as RuntimeException with no message context. LLMs receive no actionable error classification (retryable vs. fatal) or next steps.
No input validation or constraint documentation. Parameters like 'repoPath' and 'filePath' have no format constraints, length limits, or validation rules. LLMs may pass invalid paths (e.g., relative paths when absolute are required, or non-existent directories).