diff
Compare a git revision to the working tree at symbol level, listing added, removed, moved, and body-changed symbols. Enables structured PR review instead of parsing line hunks.
Instructions
Symbol-level diff between a git revision and the working tree: lists added / removed / moved / body-changed symbols on the touched files. Prefer over git diff + manual scanning for PR review — git diff returns line hunks while this returns structured symbol records, so an agent can iterate over changed-functions directly instead of parsing unified-diff text.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| base | Yes | Git revision to compare against (e.g. main, HEAD~3, origin/main). Working tree is the new side. | |
| limit | No | Max changes to return | |
| exclude | No | Blacklist changes by path glob; wins over include (repeatable) | |
| include | No | Whitelist changes by path glob, gitignore syntax (repeatable) | |
| project_root | No | Absolute path to the project root (defaults to the MCP working directory) | |
| exclude_tests | No | Drop test files from the results (tests/ dirs, *_test.*, test_*.py, *.spec.ts, __tests__/, tests.rs, ...; same set as tests_for). Composes with include/exclude. Path-based only: Rust unit tests inside a `#[cfg(test)] mod tests` block of a non-test file are not excluded. |