Skip to main content
Glama
Alosies

GitLab MCP Server

by Alosies

GitLab MCP Server

A fully typed TypeScript Model Context Protocol (MCP) server for comprehensive GitLab integration.

Quick Start

1. Get a GitLab Token

Create a GitLab Personal Access Token with api, read_user, and read_repository scopes.

2. Add to Claude Desktop

Add to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):

{
  "mcpServers": {
    "gitlab": {
      "command": "npx",
      "args": ["-y", "@alosies/gitlab-mcp-server"],
      "env": {
        "NPM_CONFIG_TOKEN": "your-gitlab-token-here"
      }
    }
  }
}

3. Start Using

Ask Claude things like:

  • "List my GitLab projects"

  • "Show me open issues in myproject"

  • "Create a merge request from feature-branch to main"

  • "Comment on MR #42 in myproject"

  • "Show me MRs where I'm assigned as reviewer"

  • "Mark MR #15 as ready for review"

  • "Get the logs for job #123"

Related MCP server: GitLab MCP Server

Features

  • Projects: List, get details

  • Issues: List, get, create

  • Merge Requests: List, get, create, update with full review workflow support

    • Comments & Discussions: Create notes, threaded discussions, inline code comments

    • Review Management: Resolve/unresolve discussions, mark as draft/ready

    • Filtering: Filter by reviewer, assignee, author

    • Templates: Use GitLab MR templates for descriptions

  • Pipelines: List, get, create, retry, cancel, delete

  • Jobs: List jobs, get logs with advanced trace options

  • Repository: List branches, get commits

  • User: Get current user info

  • TypeScript: Fully typed with comprehensive type definitions

Documentation

Self-Hosted GitLab

For self-hosted GitLab instances, add your base URL:

{
  "mcpServers": {
    "gitlab": {
      "command": "npx",
      "args": ["-y", "@alosies/gitlab-mcp-server"],
      "env": {
        "NPM_CONFIG_TOKEN": "your-token",
        "GITLAB_BASE_URL": "https://gitlab.mycompany.com"
      }
    }
  }
}

Support

License

MIT License

Available Tools

50 tools
approve_mrB

Approve a merge request. The authenticated user must have permission to approve.

ParametersJSON Schema
NameRequiredDescriptionDefault
shaNoSHA of the HEAD commit. Approval fails if this does not match the current HEAD.
project_idYesProject ID or path
approval_passwordNoCurrent password of the authenticated user. Required if "Require user re-authentication" is enabled.
merge_request_iidYesMerge request internal ID

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations, the description must fully disclose behavioral traits. It mentions the permission requirement, but does not explain what happens upon approval (e.g., state change, notifications) or potential side effects. Key details from the schema, like SHA verification and password requirements, are omitted.

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?

Two sentences, minimal and to the point. No redundant information. Every word is necessary and valuable.

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?

Despite having 4 parameters and no output schema, the description fails to cover return values, error scenarios, or operational context (e.g., idempotency, authorization details beyond permission). It is too brief for a tool that modifies state.

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?

Schema coverage is 100%, so the baseline is 3. The description adds no additional meaning beyond the schema's own parameter descriptions, which are already clear. No improvement or clarification provided.

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 clearly states the action ('Approve') and the resource ('a merge request'), making the purpose unambiguous. It also mentions a permission requirement, which adds specificity. This effectively distinguishes the tool from siblings like 'unapprove_mr'.

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?

No explicit guidance on when to use this tool versus alternatives (e.g., unapprove_mr, update_merge_request). The description only notes a permission prerequisite, but does not provide contextual cues or exclusions.

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

cancel_pipelineB

Cancel a running pipeline

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesProject ID or path
pipeline_idYesPipeline ID

TDQS

B3.1/5.0
Behavior2/5

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

No annotations exist, so the description must disclose behavioral traits. It only states 'Cancel a running pipeline' without explaining side effects, permissions required, or what happens to associated jobs. This is insufficient for safe use.

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?

A single, concise sentence with no unnecessary words. The description is appropriately front-loaded and efficient.

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

Completeness3/5

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

Given the tool's simplicity and the presence of a complete input schema, the description is minimally adequate. However, it omits useful context such as idempotency, error handling, or post-cancellation state.

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?

Input schema has 100% description coverage, so the schema already documents the parameters. The description adds no additional meaning beyond the schema.

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 clearly states the action (cancel) and the resource (a running pipeline). It distinguishes from create, list, and get operations but does not explicitly differentiate from retry_pipeline or delete_pipeline.

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?

No guidance is provided on when to use cancel_pipeline versus retry_pipeline, delete_pipeline, or other pipeline operations. The agent has no context for selecting this tool over alternatives.

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

create_issueC

Create a new issue

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYesIssue title
labelsNoComma-separated list of labels
project_idYesProject ID or path
descriptionNoIssue description
assignee_idsNoArray of user IDs to assign
milestone_idNoMilestone ID

TDQS

C2.6/5.0
Behavior2/5

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

With no annotations, the description fails to disclose behavioral traits like permissions, side effects, or whether the operation is idempotent. 'Create a new issue' is insufficient for a creation tool.

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 a single concise sentence with no wasted words. However, it may be too brief given the tool's complexity, but it is well-structured.

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?

The tool has 6 parameters and no output schema. The description provides no information about return values, expected behavior, or prerequisites, making it incomplete for effective use.

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?

Schema coverage is 100%, so the input schema already describes all parameters. The description does not add any additional meaning beyond what is in the schema.

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

Purpose3/5

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

The description 'Create a new issue' clearly states the action and resource, but it does not distinguish this tool from siblings like list_issues or get_issue, lacking scope or uniqueness.

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?

No guidance is provided on when to use this tool versus alternatives such as update_issue or create_merge_request. The description offers no context for tool selection.

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

create_merge_requestC

Create a new merge request

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYesMerge request title
labelsNoComma-separated list of labels
project_idYesProject ID or path
descriptionNoMerge request description
assignee_idsNoArray of user IDs to assign
milestone_idNoMilestone ID
reviewer_idsNoArray of user IDs to review
source_branchYesSource branch name
target_branchYesTarget branch name

TDQS

C2.8/5.0
Behavior2/5

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

No annotations are provided, and the description offers no behavioral insights beyond the creation action. It does not disclose side effects, permissions required, return values, or error conditions.

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

Conciseness3/5

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

The description is a single sentence that is not verbose, but it lacks structure or additional detail. It is acceptably concise but not exemplary.

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 the moderate complexity (9 parameters) and lack of output schema, the description is insufficient. It does not help differentiate from many sibling tools or provide necessary context for correct invocation.

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 input schema has 100% coverage with descriptions for all 9 parameters, so the tool name and description do not need to add extra meaning. However, the description adds no value beyond the schema, meeting the baseline.

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 states 'Create a new merge request', which clearly indicates the verb and resource. It distinguishes from sibling tools like update_merge_request and list_merge_requests, though it is essentially the same as the tool name.

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?

No guidance on when to use this tool versus alternatives such as create_issue or update_merge_request. No context about prerequisites or typical usage scenarios.

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

create_mr_discussionA

Create a new discussion on a merge request. Can be a general discussion or an inline comment on the diff. Supports embedding images/files via attachments parameter.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYesThe content of the discussion (supports Markdown). Use {{placeholderName}} syntax to embed attachments.
positionNoPosition for inline/diff comments. Required fields: base_sha, start_sha, head_sha, old_path, new_path. Use new_line for additions, old_line for deletions, both for context lines.
project_idYesProject ID or path
attachmentsNoMap of placeholder names to local file paths. Each file is uploaded and {{placeholderName}} in body is replaced with the GitLab markdown. Example: {"screenshot": "/tmp/screenshot.png"} replaces {{screenshot}} with ![screenshot](/uploads/...)
merge_request_iidYesMerge request internal ID

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden. It discloses that the tool can create general or inline discussions and supports attachments. However, it does not mention any side effects (e.g., notifications), permissions required, or response behavior. The description is adequate but lacks depth.

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, front-loaded with the primary purpose, and every sentence contributes value. No wasted words.

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

Completeness3/5

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

