Skip to main content
Glama

what_changed

Find what changed recently in a directory or agent session: reports commits, changed paths from git snapshots, or command categories from shell history.

Instructions

What changed in a directory, or in one agent session, recently. For an agent session with git snapshots (taken at its first prompt and at each turn end; Claude Code, Codex, OpenCode and Cursor), pass session_id to get what was observed: the commits made between the two snapshots, read from the repository now, and the paths whose git status changed or that those commits touched, with provenance observed — paths only, never contents, and changed in the repository, not necessarily by the agent. Without snapshots, and for a directory window, it returns the recorded commands and their exit codes (observed), then a category breakdown — writes, deletions, git, installs — inferred from the command text of the ones that exited 0, and lists the sessions in the window that have snapshots. A category is a reading of the command, not a confirmed change.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
hoursNoHow many hours back to look (default: 4)
limitNoMax rows in this page (default: 500)
detailNoAdd directory, duration, executor and session to each row (default: false)
offsetNoRows to skip; pass the response's next_offset to page forward
executorNoFilter by executor (e.g. claude-code, cursor)
directoryNoDirectory to analyze, including its subtree (defaults to all)
session_idNoOne agent session (e.g. claude-<id>, codex-<id>, opencode-<id>, cursor-<id>, or the agent's own id): report its git snapshots; directory, hours and executor are then ignored, and limit/offset page its files

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4/5.0
Behavior4/5

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

With no annotations the description carries the full burden, and it does so well: it labels provenance (observed vs. inferred), clarifies 'paths only, never contents', and warns that changes are 'in the repository, not necessarily by the agent'. It does not discuss permissions or rate limits, but for a read-style inspection tool the disclosure is substantial.

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

Conciseness4/5

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

The purpose is front-loaded in the first clause, and every sentence adds distinct information about return behavior. It is dense and runs as a single long paragraph with heavy semicolon use, which slightly hurts scannability but no sentence is filler.

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

Completeness4/5

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

With no output schema and no annotations, the description must explain returns, and it does: commits between snapshots, changed/touched paths with provenance, recorded commands with exit codes, and a category breakdown. Coverage is strong across both modes; only minor gaps like pagination interaction remain.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description adds real meaning: it explains that session_id causes directory, hours and executor to be ignored while limit/offset page its files. That override behavior is not evident from the schema alone.

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 opening sentence states a specific verb and resource with a timeframe: 'What changed in a directory, or in one agent session, recently.' The two distinct modes (directory window vs. session snapshots) are clearly delineated. It does not name any sibling tool, so an agent must infer how it differs from recent_commands or search_commands.

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

Usage Guidelines4/5

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

It gives concrete conditional guidance: pass session_id for a git-snapshot session, use the directory window otherwise, and explains what each mode returns. It does not explicitly name an alternative tool or state when not to use this one, leaving sibling selection to inference.

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