This server exhibits significant definition quality issues across multiple dimensions. Tool naming is inconsistent and sometimes vague (e.g., 'create_plan' lacks clarity on what it creates). Most critically, parameter descriptions are largely empty or minimal, the rubric baseline shows 100% of A+ tools have parameter descriptions, but here many parameters have empty description fields. Schema completeness is present but parameter documentation is severely lacking. Error handling is absent, tools return generic 'Success' strings with no guidance for LLM recovery. The codemap tool uses Bun-specific APIs (Bun.file) without documenting this dependency, reducing portability.
git add <files>
git add .
git checkout <name>
git commit -m <message>
git branch <name>
Create a plan for a users request, always present the plan to the user to confirm before proceeding
git branch --show-current
Parameter descriptions are empty or missing throughout the server. The rubric requires 100% of A+ tool parameters to have descriptions, but 'request' and 'projectAbsolutePath' in create_plan have empty description strings, and many git tool parameters have minimal descriptions.
Tool descriptions are too short and lack context for LLM selection. Descriptions like 'git status --short' (18 chars) and 'git push' (8 chars) do not explain WHEN to use the tool, what it returns, or whether it modifies state. Rubric baseline: avg 194 chars, p10=34, p90=392. These descriptions fall at the p10 extreme.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 43 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 0 | - | v1 |
git diff
git diff --staged
git push
git status --short
No error handling or recovery guidance. All tools return generic 'Success' or text output with no indication of what went wrong if a call fails. The rubric requires error responses to tell the LLM what to do next and categorize errors as retryable/user-fixable/fatal. Example: git push may fail due to authentication, rejected push, or network issues, the tool returns nothing to guide recovery.
Destructive operations (add, commit, push, create_branch, checkout_branch) have no dry-run, confirmation, or idempotent hint. The rubric pattern:confirmation-request states irreversible operations should support a confirmation step to prevent catastrophic errors. An agent could accidentally commit unvetted changes.
Missing toolAnnotations. No tool declares readOnlyHint, destructiveHint, or idempotentHint in the schema. Current MCP spec (2026-07-28) expects toolAnnotations to be present on each tool. Status, diff, diff_staged, current_branch should declare readOnlyHint=true; add, commit, push, create_branch, checkout_branch should declare destructiveHint=true.
'create_plan' tool name is vague. It does not clearly signal what kind of plan or for what purpose. Does it plan a deployment, a refactor, a feature? A more specific name like 'create_code_refactor_plan' or 'create_implementation_plan' would aid LLM selection.
Output schemas are not documented. Tools return text responses but do not declare a schema for the structured output (e.g., what fields are in the JSON returned by create_plan, what format git diff returns). Rubric requires 100% of A+ tools to have documented return types.
No input validation or sanitization visible. The rubric pattern:tool-gateway requires treating agent-provided input as untrusted. File paths in 'repoPath' and 'files' are passed directly to simpleGit without validation. An attacker could inject shell metacharacters or path traversal sequences (e.g., '../../../etc/passwd').
No permission checks or scope declarations. Git operations (push, commit, delete via force-push) should be gated behind permissions. The rubric pattern:scope-declaration requires tools to declare required permissions (e.g., 'write:repository', 'read:repository'). No such scoping is present.
create_plan tool depends on Bun runtime (Bun.file, promises) but this is not documented in the server description or tool description. Portability issue, tool will fail silently on Node.js or Deno runtimes.