Given no output schema and 5 parameters (including a nested object), the description is functional but incomplete. It does not explain what the API returns (e.g., discussion ID) or any error behavior. For a create tool, more detail on response would be beneficial.

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 input schema has 100% description coverage, so the baseline is 3. The description adds context by explaining how attachments work via the {{placeholderName}} syntax and that the position parameter is for inline comments. However, it does not add significant meaning beyond what the schema already provides for each parameter.

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 clearly states the tool creates a new discussion on a merge request and distinguishes between general discussion and inline comment on the diff. It highlights the attachment embedding feature, which helps differentiate from other discussion-related tools. However, it does not explicitly differentiate from siblings like create_mr_discussion_note or reply_to_mr_discussion.

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?

The description indicates that the tool can be used for either general discussion or inline comments, providing context on when to use it. However, it does not provide explicit guidance on when not to use this tool (e.g., when replying to an existing discussion) or mention alternatives like reply_to_mr_discussion.

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

create_mr_discussion_noteB

Add a new note to an existing merge request discussion thread

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYesThe content of the note (supports Markdown)
project_idYesProject ID or path
discussion_idYesThe ID of the discussion to add the note to
merge_request_iidYesMerge request internal ID

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations provided, the description bears full responsibility for behavioral disclosure. It fails to mention any side effects, required permissions, or response format, leaving the agent without critical context.

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 a single, front-loaded sentence that efficiently conveys the core purpose. It could be slightly expanded without losing conciseness.

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?

For a tool with 4 required parameters and no annotations or output schema, the description is incomplete. It omits important details like return value, error conditions, and whether the note is appended or inserted.

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?

Schema coverage is 100% and each parameter has a clear description. The tool description adds no extra meaning beyond what the schema provides, so it meets the baseline of 3.

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 clearly states the verb 'Add a new note' and the resource 'merge request discussion thread', distinguishing it from sibling tools like create_mr_note (which adds a note to the MR itself) and reply_to_mr_discussion (which may have a different mechanism).

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?

No guidance is given on when to use this tool versus its siblings, such as reply_to_mr_discussion or create_mr_note. Prerequisites like the existence of the discussion are not mentioned.

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

create_mr_noteA

Add a new top-level comment to a merge request. Supports embedding images/files via attachments parameter.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYesThe content of the comment (supports Markdown). Use {{placeholderName}} syntax to embed attachments.
project_idYesProject ID or path
attachmentsNoMap of placeholder names to local file paths. Each file is uploaded and {{placeholderName}} in body is replaced with the GitLab markdown. Example: {"screenshot": "/tmp/screenshot.png"} replaces {{screenshot}} with ![screenshot](/uploads/...)
merge_request_iidYesMerge request internal ID

TDQS

A3.8/5.0
Behavior3/5

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

No annotations provided, so description carries burden. It discloses embedding files via attachments but does not mention side effects, permissions, or safety. Not contradictory but insufficient.

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?

Two concise sentences, front-loaded with purpose. No unnecessary words or repetition.

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?

Given no output schema, description adequately covers functionality. Lacks return value info but tolerable for a simple creation tool. Sibling list is large but context is clear.

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?

Schema covers all 4 parameters with descriptions (100% coverage). Description adds minimal value by reiterating attachments embedding, which is already clear in schema.

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?

Description clearly states the tool adds a top-level comment to a merge request, using specific verb and resource. It distinguishes from siblings like create_mr_discussion_note by specifying 'top-level'.

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?

No explicit when-to-use or alternatives. Implies usage for top-level comments but does not mention when to use discussion notes or replies. Lacks guidance on when not to use.

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

create_pipelineD

Create a new pipeline

ParametersJSON Schema
NameRequiredDescriptionDefault
refYesBranch or tag name
variablesNoPipeline variables
project_idYesProject ID or path

TDQS

D1.7/5.0
Behavior1/5

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

No annotations provided, and the description fails to disclose any behavioral traits such as mutability, side effects, permissions, or what happens upon creation. The word 'create' implies mutation but no further context.

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

Conciseness2/5

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

The description is extremely concise but underspecified. It lacks essential details, making it more of a placeholder than a concise useful description.

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

Completeness1/5

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

With 3 parameters, no output schema, and no annotations, the description is completely inadequate. It does not explain return values, behavior, or usage context.

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?

Schema description coverage is 100%, so the baseline is 3. The description adds no extra meaning beyond the schema, but it does not detract.

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

Purpose2/5

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

The description states 'Create a new pipeline,' which is a verb+resource, but it's vague and does not distinguish from sibling pipeline tools like cancel_pipeline or delete_pipeline. It borders on tautology.

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

Usage Guidelines1/5

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

No guidance on when to use this tool vs alternatives. Siblings include many pipeline-related tools (e.g., retry_pipeline, get_pipeline) with no mention of selection criteria.

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

delete_mr_discussion_noteC

Delete a note from a merge request discussion

ParametersJSON Schema
NameRequiredDescriptionDefault
note_idYesThe ID of the note to delete
project_idYesProject ID or path
discussion_idYesThe ID of the discussion
merge_request_iidYesMerge request internal ID

TDQS

C2.9/5.0
Behavior2/5

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

The description merely states the deletion action without elaborating on effects (e.g., permanence, permissions, impact on the discussion). With no annotations, the description should carry this burden but fails to do so.

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 a single, clear sentence that immediately conveys the tool's purpose without extraneous words.

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 the tool requires 4 parameters and has no output schema or annotations, the description should provide more context on behavior, permissions, or results, but it remains minimal.

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 input schema has 100% description coverage for parameters, so the description does not need to add much. It adds no extra meaning beyond the schema, yielding a baseline score.

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 clearly states the action 'Delete' and the resource 'note from a merge request discussion'. However, it does not differentiate from the sibling tool 'delete_mr_note', which might have overlapping functionality.

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?

No guidance is provided on when to use this tool versus alternatives like 'delete_mr_note' or other discussion-related tools.

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

delete_mr_noteA

Delete a top-level note (comment) from a merge request

ParametersJSON Schema
NameRequiredDescriptionDefault
note_idYesThe ID of the note to delete
project_idYesProject ID or path
merge_request_iidYesMerge request internal ID

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are provided, so the description bears full responsibility. It only states the action without disclosing behavioral details like permissions, permanence, or error conditions.

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?

Single short sentence, no waste, front-loaded with the action and resource.

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

Completeness3/5

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

For a simple delete tool, the description is adequate but could benefit from mentioning return values or prerequisites. It is not incomplete, but lacks depth.

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?

Schema description coverage is 100%, so the baseline is 3. The description does not add extra meaning beyond what the schema already provides.

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 clearly states the action (delete), the resource (top-level note/comment), and the container (merge request), distinguishing it from sibling tools like delete_mr_discussion_note.

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?

No explicit guidance on when to use this tool versus alternatives, though the description implies it is for top-level notes only. The sibling list provides context, but the description lacks direct usage instructions.

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

delete_pipelineC

Delete a pipeline

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesProject ID or path
pipeline_idYesPipeline ID

TDQS

C2/5.0
Behavior2/5

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

With no annotations, the description carries full burden for behavioral disclosure. It only states 'delete' without describing consequences, irreversibility, or whether cascading effects occur. Minimal transparency.

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

Conciseness2/5

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

The description is extremely short but under-specified. It sacrifices informativeness for brevity, making it less helpful than a more detailed but still concise description.

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?

For a simple delete tool with two required params, the description omits critical context such as post-conditions, error scenarios, or required permissions. Low completeness.

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?

Input schema covers 100% of parameters with descriptions, so baseline is 3. The description adds no additional meaning beyond the schema.

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

Purpose2/5

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

The description 'Delete a pipeline' is a tautology—it restates the tool name without adding specificity or differentiating from similar tools like cancel_pipeline. It does not clarify scope or effects.

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

Usage Guidelines1/5

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

No guidance is provided on when to use this tool vs. alternatives (e.g., cancel_pipeline, which may have different semantics). No prerequisites or context for safe invocation.

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

get_branch_diffsB

Get the changes/diffs between two branches or commits in a GitLab project

