gitlab_get_merge_request
Retrieve detailed merge request information including status, pipelines, approvals, and conflicts to review and assess merge readiness in GitLab projects.
Instructions
Get complete merge request details Returns: Full MR data with pipelines, approvals, conflicts Use when: Reviewing MR, checking merge status Required: MR IID (e.g., 456 for MR !456)
What's IID?: Internal ID - the MR number shown in GitLab Example: For MR !456, use iid=456
Returns: { "iid": 456, "title": "Add new feature", "state": "opened", "merge_status": "can_be_merged", "pipeline": {"status": "success"}, "approvals_required": 2, "approvals_left": 1, "changes_count": "15", "has_conflicts": false, "diff_stats": { "additions": 150, "deletions": 30 } }
Related tools:
gitlab_get_merge_request_changes: See actual diffs
gitlab_get_merge_request_discussions: Read reviews
gitlab_approve_merge_request: Approve MR
gitlab_merge_merge_request: Merge MR
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | No | Project identifier (auto-detected if not provided) Type: integer OR string Format: numeric ID or 'namespace/project' Optional: Yes - auto-detects from current git repository Examples: - 12345 (numeric ID) - 'gitlab-org/gitlab' (namespace/project path) - 'my-group/my-subgroup/my-project' (nested groups) Note: If in a git repo with GitLab remote, this can be omitted | |
| mr_iid | Yes | Merge request number (IID - Internal ID) Type: integer Format: Project-specific MR number (without !) Required: Yes Examples: - 456 (for MR !456) - 7890 (for MR !7890) How to find: Look at MR URL or title - URL: https://gitlab.com/group/project/-/merge_requests/456 → use 456 - Title: "Add new feature (!456)" → use 456 Note: This is NOT the global MR ID |
Implementation Reference
- src/mcp_gitlab/tool_handlers.py:142-148 (handler)The core handler function that implements the gitlab_get_merge_request tool. It extracts the required project_id (auto-detects if not provided) and mr_iid from arguments, then calls the GitLabClient's get_merge_request method to fetch and return the merge request details.def handle_get_merge_request(client: GitLabClient, arguments: Optional[Dict[str, Any]]) -> Dict[str, Any]: """Handle getting single merge request""" project_id = require_project_id(client, arguments) mr_iid = require_argument(arguments, "mr_iid") return client.get_merge_request(project_id, mr_iid)
- src/mcp_gitlab/tool_handlers.py:1032-1032 (registration)Registration of the tool name to its handler function in the TOOL_HANDLERS dictionary, which is used by the MCP server to dispatch tool calls.TOOL_GET_MERGE_REQUEST: handle_get_merge_request,
- Pydantic/MCP schema definition for the gitlab_get_merge_request tool, specifying input parameters and validation rules.types.Tool( name=TOOL_GET_MERGE_REQUEST, description=desc.DESC_GET_MR, inputSchema={ "type": "object", "properties": { "project_id": {"type": "string", "description": desc.DESC_PROJECT_ID}, "mr_iid": {"type": "integer", "description": desc.DESC_MR_IID} }, "required": ["mr_iid"] } ),
- src/mcp_gitlab/constants.py:217-217 (helper)Constant definition for the tool name string, used consistently across the codebase for registration and references.TOOL_GET_MERGE_REQUEST = "gitlab_get_merge_request"