Skip to main content
Glama

Blame file

gitlab_blame_file
Read-only

Identify which commit last changed each line of a file in GitLab. Provide file path, ref, and optional line range to see per-line authorship details.

Instructions

Per-line authorship for a file.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
refYesBranch, tag or SHA
file_pathYes
range_endNo
project_idNoProject id or URL-encoded path, e.g. `42` or `group/subgroup/project`. Falls back to GITLAB_PROJECT_ID.
range_startNoFirst line (1-based)
Behavior2/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is clear. However, the description adds no additional behavioral context: it does not disclose that it requires a ref, supports line-range filtering via range_start/range_end, or that it returns commit metadata (e.g., author, SHA, date). The description is essentially a restatement of the tool name, offering no new behavioral details beyond what the annotations already provide.

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 description is extremely concise—a single 5-word phrase—with no wasted words. It is front-loaded and easy to scan. However, it is so brief that it borders on under-specification; it is a fragment rather than a complete sentence, which slightly reduces clarity.

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

Completeness2/5

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

Given that there is no output schema, the description should explain the return value in more detail. It only says 'per-line authorship' without specifying what each line contains (e.g., author, commit SHA, line content). It also does not mention the need for a ref or the optional range parameters. With 5 parameters and a read operation, this description leaves significant gaps for an agent invoking the tool.

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 coverage is 60% (ref, project_id, and range_start described; file_path and range_end missing descriptions). The description 'Per-line authorship for a file' adds no meaning to any parameter. It does not clarify that file_path identifies the file, that ref selects the branch/tag/SHA, or how range_start/end behave. Given the moderate schema coverage and zero parameter explanation in the description, the value added beyond the schema is minimal.

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 'Per-line authorship for a file' clearly states the tool's purpose: it attributes each line to an author. It uses a specific verb ('blame') and resource (file), and it distinguishes itself from siblings like gitlab_get_file (which fetches raw content) and gitlab_list_commits (which lists commits). However, it lacks a verb phrase like 'Returns' or 'Shows,' making it more a noun phrase than a full explicit statement.

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 guidance on when to use this tool versus alternatives. The description does not mention that it is useful for identifying the last commit that touched each line, nor does it contrast with gitlab_get_file or gitlab_compare. A user seeing only this description would not know if they should choose blame over other file/commit tools.

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

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/amalychev/gitlab-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server