Skip to main content
Glama

Git Diff

git_diff
Read-only

Retrieves unstaged and staged Git changes for an approved workspace directory, helping you review modifications before committing.

Instructions

Get git diff unstaged and staged changes for an approved workspace directory.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "git_diff"
  }
}

Input Schema

NameRequiredDescriptionDefault
project_pathNo

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.0.0

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The readOnlyHint annotation already declares the safety profile, so the description only needs to add context beyond that. It contributes the useful 'approved workspace directory' restriction, implying a permission/sandbox boundary, but says nothing about whether staged and unstaged output are returned separately, diff size limits, or behavior on a clean tree.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no redundant wording; the scope (staged and unstaged) arrives before the constraint. Nothing in it is filler, though the terseness shifts work onto other dimensions.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and annotations cover the read-only nature. However, with a totally undocumented parameter and no routing against git_status/git_log, a caller still has to guess how to invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% for the single project_path parameter, so the schema provides no meaning at all. The description's 'approved workspace directory' phrase gestures at the parameter but never states whether an empty default means the current directory or how the path is validated, leaving the only parameter effectively undocumented.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb+resource (git diff) and the scope (unstaged and staged changes), which separates it from a plain status or log call. It stops short of explicitly distinguishing itself from siblings like git_status or git_log, so an agent must infer the boundary.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit when-to-use guidance and no comparison to the closely related git_status and git_log siblings. The only constraint offered is 'approved workspace directory', which reads as a sandbox note rather than usage routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.