Skip to main content
Glama

List commits

list_commits
Read-only

Lists repository commits newest first, with optional branch, tag, commit, or file path filters, returning sha, subject, author, date, and signature status for quick history review.

Instructions

List commits in a repository (owner/repo), newest first; optional sha (branch, tag or commit to start from; defaults to the default branch) and path to filter by file. Auto-paginated. Slimmed to sha, subject line, author, date and signature state — the raw objects carry base64 signature and payload blobs, plus per-commit files and stats, that dwarf everything worth reading. signature is "verified", "unverified" or "unsigned": unsigned means no signature was presented at all, which is a different thing from one that failed to verify.

Input Schema

NameRequiredDescriptionDefault
shaNoBranch, tag or commit to start from. Defaults to the repository's default branch. A ref the forge cannot resolve answers 404.
pageNo1-based page number.
pathNoLimit to commits touching this path.
repoYesRepository name.
limitNoResults per page.
ownerYesRepository owner — user or organization.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.22.0

TDQS

A4.4/5.0
Behavior5/5

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

Goes well past the readOnly/openWorld annotations: it discloses auto-pagination, that results are deliberately slimmed to five fields, and why (raw objects carry base64 signature/payload blobs plus files and stats). The explanation that 'unsigned' differs from a failed verification is a genuine semantic disclosure an agent could not infer elsewhere.

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?

Front-loads purpose and ordering, then options, then output shape — a sensible progression with no filler. The two-sentence signature aside is slightly long for one field, but it prevents a real misinterpretation, so it largely earns its place.

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

Completeness5/5

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

With no output schema, the description carries the return-value burden and does so: it enumerates the returned fields, explains the slimming rationale, and covers pagination and the sha default. An agent has enough to call this correctly and interpret the result without further guessing.

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; the description adds a little by clarifying that sha accepts a branch, tag, or commit and defaults to the default branch, and that path filters by file. It does not address the interaction between 'auto-paginated' and the explicit page/limit parameters, which is the one point an agent might want clarified.

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

Purpose5/5

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

States a specific verb and resource ('List commits in a repository (owner/repo)') plus ordering ('newest first') and filter scope, which cleanly separates it from the singular get_commit sibling. An agent can tell immediately that this is the enumeration endpoint rather than a single-commit fetch.

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

Usage Guidelines3/5

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

Usage is implied through the parameter narrative (start from a sha, filter by path, defaults to the default branch) but there are no explicit when-to-use/when-not statements or named alternatives. Nothing tells the agent, for example, when to prefer get_commit or how this relates to list_pull_request_files for change inspection.

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