ParametersJSON Schema
NameRequiredDescriptionDefault
toYesThe target branch or commit SHA to compare to
fromYesThe base branch or commit SHA to compare from
straightNoComparison method: false for "..." (default), true for "--"
project_idYesProject ID or path

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are provided, so the description must disclose behavioral traits. It only states the operation is 'Get' (read) but does not mention auth requirements, rate limits, side effects, or return format. For a read operation with no annotations, this is insufficient.

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 a single sentence of 10 words, perfectly concise and front-loaded with the core purpose. Every word earns its place without redundancy.

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?

With 4 parameters, no output schema, and no annotations, the description is very brief. It does not explain return values, pagination, error scenarios, or what happens when branches do not exist. Given the tool's complexity, more detail is needed for completeness.

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?

Schema description coverage is 100%, so the baseline is 3. The description adds no extra meaning beyond the schema; it simply restates that diffs are between branches/commits, which aligns with 'from' and 'to' parameters. No additional semantics for 'straight' or 'project_id' are provided.

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 explicitly states 'Get the changes/diffs between two branches or commits in a GitLab project', which clearly defines the verb and resource. It distinguishes from siblings like get_commit_diff (single commit diff) and get_merge_request_diffs (MR-specific diffs) by specifying branches/commits as the subject.

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?

The description implies usage for comparing two branches or commits but provides no explicit guidance on when to prefer this tool over alternatives like get_commit_diff or get_merge_request_diffs. No exclusions or context are given.

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

get_commitB

Get details of a specific commit

ParametersJSON Schema
NameRequiredDescriptionDefault
shaYesThe commit hash or name of a repository branch or tag
statsNoInclude commit stats (additions, deletions)
project_idYesProject ID or path

TDQS

B3.1/5.0
Behavior2/5

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

No annotations provided. Description does not disclose what details are returned (e.g., message, author, stats) or other behavioral traits like idempotency.

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?

Single short sentence, no fluff. Could be slightly more informative but maintains conciseness.

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?

No output schema, no annotations. Description insufficiently explains what 'details' includes. For a simple tool, it may be minimally adequate but lacks completeness.

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?

Schema coverage is 100% (all parameters described). Description adds no extra meaning beyond the schema, so baseline score applies.

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?

Clearly states it gets details of a specific commit. Distinguishes from siblings like get_project_commits (list) and get_commit_diff (diff).

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?

No guidance on when to use vs alternatives. Does not mention prerequisites or exclusions.

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

get_commit_diffB

Get changes/diffs of a specific commit

ParametersJSON Schema
NameRequiredDescriptionDefault
shaYesThe commit hash or name of a repository branch or tag
project_idYesProject ID or path

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations, the description must disclose behavior. It only states it's a read operation ('Get'), but provides no details on output format, pagination, or authentication requirements. The term 'diffs' is vague without specifying structure.

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?

A single, concise sentence that immediately conveys the tool's purpose with no unnecessary words or repetition.

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 the lack of output schema and annotations, the description fails to provide sufficient context about what the diff contains (e.g., files, line changes) or how it differs from similar tools. It is too minimal for an agent to fully understand the output.

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?

Schema coverage is 100% and already describes both parameters (sha, project_id). The description adds no extra context beyond the schema, so it meets the baseline for high coverage.

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 clearly states the verb 'Get' and the resource 'changes/diffs of a specific commit'. It effectively distinguishes from sibling tools such as get_commit (no diffs) and get_branch_diffs (diffs for a branch).

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?

No guidance is provided on when to use this tool versus alternatives like get_branch_diffs or get_merge_request_diffs. There is no mention of prerequisites or conditions.

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

get_issueB

Get details of a specific issue

ParametersJSON Schema
NameRequiredDescriptionDefault
issue_iidYesIssue internal ID
project_idYesProject ID or path

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, and the description only says 'get details' without disclosing behavior such as permissions needed, rate limits, or whether it is a read-only operation.

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 a single sentence of 6 words, front-loading the purpose without any redundant information.

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

Completeness3/5

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

Without an output schema, the description could hint at what details are returned, but it does not. However, for a simple get tool, the purpose is clear and the schema covers parameters, making it minimally adequate.

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?

Schema description coverage is 100%, so baseline is 3. The description adds no extra meaning about the parameters beyond what the schema already provides.

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 clearly states the verb 'get' and resource 'issue', specifying it is for a specific issue, distinguishing it from list_issues which retrieves multiple issues.

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?

The description provides no guidance on when to use this tool versus alternatives like list_issues or other get tools, nor does it mention any prerequisites or when not to use it.

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

get_job_logsB

Get the log (trace) file of a specific job

ParametersJSON Schema
NameRequiredDescriptionDefault
job_idYesJob ID
project_idYesProject ID or path

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description alone must disclose behavioral traits. It only states it 'Get's a file, implying a read operation, but provides no details on error handling, permissions, or return format. Minimal transparency.

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 a single sentence with no unnecessary words. It is concise and front-loaded, earning its place.

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

Completeness3/5

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

For a simple tool with two parameters and no output schema, the description is adequate but lacks details like file format or what the log contains. It covers the basic purpose but is not rich in context.

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?

Schema coverage is 100%, so the schema already describes both parameters. The description adds no additional meaning beyond what the schema provides, so a baseline score of 3 is appropriate.

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 clearly states the verb 'Get' and the resource 'log (trace) file of a specific job', making the purpose clear. However, it does not differentiate from the sibling tool 'get_job_trace', which might be identical.

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?

No guidance is provided on when to use this tool versus alternatives, nor any prerequisites or exclusions. The description simply states what it does without context.

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

get_job_traceB

Get job trace with options for partial logs, tail mode, and line limits

ParametersJSON Schema
NameRequiredDescriptionDefault
rawNoReturn raw log without formatting
tailNoGet the last N lines instead of first N lines
job_idYesJob ID
project_idYesProject ID or path
lines_limitNoMaximum number of lines to return (default: 1000)

TDQS

B3.2/5.0
Behavior2/5

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

No annotations provided, so description carries full burden. Only mentions options but does not disclose behavior like idempotency, error handling, or what happens if the job is still running.

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?

Single sentence, front-loaded with purpose, no wasted words.

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?

No output schema, so description should explain return value (e.g., log text). It does not. Also lacks details on error conditions or pagination.

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?

Schema description coverage is 100%, so the schema already documents all 5 parameters. The description adds brief context ('partial logs', 'tail mode') but does not significantly enhance understanding beyond the schema.

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?

Description clearly states the action 'Get' and the resource 'job trace', and mentions configurable options like partial logs, tail mode, and line limits. This distinguishes it from siblings such as 'get_job_logs'.

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?

No guidance on when to use this tool versus alternatives like 'get_job_logs'. Does not specify prerequisites, limitations, or exclusions.

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

get_merge_requestA

Get details of a merge request. Either merge_request_iid or source_branch must be provided.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesProject ID or path
source_branchNoSource branch name (alternative to merge_request_iid)
merge_request_iidNoMerge request internal ID

TDQS

A3.6/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of disclosure. It only states that the tool retrieves details, without mentioning any behavioral aspects such as side effects, authentication requirements, rate limits, or response characteristics.

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 extremely concise with two sentences, front-loading the purpose, and contains no unnecessary words. Every sentence adds value.

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 no output schema and no annotations, the description is very minimal. It lacks information about what details are returned, how the tool behaves, or how it differs from similar tools in the sibling list. This leaves significant gaps for an agent to use it correctly.

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?

The input schema already describes all parameters (100% coverage), but the description adds valuable context by explicitly stating that either merge_request_iid or source_branch must be provided, clarifying a logical OR constraint not captured in the schema's required field list.

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 clearly states it gets details of a merge request and specifies the required parameter constraint (either merge_request_iid or source_branch), which helps differentiate it from sibling tools like create_merge_request or list_merge_requests.

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?

The description provides the constraint that either merge_request_iid or source_branch must be provided, but it does not offer guidance on when to use this tool over alternatives like get_issue or list_merge_requests, nor does it mention when not to use it.

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

get_merge_request_diffsB

Get the changes/diffs of a merge request. Either merge_request_iid or source_branch must be provided.

ParametersJSON Schema
NameRequiredDescriptionDefault
viewNoDiff view type
project_idYesProject ID or path
source_branchNoSource branch name (alternative to merge_request_iid)
merge_request_iidNoMerge request internal ID

