Skip to main content
Glama

Create merge request

gitlab_create_merge_request

Create a GitLab merge request by specifying project ID, source branch, target branch, and title to merge changes and start code review.

Instructions

Create a new merge request.

Args: **kwargs: Additional parameters for the request (e.g., project_id, source_branch, target_branch, title).

Returns: Response: A wrapper containing the original response and a MergeRequest model.

Raises: MissingParameterError: If the project_id, source_branch, target_branch, or title is missing. ParameterError: If invalid parameters are provided.

Input Schema

NameRequiredDescriptionDefault
wipNo
dataNo
pageNo
sortNo
viewNo
scopeNo
stateNo
titleYes
labelsNo
searchNo
squashNo
order_byNo
per_pageNo
author_idNo
max_pagesNo
milestoneNo
search_inNo
project_idNo
assignee_idNo
descriptionNo
environmentNo
reviewer_idNo
approver_idsNo
assignee_idsNo
milestone_idNo
reviewer_idsNo
created_afterNo
source_branchNo
target_branchNo
updated_afterNo
api_parametersNo
created_beforeNo
deployed_afterNo
search_excludeNo
updated_beforeNo
approved_by_idsNo
author_usernameNo
deployed_beforeNo
my_reaction_emojiNo
reviewer_usernameNo
target_project_idNo
allow_collaborationNo
with_labels_detailsNo
remove_source_branchNo
approvals_before_mergeNo
allow_maintainer_to_pushNo
with_merge_status_recheckNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv27.3.13

TDQS

C2.6/5.0
Behavior2/5

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

Annotations already indicate this is a non-readonly, non-idempotent, open-world, non-destructive mutation. The description adds return-wrapper and error-type information, but it misleadingly claims project_id, source_branch, and target_branch are required even though the schema requires only title, and it refers to **kwargs despite the schema having explicit properties and additionalProperties=false.

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 short and front-loads the create purpose, with separate Args/Returns/Raises sections. However, the Args section is misleading because it describes a generic **kwargs interface rather than the explicit 47-parameter schema, and the error details are more developed than the parameter documentation.

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 47-parameter mutation with no output schema, the description is materially incomplete. It lacks operational context such as permissions, branch requirements, and semantics for most merge-request options, and its required-parameter statement conflicts with the schema's single required field.

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 description coverage is 0% across 47 parameters, so the description must compensate but does not. It names only four example parameters and gives no semantics for the other 43, while also stating incorrect required parameters relative to 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 states a specific verb and resource: 'Create a new merge request.' This clearly distinguishes the tool from sibling merge-request read, approval, update, and delete operations. However, it does not explicitly differentiate itself from generic alternatives such as api_request or GraphQL-based merge-request 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 gives no guidance on when to use this tool versus siblings like gitlab_graphql_ops_update_merge_request, gitlab_api_request, or other merge-request tools. It also omits prerequisites such as required permissions, branch existence, or project context.

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

Deploy Server

Other Tools