Skip to main content
Glama

gitlab_mr_create

Create a GitLab merge request from a source branch to a target branch with a title, description, and labels; dry-run validates that both branches exist before opening it.

Instructions

Create a merge request. dry_run (default true) only checks that both branches exist.

Input Schema

NameRequiredDescriptionDefault
titleYes
labelsNo
dry_runNo
projectNogroup/name or numeric id; default: GITLAB_PROJECT or the origin remote
descriptionNo
source_branchYes
target_branchYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

B3.3/5.0
Behavior4/5

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

Annotations only declare readOnlyHint=false and openWorldHint=true. The description adds a genuinely important trait beyond that: the default invocation is a no-op branch check, not a creation — a real behavioral disclosure that prevents accidental calls. It omits return shape, error behavior, and auth requirements, keeping it short of a 5.

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?

Two short sentences, front-loaded with the action and immediately qualifying the default behavior. No filler, though the second sentence is packed so densely that the critical 'set dry_run=false to actually create' implication has to be inferred.

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?

This is a mutation tool with an unusual default that makes it a no-op, no output schema, and 14% schema coverage. The description should explicitly state that dry_run must be disabled to create and clarify branch/title expectations; instead it leaves the most consequential behavior implicit.

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

Parameters2/5

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

Schema coverage is only 14% — just 'project' has a description. The description explains dry_run's semantics well but leaves six parameters (source_branch, target_branch, title, description, labels, and their formats/constraints) undocumented in both schema and prose, so it does not compensate for the coverage gap.

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?

States a specific verb and resource ("Create a merge request"), clearly distinct from the sibling read tool gitlab_mr_list. It does not explicitly contrast against any sibling, but the resource is unambiguous enough that an agent can select it without opening the schema.

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 note that dry_run defaults to true and only verifies branch existence is useful implied guidance: an agent can infer it must set dry_run=false to actually create the MR. However, the description never says this explicitly and offers no when-to-use vs alternatives guidance or prerequisites (e.g., branch must exist, permissions needed).

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