TDQS

B3.2/5.0
Behavior2/5

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

No annotations provided, so description carries full burden. It states it gets diffs but does not disclose output format, read-only nature, permissions, or pagination. Minimal transparency.

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?

Two concise sentences, no redundant information. Purpose and key constraint are front-loaded.

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

Completeness3/5

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

Adequate for a simple tool but missing return value description, diff format details, and pagination info. No output schema to compensate.

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 covers all 4 parameters (100% coverage). Description adds value by clarifying the mutual exclusivity between merge_request_iid and source_branch, which goes beyond schema descriptions.

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?

Description clearly states verb 'Get' and resource 'changes/diffs of a merge request'. It distinguishes from sibling tools like get_merge_request but could better contrast with get_branch_diffs.

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?

No explicit guidance on when to use this vs alternatives. Only mentions that either merge_request_iid or source_branch must be provided, but no when-not-to-use or alternative tool names.

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

get_mr_approvalsA

Get the approval status of a merge request, including who has approved, how many approvals are needed, and approval rules.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesProject ID or path
merge_request_iidYesMerge request internal ID

TDQS

A3.8/5.0
Behavior3/5

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

Without annotations, the description provides basic behavioral context (output includes approvals, counts, rules) but lacks information on idempotency, permissions, or side effects. It is adequate but not comprehensive.

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?

Single clear sentence of 20 words, front-loaded with the action and resource, no redundancy.

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?

Given the tool's simplicity and lack of output schema, the description covers key output aspects. Minor missing context includes read-only nature or required permissions.

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?

Input schema has 100% description coverage, so the description adds no new parameter information beyond what's in the schema. Baseline 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 clearly states the verb 'Get' and the resource 'approval status of a merge request', distinguishing it from siblings like approve_mr and get_merge_request. It lists specific details included in the response.

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 but not explicit. No guidance on when to use this versus other tools like approve_mr or get_merge_request, nor any prerequisites.

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

get_mr_templateB

Get a specific merge request description template by name

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesTemplate name (without .md extension)
project_idYesProject ID or path

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are provided, so the description must fully disclose behavioral traits. It merely states the primary function without addressing error handling, side effects, or required permissions. The read-only nature is implied but not explicit.

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?

A single, well-front-loaded sentence with no extraneous information. Every word contributes to the purpose.

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?

Given the tool's simplicity, full schema coverage, and lack of output schema, the description provides adequate context for a basic retrieval operation. It could mention the response format or default behavior but is reasonably complete.

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?

Schema coverage is 100%, so the schema already documents both parameters. The description does not add meaning beyond stating the template is retrieved 'by name', which aligns with the name parameter but does not clarify format or constraints.

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 clearly states the action (get), resource (merge request description template), and specificity (by name). It effectively distinguishes from the sibling tool list_mr_templates, which lists all templates.

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?

No guidance on when to use this tool versus alternatives like list_mr_templates. The description does not mention prerequisites, expected context, or when-not to use it.

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

get_pipelineB

Get details of a specific pipeline

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesProject ID or path
pipeline_idYesPipeline ID

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations, the description must carry the full burden of transparency. It only states 'Get details,' which implies a read operation, but it doesn't disclose potential failures, permission requirements, or the scope of 'details,' missing important behavioral context.

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 a single, front-loaded sentence with no redundant words, achieving maximum conciseness while still being clear.

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 could explain what is returned (e.g., pipeline status, stages, etc.), but it doesn't. This leaves the agent with incomplete information about the tool's output.

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?

Schema coverage is 100% (both parameters have descriptions), so the baseline is 3. The description adds no extra meaning beyond the schema, as it doesn't elaborate on parameter usage or relationships.

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 clearly states the action ('Get') and the resource ('details of a specific pipeline'), making it unambiguous and distinguishable from sibling tools like 'list_pipelines' or 'get_pipeline_variables'.

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?

The description provides no guidance on when to use this tool versus alternatives (e.g., list_pipelines, get_pipeline_variables) and doesn't mention any prerequisites or context, leaving the agent without clear decision criteria.

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

get_pipeline_variablesB

Get variables of a pipeline

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesProject ID or path
pipeline_idYesPipeline ID

TDQS

B3/5.0
Behavior2/5

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

No annotations are present, so the description must carry the full burden. The one-line description provides no behavioral details such as read-only nature, authentication needs, rate limits, or side effects.

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

Conciseness3/5

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

The description is extremely concise at one phrase, but this brevity comes at the cost of omitting useful details. It is appropriately sized for a simple tool but could be more informative.

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?

The tool is simple with two parameters and no output schema, but the description still fails to mention what the variables represent or the return format. It is insufficient for an agent to fully understand the tool's output.

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?

Schema description coverage is 100%, so the input schema already documents both parameters adequately. The description adds no additional meaning beyond the schema, meeting the baseline expectation.

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 clearly states the action 'Get' and the resource 'variables of a pipeline' with a specific verb+resource structure. It distinguishes from sibling tools like get_pipeline and list_pipeline_jobs which target different resources.

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?

No guidance is provided on when to use this tool versus alternatives. There is no mention of prerequisites, context for use, or comparisons to similar tools.

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

get_projectC

Get details of a specific project

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesProject ID or path (e.g., "1" or "group/project")

TDQS

C2.9/5.0
Behavior2/5

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

No annotations provided, and the description does not disclose behavioral traits beyond a simple read operation. No mention of permissions, side effects, or the extent of 'details' returned, leaving significant gaps.

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?

A single, short sentence with no wasted words. It is appropriately concise for a simple tool, though it sacrifices detail.

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?

Without an output schema, the description should clarify what 'details' means. It is too brief given the complexity of possible project information and the number of sibling tools, leaving ambiguity.

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?

Schema coverage is 100% with a clear description for the single parameter. The tool description adds no extra meaning beyond the schema, so baseline score of 3 applies.

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 clearly states 'Get details of a specific project' with a specific verb and resource. It distinguishes from siblings like 'get_issue' or 'get_merge_request' but not from other project-level info tools, though the focus on project details is clear.

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?

No guidance on when to use this tool vs alternatives. No context about prerequisites or exclusions, leaving the agent to infer usage from the name alone.

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

get_project_commitsB

List repository commits with filtering options

ParametersJSON Schema
NameRequiredDescriptionDefault
allNoRetrieve every commit from the repository
pageNoPage number for pagination (default: 1)
pathNoFilter commits by file path
orderNoList commits in order (default or topological)
sinceNoISO 8601 date format (YYYY-MM-DDTHH:MM:SSZ) - commits after this date
untilNoISO 8601 date format (YYYY-MM-DDTHH:MM:SSZ) - commits before this date
authorNoFilter commits by author name
per_pageNoNumber of results per page (max 100)
ref_nameNoBranch, tag, or commit SHAmain
trailersNoParse and include Git trailers for every commit
project_idYesProject ID or path
with_statsNoInclude commit stats (additions, deletions)
first_parentNoFollow only the first parent commit on merge commits

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations provided, the description bears the full burden of disclosing behavioral traits. It only repeats the basic function without mentioning any side effects, authentication needs, rate limits, or behavior such as ordering and pagination. The schema provides parameter details but the description adds no behavioral context beyond what is already in the schema.

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 a single, short sentence (5 words) that is front-loaded and to the point. It is not verbose, but could be slightly more detailed without losing conciseness. The structure is appropriate for a simple tool.

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 the complexity (13 parameters, no output schema, many sibling tools), the description is incomplete. It does not explain what the tool returns (e.g., a list of commit objects) or how it relates to get_commit for individual commits. The lack of output schema and behavioral context leaves gaps for the agent.

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?

Schema description coverage is 100% with clear descriptions for all 13 parameters. The tool description adds no additional meaning beyond what the schema provides. The baseline for high coverage is 3, and the description does not enhance parameter understanding.

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 'List repository commits with filtering options' clearly states the action (list) and the resource (repository commits). It distinguishes from sibling tools like get_commit (single commit) and list_merge_requests (merge requests) by specifying it lists commits with filtering capabilities.

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?

The description provides no guidance on when to use this tool versus alternatives such as get_commit for a single commit or list_merge_requests for merge request diffs. It does not mention prerequisites, context, or when-not-to-use scenarios, leaving the agent to infer usage from the name alone.

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

