get_project_merge_requests
Retrieve merge requests for a GitLab project to review changes, analyze diffs, and manage code review workflows. Filter by state and limit results.
Instructions
Get all merge requests for a project.
Args:
project_id: The GitLab project ID or URL-encoded path
state: Filter merge requests by state (all, opened, closed, merged, or locked)
limit: Maximum number of merge requests to return
Returns:
List of merge request objects
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes | ||
| state | No | all | |
| limit | No |
Implementation Reference
- server.py:524-541 (handler)The handler function decorated with @mcp.tool(), which registers and implements the get_project_merge_requests tool. It retrieves a list of merge requests from a GitLab project specified by project_id, filtered by state (default 'all') and limited by the limit parameter (default 20), using the GitLab API via python-gitlab library.@mcp.tool() def get_project_merge_requests(ctx: Context, project_id: str, state: str = "all", limit: int = 20) -> List[Dict[str, Any]]: """ Get all merge requests for a project. Args: project_id: The GitLab project ID or URL-encoded path state: Filter merge requests by state (all, opened, closed, merged, or locked) limit: Maximum number of merge requests to return Returns: List of merge request objects """ gl = ctx.request_context.lifespan_context project = gl.projects.get(project_id) mrs = project.mergerequests.list(state=state, per_page=limit) return [mr.asdict() for mr in mrs]