mcp-git
[ tools: 12 ][ checks: 11 ][ latency: 12ms ]
79/100(C)
uvx mcp-server-git
check breakdown
✓Tools exposed — Server exposed 12 tools.
• git_status
• git_diff_unstaged
• git_diff_staged
• git_diff
• git_commit
• git_add
• git_reset
• git_log
• git_create_branch
• git_checkout
• git_show
• git_branch
✓Input schemas valid — All tools have a valid JSON-Schema input definition.
!Input schema quality — 34 schema-quality issue(s) across 12 tool(s).
git_status.repo_path: parameter has no description
git_status: inputSchema.additionalProperties is not set to false (extra args pass through silently)
git_diff_unstaged.repo_path: parameter has no description
git_diff_unstaged.context_lines: parameter has no description
git_diff_unstaged: inputSchema.additionalProperties is not set to false (extra args pass through silently)
git_diff_staged.repo_path: parameter has no description
git_diff_staged.context_lines: parameter has no description
git_diff_staged: inputSchema.additionalProperties is not set to false (extra args pass through silently)
git_diff.repo_path: parameter has no description
git_diff.target: parameter has no description
git_diff.context_lines: parameter has no description
git_diff: inputSchema.additionalProperties is not set to false (extra args pass through silently)
git_commit.repo_path: parameter has no description
git_commit.message: parameter has no description
git_commit: inputSchema.additionalProperties is not set to false (extra args pass through silently)
git_add.repo_path: parameter has no description
git_add.files: parameter has no description
git_add: inputSchema.additionalProperties is not set to false (extra args pass through silently)
git_reset.repo_path: parameter has no description
git_reset: inputSchema.additionalProperties is not set to false (extra args pass through silently)
git_log.repo_path: parameter has no description
git_log.max_count: parameter has no description
git_log: inputSchema.additionalProperties is not set to false (extra args pass through silently)
git_create_branch.repo_path: parameter has no description
git_create_branch.branch_name: parameter has no description
git_create_branch.base_branch: parameter has no description
git_create_branch: inputSchema.additionalProperties is not set to false (extra args pass through silently)
git_checkout.repo_path: parameter has no description
git_checkout.branch_name: parameter has no description
git_checkout: inputSchema.additionalProperties is not set to false (extra args pass through silently)
git_show.repo_path: parameter has no description
git_show.revision: parameter has no description
git_show: inputSchema.additionalProperties is not set to false (extra args pass through silently)
git_branch: inputSchema.additionalProperties is not set to false (extra args pass through silently)
→ Declare `required` for every schema that has properties, so agents know which params are mandatory.
→ Give every property a `description` and a concrete `type` (avoid bare `{}` placeholders).
→ Set `additionalProperties: false` on the top-level inputSchema so models can't silently pass extra, unvalidated arguments.
!Output schemas — No tools declare an outputSchema.
→ Optional: declare outputSchema for tools with structured results so agents can validate/parse output reliably.
✓Duplicate tool names — All tool names are unique.
✓Tool naming — All tool names use spec-legal characters.
!Descriptions — 26 description issue(s) found.
git_status.repo_path: parameter has no description
git_diff_unstaged.repo_path: parameter has no description
git_diff_unstaged.context_lines: parameter has no description
git_diff_staged.repo_path: parameter has no description
git_diff_staged.context_lines: parameter has no description
git_diff.repo_path: parameter has no description
git_diff.target: parameter has no description
git_diff.context_lines: parameter has no description
git_commit.repo_path: parameter has no description
git_commit.message: parameter has no description
git_add.repo_path: parameter has no description
git_add.files: parameter has no description
git_reset.repo_path: parameter has no description
git_log: description very short ("Shows the commit logs")
git_log.repo_path: parameter has no description
git_log.max_count: parameter has no description
git_create_branch.repo_path: parameter has no description
git_create_branch.branch_name: parameter has no description
git_create_branch.base_branch: parameter has no description
git_checkout: description very short ("Switches branches")
git_checkout.repo_path: parameter has no description
git_checkout.branch_name: parameter has no description
git_show.repo_path: parameter has no description
git_show.revision: parameter has no description
git_branch: description very short ("List Git branches")
git_branch: description adds nothing beyond the tool name ("List Git branches")
→ Descriptions are the model's only guide to when/how to call a tool — treat them as prompt engineering.
→ Describe every tool and every parameter, including units, formats, and constraints.
→ Each tool's description should say something the name doesn't, and should be unique to that tool.
!Tool annotations — Annotation coverage 80% (48/60 hint fields set).
Some tools set a few hints but not all of title/readOnlyHint/destructiveHint/idempotentHint/openWorldHint.
→ Add annotations: title, readOnlyHint, destructiveHint, idempotentHint, openWorldHint.
→ These let clients gate risky calls and give agents/users a friendly display name — optional but valuable.
!Tool titles — 12 of 12 tool(s) have no title.
• git_status: no top-level title (or annotations.title)
• git_diff_unstaged: no top-level title (or annotations.title)
• git_diff_staged: no top-level title (or annotations.title)
• git_diff: no top-level title (or annotations.title)
• git_commit: no top-level title (or annotations.title)
• git_add: no top-level title (or annotations.title)
• git_reset: no top-level title (or annotations.title)
• git_log: no top-level title (or annotations.title)
• git_create_branch: no top-level title (or annotations.title)
• git_checkout: no top-level title (or annotations.title)
• git_show: no top-level title (or annotations.title)
• git_branch: no top-level title (or annotations.title)
→ Declare a top-level `title` on each tool — it gives clients a friendly display name distinct from the machine-readable `name`.
→ `annotations.title` (the older location) is also accepted, but the top-level `title` field is now the spec-preferred place for it.
!Server instructions — No top-level instructions declared.
→ Declare instructions to guide agents on when/how to use this server.
→ Return a non-empty `instructions` string in your InitializeResult — most SDKs let you set this alongside serverInfo.
✓Handshake + list latency — tools/list responded in 12ms.
add the badge
Paste into your README:
[](https://scoremcp.dev/servers/mcp-server-git)