get_userA

Get current user information

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior2/5

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

Without annotations, the description should disclose more behavioral context. It only states it retrieves user info, but doesn't clarify authentication requirements, scope, or what 'current user' means.

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?

A single sentence with no extraneous words, efficiently conveying the tool's purpose.

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

Completeness3/5

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

For a simple read tool with no parameters and no output schema, the description is minimally adequate but could benefit from mentioning typical return fields or data scope.

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?

No parameters exist, and schema coverage is 100%, so the description need not add parameter details. It remains clear about the input absence.

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 explicitly states the verb 'get' and the resource 'current user information', clearly distinguishing it from sibling tools like 'get_commit' or 'get_issue'.

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?

The description implies usage when current user info is needed, but provides no explicit guidance on when not to use it or comparisons to alternatives.

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

list_issuesC

List issues in a project

ParametersJSON Schema
NameRequiredDescriptionDefault
scopeNoReturn issues with the given scope (optional)
stateNoFilter by issue stateopened
labelsNoComma-separated list of labels
searchNoSearch issues by title and description
per_pageNoNumber of results per page (max 100)
author_idNoFilter by author user ID
project_idYesProject ID or path
assignee_idNoFilter by assignee user ID

TDQS

C2.5/5.0
Behavior2/5

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

No annotations provided, so description carries full burden. It does not mention that the tool is read-only, pagination behavior, sorting, or any rate limits. Only says 'list', which implies reading but lacks detail.

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

Conciseness3/5

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

A single sentence is concise but under-specified. It lacks structure with front-loaded critical information. Could be more informative without being wordy.

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?

With 8 parameters and no output schema, the description is too brief. It does not explain return format, pagination, sorting defaults, or how parameters interact. Incomplete for the tool's complexity.

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?

Schema description coverage is 100%, so schema already documents all parameters. Tool description adds no extra meaning or usage tips beyond what's in the schema.

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

Purpose3/5

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

Description states 'List issues in a project' which is a clear verb+resource but lacks specificity to differentiate from other list tools like list_merge_requests. It does not mention scope or filtering options that could distinguish it.

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?

No guidance on when to use this tool over alternatives such as get_issue or other listing tools. Implicit context from name and schema but no explicit usage direction.

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

list_merge_request_diffsA

List merge request diffs with pagination support. Either merge_request_iid or source_branch must be provided.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number for pagination (default: 1)
unidiffNoPresent diffs in unified diff format (GitLab 16.5+)
per_pageNoNumber of items per page (max: 100, default: 20)
project_idYesProject ID or path
source_branchNoSource branch name (alternative to merge_request_iid)
merge_request_iidNoMerge request internal ID

TDQS

A3.7/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It only mentions pagination support and the parameter constraint, but does not disclose read-only nature, error handling, or other behaviors.

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?

Single sentence, front-loaded with key information, no wasted words.

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

Completeness3/5

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

Given 6 parameters, no output schema, and no annotations, the description is adequate but lacks details on return format or error conditions.

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 description coverage is 100%, baseline 3. The description adds value by clarifying the mutual exclusivity requirement for merge_request_iid and source_branch, which is not obvious from the schema alone.

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 clearly states the verb 'List' and resource 'merge request diffs', and includes a condition on parameters. It distinguishes from sibling tools like get_merge_request_diffs.

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?

The description provides context by stating that either merge_request_iid or source_branch must be provided, but does not explicitly mention when not to use the tool or compare to alternatives.

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

list_merge_requestsC

List merge requests in a project

ParametersJSON Schema
NameRequiredDescriptionDefault
scopeNoReturn merge requests with the given scope (optional)
stateNoFilter by merge request stateopened
searchNoSearch merge requests by title and description
per_pageNoNumber of results per page (max 100)
author_idNoFilter by author user ID
project_idYesProject ID or path
assignee_idNoFilter by assignee user ID
reviewer_idNoFilter by reviewer user ID
source_branchNoFilter by source branch
target_branchNoFilter by target branch
reviewer_usernameNoFilter by reviewer username

TDQS

C2.4/5.0
Behavior1/5

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

No annotations are provided, and the description does not disclose any behavioral traits such as pagination, sorting, or performance implications. It is too brief.

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

Conciseness2/5

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

The description is very short but underspecified. It does not earn its place by providing sufficient context.

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

Completeness1/5

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

With 11 parameters and no output schema, the description is far too brief. It lacks information on common use cases, filtering, or pagination.

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?

Schema coverage is 100%, so each parameter already has a description. The description adds no additional meaning beyond what is in the schema.

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 clearly states the action 'list' and the resource 'merge requests in a project'. It is specific but does not differentiate from sibling tools like 'list_mr_discussions' or 'list_mr_notes'.

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?

No guidance is given on when to use this tool versus other merge request tools or filters. There is no mention of scope or context.

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

list_mr_discussionsA

List discussions (threaded comments including inline code comments) on a merge request. Use unresolved_only=true to fetch only unresolved discussions (saves tokens).

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number for pagination (default: 1). Ignored when unresolved_only=true (fetches all pages).
per_pageNoNumber of results per page (max 100)
project_idYesProject ID or path
unresolved_onlyNoIf true, fetches all discussions and returns only unresolved ones. This reduces tokens sent to the LLM by filtering server-side.
merge_request_iidYesMerge request internal ID

TDQS

A4.2/5.0
Behavior3/5

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

No annotations are provided, so the description carries full burden. It discloses the behavior of unresolved_only (fetches all pages, filters server-side) and mentions token savings. But it lacks details on auth needs, rate limits, or error handling, which would be expected for a complete disclosure.

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?

Two sentences with zero waste. The first sentence states the purpose; the second gives a key usage hint. Information is front-loaded and to the point.

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?

For a list tool with 5 parameters and no output schema, the description covers the main purpose and one parameter's advanced behavior. It mentions threaded comments and inline code comments, which gives enough context. Minor gaps: no mention of return format or pagination details beyond the schema, but overall sufficient.

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%, baseline 3. The description adds value beyond schema by noting that page is ignored when unresolved_only=true and that unresolved_only saves tokens, aiding the agent in parameter selection.

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 clearly states 'List discussions (threaded comments including inline code comments) on a merge request.' It uses a specific verb and resource, and distinguishes from sibling tools like create_mr_discussion and delete_mr_discussion_note.

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?

The description provides a specific usage tip: 'Use unresolved_only=true to fetch only unresolved discussions (saves tokens).' However, it does not explicitly contrast with alternatives like list_mr_notes or get_merge_request, leaving some ambiguity for when to choose this tool.

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

list_mr_notesA

List all notes (comments) on a merge request

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number for pagination (default: 1)
sortNoSort order (asc or desc)desc
order_byNoField to order bycreated_at
per_pageNoNumber of results per page (max 100)
project_idYesProject ID or path
merge_request_iidYesMerge request internal ID

TDQS

A3.5/5.0
Behavior3/5

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

No annotations provided. The description implies a read operation but does not disclose pagination defaults, sorting behavior, or whether system notes are included. Adequate transparency for a simple list tool.

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?

Single sentence, front-loaded with key information. No unnecessary words.

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

Completeness3/5

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

Given 6 parameters and no output schema, the description is minimal. It does not explain return format or pagination behavior, but the schema covers parameter details. Adequate but with gaps.

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?

All 6 parameters are described in the schema (100% coverage). The description adds no additional meaning beyond the schema, so baseline score of 3 applies.

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 clearly states the action ('list'), resource ('notes/comments'), and context ('on a merge request'). It distinguishes from siblings like create_mr_note, delete_mr_note, etc.

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?

No guidance on when to use this tool vs related tools like list_mr_discussions. No exclusions or alternatives mentioned.

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

list_mr_templatesA

List available merge request description templates in a project

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesProject ID or path

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It does not mention authentication requirements, pagination, or what happens when no templates exist. For a list operation, typical behaviors like return format or limits are not disclosed.

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 a single, clear sentence with no wasted words. It is front-loaded with the key action and resource.

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

Completeness3/5

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

Given the simplicity of the tool (one parameter, no output schema), the description is adequate but incomplete. It does not explain the return format (e.g., list of template names, IDs) or any constraints. Additional context about pagination or filtering would improve completeness.

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?

