Skip to main content
Glama
seekingalpha

git-log-mcp

by seekingalpha

git_log

Trace when and why code changes happened by querying commit history with filters for paths, authors, dates, messages, and diffs. Get authorship context and intent signals for a specific module or identifier.

Instructions

Use this tool to investigate when a code/configuration change happened and infer why it happened from commit history. Choose it when you need commit timelines, authorship context, or intent signals from commit messages and diffs for a specific module or identifier. It is not for repository file content reads or branch manipulation; it is for history analysis and change attribution.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
revNoRevision selector or range, such as HEAD, main..feature, or A...B. Use this to narrow history to the branch, comparison window, or ancestry span relevant to your investigation before adding deeper filters.HEAD
grepNoCommit-message regex filters used to match intent cues such as ticket IDs, feature terms, bug labels, or 'revert'. Use this after path scoping to infer why changes happened; if results are still noisy, add author or date limits, then refine regex specificity.
skipNoNumber of matching commits to skip before returning results. Use this for pagination when reviewing long histories in batches without changing your filter strategy.
pathsNoPathspec list (files, directories, or glob patterns) used to scope commits to relevant code areas. Use this first to reduce noise; if results are noisy, add or tighten paths (for example `src/service/**` or `*.py`) before applying grep or diff filters.
sinceNoLower date bound (newer than) for commit traversal. Use this to focus on known release windows or incident periods after applying path/message filters.
untilNoUpper date bound (older than) for commit traversal. Use this with since to bracket a time window when narrowing investigations to specific milestones.
authorNoAuthor name/email pattern matched against commit identity metadata. Use this when ownership is known or suspected and you need to isolate one contributor after path/message filtering.
all_matchNoRequire all identity/message filters to match instead of allowing partial matches. Use this to tighten precision when combining author and grep filters that otherwise return overly broad results.
grep_diffNoPickaxe regex filter that finds commits whose added/removed lines match a structural code pattern. Use this when you know shape changes (signature edits, condition rewrites, renames) but not an exact token, and pair it with paths for precision.
max_countNoMaximum number of commits to return. Use smaller values for iterative investigation loops and increase only after filters are well scoped.
repo_pathNoPath to the git repository to query. Use this to point history analysis at the correct project root when your current working directory is not the target repo..
with_patchNoInclude the patch/diff for each listed commit. Enabling this increases output volume; use it when you need to inspect the actual code changes in commits. It is also useful for viewing changes in a single commit when paired with rev and max_count=1. To reduce output size, limit scope with paths and, whenever possible, pickaxe filters (search_string/grep_diff).
fixed_stringsNoTreats grep patterns as literal strings rather than regex. Use this for exact tokens (for example a ticket key) when regex interpretation adds accidental matches.
search_stringNoPickaxe string filter that returns commits where the occurrence count of the exact text changed in the diff. Use this to track introduction/removal of a stable identifier after scoping by paths; if too broad, add date/author filters.
extended_regexpNoEnables POSIX extended regex behavior for message grep patterns. Use this when grep patterns need richer regex constructs beyond basic matching semantics.
regexp_ignore_caseNoControls whether message grep matching ignores case differences. Use true for exploratory searches across inconsistent commit message style, and disable it when exact case carries meaning.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.5/5.0
Behavior4/5

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

Since no annotations are provided, the description carries the burden of behavioral disclosure. It communicates that the tool is analytical and history-focused, and it explicitly rules out content reads and branch manipulation, signaling a read-only investigation posture. It does not explicitly state 'does not modify the repository,' but the framing of 'history analysis and change attribution' plus the negatives makes the behavioral profile largely transparent.

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?

The description is two sentences with no filler. The primary action and purpose are front-loaded, the selection criteria appear in the second sentence, and the exclusion is stated immediately afterward. Every clause 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?

Despite having 16 parameters and no sibling tools, the description provides a complete high-level orientation: what the tool does, what signals it returns, when to use it, and what it is not for. The input schema covers all parameter details and the output schema exists, so nothing needed for correct selection and invocation is missing.

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

Parameters3/5

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

The tool description itself contains no parameter-specific guidance; all parameter semantics live in the input schema, which has 100% coverage and rich per-parameter usage notes. Per the rubric baseline, when schema coverage is high the description is not expected to repeat parameter details, so a 3 is appropriate.

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?

The description opens with a specific verb-plus-resource framing: 'investigate when a code/configuration change happened and infer why it happened from commit history.' It also enumerates the concrete signals it provides — commit timelines, authorship context, and intent signals — and closes by distinguishing itself from file content reads and branch manipulation. This makes the tool's identity unmistakable even without sibling tools listed.

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

Usage Guidelines5/5

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

The description explicitly states when to choose the tool ('Choose it when you need commit timelines, authorship context, or intent signals') and when not to choose it ('It is not for repository file content reads or branch manipulation'). This gives an agent clear selection criteria and exclusions with no inference required.

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

Deploy Server

Other Tools