Schema coverage is 100%, and the parameter description in the schema already states 'Project ID or path'. The tool description adds no additional meaning beyond what the schema provides, so baseline 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 clearly states the action (list), the resource (merge request description templates), and the scope (in a project). It distinguishes from sibling tools like get_mr_template (which retrieves a specific template) and list_merge_requests (which lists MRs, not templates).

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?

No explicit guidance on when to use this tool vs alternatives. The sibling get_mr_template implies this is for listing all templates, but the description does not provide when-to-use or when-not-to-use information.

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

list_pipeline_jobsB

List jobs in a pipeline

ParametersJSON Schema
NameRequiredDescriptionDefault
scopeNoFilter jobs by status
project_idYesProject ID or path
pipeline_idYesPipeline ID
include_retriedNoInclude retried jobs

TDQS

B3/5.0
Behavior1/5

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

With no annotations, the description must disclose behavioral traits, but it only says 'List jobs in a pipeline'. It omits critical details like pagination, ordering, error handling (e.g., missing pipeline), or whether results are limited. This is severely inadequate for effective tool invocation.

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 a single concise sentence that directly states the tool's purpose without any superfluous words. It is appropriately front-loaded and efficient.

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 the tool has 4 parameters and no output schema, the description is incomplete. It does not explain return values (e.g., job objects structure) or address edge cases. The presence of many sibling tools further demands more context to differentiate usage, which 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?

Schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description adds no extra meaning beyond the schema. Baseline 3 is appropriate as the description does not need to repeat schema info but also provides no additional context.

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 'List jobs in a pipeline' is a specific verb+resource combination that clearly indicates the tool lists jobs scoped to a pipeline. It distinguishes from siblings like list_pipelines (lists pipelines) and get_job_logs (retrieves logs), which are related but different operations.

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?

The description provides no guidance on when to use this tool versus alternatives, such as get_pipeline for pipeline info or get_job_logs for job details. There is no mention of prerequisites (e.g., having a pipeline_id) or when not to use it.

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

list_pipelinesB

List pipelines in a project

ParametersJSON Schema
NameRequiredDescriptionDefault
refNoFilter by branch or tag name
shaNoFilter by commit SHA
nameNoFilter by pipeline name
sortNoSort orderdesc
statusNoFilter by pipeline status
order_byNoOrder pipelines by fieldid
per_pageNoNumber of results per page (max 100)
usernameNoFilter by username of the user who triggered the pipeline
project_idYesProject ID or path
yaml_errorsNoFilter pipelines with YAML errors
updated_afterNoFilter pipelines updated after this date (ISO 8601 format)
updated_beforeNoFilter pipelines updated before this date (ISO 8601 format)

TDQS

B3.1/5.0
Behavior2/5

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

The description does not disclose behavioral traits such as pagination, default sorting, or that it returns multiple results. With no annotations, the description carries the full burden, but it adds no value beyond the obvious.

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 a single, concise sentence with no wasted words. It could be slightly expanded to include key behavioral details without losing conciseness.

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 no output schema and 12 parameters, the description is too brief. It omits what the response contains (list of pipelines) and pagination behavior. A more complete description would mention that it returns a list of pipeline objects with pagination via per_page.

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?

Schema coverage is 100% with detailed descriptions for all 12 parameters. The description adds no parameter information, but the schema already provides full documentation. Baseline 3 is appropriate.

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 clearly states the verb ('List') and resource ('pipelines in a project'), distinguishing it from siblings like get_pipeline (single) or create_pipeline. However, it lacks specificity about filtering and sorting capabilities.

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?

No explicit guidance on when to use list_pipelines versus alternatives like get_pipeline or create_pipeline. The context is implied but not stated, leaving the agent to infer from the tool name and schema.

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

list_project_branchesB

List branches in a project

ParametersJSON Schema
NameRequiredDescriptionDefault
searchNoSearch branches by name
per_pageNoNumber of results per page (max 100)
project_idYesProject ID or path

TDQS

B3.3/5.0
Behavior2/5

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

No annotations provided, and description does not disclose read-only nature, pagination behavior, or any side effects. Only minimal operation stated.

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?

Single sentence, no redundancy, front-loaded with verb and resource. Highly concise.

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

Completeness3/5

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

Missing details on pagination behavior, search syntax, and return format (since no output schema). Adequate for a simple list tool but not fully complete.

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?

Schema description coverage is 100%, so baseline is 3. Description adds no extra meaning beyond the schema, but that is acceptable given complete schema.

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?

Description clearly states verb (list) and resource (branches) in a project, distinguishing it from sibling list tools for other resources.

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?

No guidance on when to use this tool versus alternatives like get_branch_diffs or when not to use it.

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

list_project_labelsA

List all labels available in a project. Useful for discovering valid label names before adding them to issues or merge requests.

ParametersJSON Schema
NameRequiredDescriptionDefault
searchNoSearch labels by name
project_idYesProject ID or path
with_countsNoInclude issue and merge request counts (default: false)
include_ancestor_groupsNoInclude labels from ancestor groups (default: true)

TDQS

A3.7/5.0
Behavior2/5

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

No annotations are provided, so the description must carry the burden of disclosing behavioral traits. It only states the basic listing operation and does not mention safety (e.g., read-only), potential side effects, auth requirements, pagination, or result limits, leaving the agent with insufficient behavioral context.

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 concise with two sentences, front-loading the main action and then providing a practical use case. No extraneous information, every sentence earns its place.

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

Completeness3/5

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

The tool is simple (list labels) and the description covers purpose but lacks details on return format, pagination, or error handling. Given no output schema and typical use, it is adequate but has gaps for a fully informed invocation.

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 input schema has 100% coverage, meaning all parameters are described in the schema itself. The description adds no extra meaning or context beyond what the schema provides, so a baseline score of 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 clearly states the action 'List all labels available in a project' and provides a specific use case 'discovering valid label names before adding them to issues or merge requests.' This distinguishes it from sibling tools that list other resources like issues or merge requests.

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?

The description implies when to use the tool (before adding labels to issues or MRs) and its primary purpose. However, it does not explicitly mention when not to use it or contrast with alternative tools, though the context among siblings makes the purpose clear.

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

list_projectsA

List GitLab projects with minimal info by default (to reduce token usage from 40k+ to much less). Use simple=false for full project details when needed.

ParametersJSON Schema
NameRequiredDescriptionDefault
ownedNoShow only owned projects (default: true for privacy)
searchNoSearch projects by name
simpleNoUse simplified project info to reduce response size (default: true). Set to false for full project details.
per_pageNoNumber of results per page (max 100)
visibilityNoFilter by visibility level

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 burden. It discloses key behavioral traits: default minimal info to reduce token usage (from 40k+ to much less) and default owned=true for privacy. It does not cover pagination or exact fields returned, but the token-saving insight adds significant value beyond the schema.

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, extremely concise, and front-loaded with the main purpose. Every word earns its place; no fluff.

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?

Given the complexity (5 parameters, no output schema), the description covers the key behavioral aspect (token reduction) and default behavior. It lacks specifics on what minimal vs. full info includes, but the token-saving context fills an important gap not present in schema or annotations.

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?

Schema coverage is 100%, so baseline is 3. The description adds the token reduction motivation for the 'simple' parameter but does not elaborate on other parameters beyond what the schema already provides.

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 clearly states 'List GitLab projects' with a specific resource and action. It distinguishes between minimal and full info via the 'simple' parameter, and the token reduction rationale adds specificity. Siblings like list_issues are not confused.

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?

The description provides guidance on when to use simple=false for full details and mentions the default owned=true for privacy. However, it does not explicitly contrast against sibling list tools or state when not to use this tool, leaving some ambiguity.

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

list_project_uploadsB

List files that have been uploaded to a project

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesProject ID or path

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are provided, so the description must disclose behavioral traits. It only states the basic action without mentioning side effects, pagination, result format, or permissions. This is insufficient for an agent to understand all behaviors.

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 a single sentence with no extraneous words. It is front-loaded and efficient.

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?

Despite the tool's simplicity, the description lacks details on return values, pagination, or filtering. Without output schema, this information is essential for an agent to correctly interpret results. The description is incomplete.

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?

Schema coverage is 100% for the single required parameter, which already has a clear description 'Project ID or path'. The tool description adds no additional meaning beyond what the schema provides, meriting a baseline score of 3.

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 clearly states the action 'List' and the resource 'files that have been uploaded to a project'. It is specific and distinct from sibling tools like upload_project_file (upload) and list_project_branches (branches).

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?

The description implies usage for listing uploads but provides no explicit guidance on when to use this tool versus alternatives (e.g., filtering, pagination). No exclusion criteria or sibling comparisons are given.

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

mark_mr_as_draftA

Mark a merge request as draft (work in progress, not ready for review)

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesProject ID or path
merge_request_iidYesMerge request internal ID

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It states the effect (mark as draft) but does not disclose potential side effects, required permissions, or any irreversible changes. For a mutation tool, more behavioral context is needed.

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?

A single, efficient sentence that front-loads the action. No unnecessary words or repetition.

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

Completeness3/5

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

Given no output schema and two simple parameters, the description is mostly adequate. However, the lack of behavioral transparency and return value info reduces completeness.

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?

Schema covers both parameters (project_id, merge_request_iid) with descriptions. The description adds no extra meaning beyond the schema. With 100% schema coverage, baseline 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 clearly states the action (mark as draft) and resource (merge request), with a brief explanation of what 'draft' means (work in progress, not ready for review). This distinguishes it from sibling tools like 'mark_mr_as_ready'.

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?

The description implies usage for changing an MR's draft status, but lacks explicit when-to-use or when-not-to-use guidance. No mention of alternatives or prerequisites, though sibling tools provide contrast.

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

mark_mr_as_readyA

Mark a merge request as ready (remove draft status, ready for review)

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesProject ID or path
merge_request_iidYesMerge request internal ID

TDQS

A3.5/5.0
Behavior2/5

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

With no annotations, the description should disclose behavioral details beyond the name. It only rephrases the tool's purpose without mentioning preconditions (e.g., MR must be in draft state), potential failures, permissions, or side effects. Critical context is missing.

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 a single, efficient sentence that conveys the core functionality without any wasted words. It is appropriately front-loaded.

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

Completeness3/5

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

For a simple tool with two parameters and no output schema, the description is minimally adequate. However, it lacks information on return values, error handling, and idempotency, which would be helpful for an AI agent.

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?

Schema coverage is 100%, so the schema already documents both parameters adequately. The description adds no extra meaning beyond clarifying the tool's action, which is expected at this coverage level.

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 clearly states the action: 'Mark a merge request as ready (remove draft status, ready for review)'. It specifies the verb and resource, and distinguishes it from sibling tools like 'mark_mr_as_draft'.

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?

The description implies usage when the goal is to remove draft status, but it does not explicitly state when to use it versus alternatives like 'approve_mr' or 'update_merge_request'. No exclusions or conditional guidance are provided.

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

reply_to_mr_discussionB

Reply to an existing discussion thread on a merge request

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYesThe content of the reply (supports Markdown)
project_idYesProject ID or path
discussion_idYesThe ID of the discussion to reply to
merge_request_iidYesMerge request internal ID

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It only states that the tool replies to an existing discussion, implying a write operation, but does not mention permissions, idempotency, side effects, or return behavior.

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 a single, clear sentence with no extraneous words. It is perfectly concise and front-loaded with the key action.

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 the tool has 4 required parameters and no annotations, the description is too brief. It does not explain the relationship between parameters, how to construct a reply, or any prerequisites. The schema covers param definitions, but the description should provide more operational context.

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?

Schema description coverage is 100%, so the schema already documents all parameters. The description adds no additional meaning or context for the parameters beyond what the schema provides.

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 clearly states the verb 'Reply' and the resource 'existing discussion thread on a merge request'. This distinguishes it from siblings like 'create_mr_discussion' (creates a new thread) and 'create_mr_discussion_note' (adds a note to a discussion).

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?

The description implies usage for responding to an existing thread, but provides no explicit guidance on when to use it versus alternatives like 'create_mr_discussion_note' or 'resolve_mr_discussion'. Contextual understanding is assumed.

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

resolve_mr_discussionB

Mark a discussion on a merge request as resolved

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesProject ID or path
discussion_idYesThe ID of the discussion to resolve
merge_request_iidYesMerge request internal ID

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, and the description does not disclose behavioral traits beyond the obvious mutation. It fails to mention effects like state change, required permissions, or side effects.

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 a single, well-structured sentence that is concise and contains no extraneous information.

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

Completeness3/5

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

For a simple mutation tool with no output schema and 100% schema coverage, the description is minimally adequate but lacks context on permissions, effects, and the inverse operation (unresolve).

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?

Schema coverage is 100% with clear parameter descriptions. The description adds no additional meaning beyond the schema, so it meets the baseline expectation for parameter semantics.

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 clearly states the verb 'mark' and the resource 'a discussion on a merge request as resolved'. It distinguishes from sibling tools like 'unresolve_mr_discussion' and 'create_mr_discussion'.

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?

The description provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites or scenarios where resolving a discussion is appropriate.

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

retry_pipelineB

Retry a failed pipeline

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesProject ID or path
pipeline_idYesPipeline ID

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are present. The description claims 'retry' but does not disclose what happens (e.g., creates a new pipeline, modifies the existing one, or triggers a rerun). Behavioral effects are unclear.

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?

Single sentence with no wasted words. However, the description is overly brief and could be expanded with more context without losing conciseness.

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

Completeness3/5

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

No output schema is provided. The description lacks any indication of return value or behavior upon success/failure. For a simple tool, it is minimally adequate but could be more complete.

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?

Schema coverage is 100% for the two parameters. The description adds no additional meaning beyond what the schema provides. Baseline score of 3 applies.

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 'Retry a failed pipeline' clearly states the action (retry) and the resource (a failed pipeline). It distinguishes this tool from siblings like 'create_pipeline' (creates new) and 'cancel_pipeline' (cancels).

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?

No guidance is provided on when to use this tool versus alternatives. It does not specify that the pipeline must be in a failed state, nor does it contrast with 'create_pipeline' for initiating new runs.

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

unapprove_mrB

Remove your approval from a merge request.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesProject ID or path
merge_request_iidYesMerge request internal ID

TDQS

B3.3/5.0
Behavior2/5

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

No annotations provided; description only says 'remove your approval' without detailing side effects, permissions, or whether it's reversible.

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?

Single sentence with no unnecessary words, perfectly concise and front-loaded.

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

Completeness3/5

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

For a simple tool with two required parameters, the description covers the core action. However, given no annotations and many siblings, more context about use cases would help.

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?

Schema coverage is 100% and descriptions are adequate; the tool description adds no additional parameter meaning beyond the schema.

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 clearly states the action ('Remove your approval') and resource ('merge request'), distinguishing it from sibling tool 'approve_mr' which adds approval.

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?

No guidance on when to use this tool versus alternatives, nor any prerequisites (e.g., must have approved first).

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

unresolve_mr_discussionA

Mark a discussion on a merge request as unresolved

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesProject ID or path
discussion_idYesThe ID of the discussion to unresolve
merge_request_iidYesMerge request internal ID

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations, the description carries full burden. It discloses the action (unresolve a discussion) but does not elaborate on side effects, required permissions, or state prerequisites. The transparency is adequate but minimal.

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 a single, clear sentence. No filler or redundancy. Every word earns its place.

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?

For a simple operation with three required parameters, the description sufficiently communicates the tool's purpose. However, it does not mention return values (no output schema) or any dependencies on the current state of the discussion, which could be useful. Still, it is mostly complete.

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?

Schema coverage is 100% with straightforward parameter descriptions. The description adds no additional meaning beyond the schema; it essentially restates the parameter names. Baseline 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 clearly states the action: 'Mark a discussion on a merge request as unresolved.' It uses a specific verb and resource, and the name itself distinguishes it from the sibling 'resolve_mr_discussion'. The purpose is unambiguous.

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?

No guidance is provided on when to use this tool versus its siblings (e.g., resolve_mr_discussion). There is no mention of prerequisites or context that would help an agent decide when to invoke it.

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

update_merge_requestA

Update an existing merge request. Either merge_request_iid or source_branch must be provided.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleNoUpdate merge request title
labelsNoUpdate labels (comma-separated)
squashNoToggle squash commits on merge
project_idYesProject ID or path
assignee_idNoAssign a user to the merge request (use 0 to unassign)
descriptionNoUpdate merge request description (max 1,048,576 characters)
state_eventNoChange the state (close or reopen the MR)
assignee_idsNoAssign multiple users to the merge request
milestone_idNoAssign a milestone (use 0 to remove)
reviewer_idsNoSet reviewers for the merge request
source_branchNoSource branch name (alternative to merge_request_iid)
target_branchNoChange the target branch
merge_request_iidNoMerge request internal ID
allow_collaborationNoAllow commits from members who can merge
remove_source_branchNoFlag to remove source branch after merging
merge_when_pipeline_succeedsNoSet MR to merge when pipeline succeeds

TDQS

A4.1/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It implies mutation but does not disclose return values, side effects (e.g., pipeline triggers), or whether updates are partial. The constraint on identification is helpful but not enough for full transparency.

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 a single sentence that front-loads the purpose and follows with a key constraint. No wasted words.

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

Completeness3/5

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

Given 16 parameters, no output schema, and no annotations, the description is brief but covers the core. It fails to explain partial updates, response format, or prerequisites beyond the constraint. Adequate but not comprehensive.

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 schema already describes each parameter. The description adds value by stating the constraint that either merge_request_iid or source_branch must be provided, which is not captured in the schema. This is a meaningful addition.

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 clearly states the action ('Update') and the resource ('an existing merge request'), with an additional constraint on identifying the MR. It distinguishes itself from sibling tools like create_merge_request and approve_mr.

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?

The description provides a usage hint by specifying that either merge_request_iid or source_branch must be provided. However, it does not explicitly contrast with specialized siblings like update_mr_labels or close/reopen via state_event.

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

update_mr_discussion_noteB

Modify an existing merge request discussion note

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYesThe new content of the note (supports Markdown)
note_idYesThe ID of the note to update
project_idYesProject ID or path
discussion_idYesThe ID of the discussion
merge_request_iidYesMerge request internal ID

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations, the description must fully disclose behavior. It only says 'modify' without mentioning side effects, required permissions, idempotency, or what the response looks like. For a mutation tool, this is insufficient.

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?

One concise sentence with no wasted words. Essential purpose is communicated efficiently.

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?

The description lacks context about the update operation: what happens on success, whether the note is modified in place, or any constraints (e.g., only the author can modify). Given 5 required parameters and no output schema, more details would improve completeness.

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?

Schema description coverage is 100% (all parameters have descriptions in the input schema). The description adds no additional parameter details, meeting the baseline of 3.

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?

Description states 'Modify an existing merge request discussion note' with a specific verb 'modify' and resource 'merge request discussion note'. It clearly distinguishes from sibling tools like 'create_mr_discussion_note' and 'delete_mr_discussion_note'.

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?

No guidance on when to use this tool versus alternatives such as 'update_mr_note' (for regular notes) or other editing operations. No context about prerequisites or appropriate use cases.

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

update_mr_labelsA

Add or remove labels from a merge request. More convenient than update_merge_request for label-only changes.

ParametersJSON Schema
NameRequiredDescriptionDefault
add_labelsNoLabels to add to the merge request
project_idYesProject ID or path
remove_labelsNoLabels to remove from the merge request
merge_request_iidYesMerge request internal ID

TDQS

A3.7/5.0
Behavior2/5

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

No annotations are provided, so the description must fully convey behavioral traits. It states it modifies labels but does not disclose idempotency, error behavior for nonexistent labels, or required scopes/permissions.

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, no redundant words. It front-loads the action and adds a comparative advantage, making it effective.

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

Completeness3/5

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

For a simple label update tool, the description covers the essentials. However, given no output schema and no annotations, it could provide more context on return values, errors, or behavior when labels are already present.

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 input schema has 100% description coverage, so the schema already explains each parameter. The description adds no extra meaning beyond what the schema provides.

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 clearly states the action ('Add or remove labels') and the resource ('merge request'). It also distinguishes itself from the sibling tool 'update_merge_request' by noting it's more convenient for label-only changes.

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?

The description explicitly advises using this tool over update_merge_request when only labels need changing, providing clear context. However, it lacks explicit when-not-to-use or prerequisite conditions.

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

update_mr_noteA

Update the content of an existing top-level note (comment) on a merge request. Supports embedding images/files via attachments parameter.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYesNew content for the note (supports Markdown). Use {{placeholderName}} syntax to embed attachments.
note_idYesThe ID of the note to update
project_idYesProject ID or path
attachmentsNoMap of placeholder names to local file paths. Each file is uploaded and {{placeholderName}} in body is replaced with the GitLab markdown. Example: {"screenshot": "/tmp/screenshot.png"} replaces {{screenshot}} with ![screenshot](/uploads/...)
merge_request_iidYesMerge request internal ID

TDQS

A3.9/5.0
Behavior3/5

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

Without annotations, the description reveals that updates modify content and supports embedding via attachments, but does not specify if the update fully overwrites existing content, the behavior of missing fields, or any side effects.

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?

Two concise sentences front-load the purpose and key feature (attachment embedding), with no redundant information.

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

Completeness3/5

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

Given 5 parameters, no output schema, and no annotations, the description covers core functionality but omits return value, error handling, and constraints (e.g., note must be top-level). Adequate but not comprehensive.

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% with descriptions for all parameters. The tool description adds value by clarifying Markdown support for body and providing a concrete example for attachments, which exceeds the schema alone.

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 clearly states the action (update) and resource (existing top-level note/comment on a merge request), and differentiates from sibling tools like create_mr_note and update_mr_discussion_note by specifying 'top-level note'.

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?

The description implies use for updating existing top-level notes but lacks explicit guidance on when to use versus alternatives like update_mr_discussion_note or create_mr_note. No when-not or context provided.

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

upload_project_fileA

Upload a file to a GitLab project. Returns a markdown string and URL that can be embedded in MR comments, issue descriptions, etc.

ParametersJSON Schema
NameRequiredDescriptionDefault
fileYesLocal file path to upload (e.g., "/tmp/screenshot.png")
project_idYesProject ID or path

TDQS

A3.7/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It mentions the return format but omits key behavioral details like permission requirements, file size limits, overwrite behavior, or whether the upload is synchronous. This is insufficient for a mutation tool.

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 unnecessary words, efficiently conveying the purpose and output format.

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

Completeness3/5

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

Given the simple tool (2 params, no output schema, no annotations), the description covers the purpose and output but lacks details on prerequisites, error handling, or behavioral constraints, leaving some gaps.

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?

Schema coverage is 100%, so the schema already documents both parameters. The description does not add meaningful extra context beyond the schema, meeting the baseline of 3.

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 clearly states the action (upload a file) and the resource (GitLab project), and distinguishes from sibling tools like list_project_uploads by specifying the upload action and the returned markdown/URL for embedding.

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?

The description explains when to use (to upload a file) and the utility of the return value (embedding in MR comments), but does not explicitly mention when not to use or alternatives beyond the implicit listing tool.

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

TDQS

B3/5.0
Disambiguation4/5

Most tools have distinct purposes, but some pairs like get_job_logs/get_job_trace and create_mr_discussion/create_mr_note are very similar, causing slight ambiguity. Descriptions help clarify, but overlap exists.

Naming Consistency4/5

Predominantly verb_noun pattern with underscores, but inconsistencies exist: mixing 'mr' and 'merge_request' (e.g., approve_mr vs update_merge_request), and some verbs are inconsistent (mark_mr_as_draft vs update_merge_request). Most are clear.

Tool Count4/5

50 tools is on the higher end but justified by the breadth of GitLab features (issues, MRs, pipelines, etc.). Some tools could be combined without losing clarity, but overall it remains manageable.

Completeness3/5

Covers many areas but notable gaps: no update or delete for issues, no merge action for merge requests, no create/delete for projects or branches. This leaves agents unable to complete full workflows.

Maintenance

ActivityInactive
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

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/Alosies/gitlab-mcp-server'

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