Skip to main content
Glama

list_merge_requests

Retrieve and filter merge requests from a GitLab project using criteria like state, branch, labels, assignee, or date ranges to manage code review workflows.

Instructions

List all merge requests in a GitLab project

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
project_idYesProject ID or URL-encoded path
stateNoFilter merge requests by state
target_branchNoFilter by target branch
source_branchNoFilter by source branch
labelsNoComma-separated list of label names
milestoneNoMilestone title
assignee_idNoUser ID of assignee
author_idNoUser ID of author
searchNoSearch against title and description
created_afterNoReturn MRs created after date (ISO 8601)
created_beforeNoReturn MRs created before date (ISO 8601)
updated_afterNoReturn MRs updated after date (ISO 8601)
updated_beforeNoReturn MRs updated before date (ISO 8601)
sortNoSort merge requests
order_byNoSort order
pageNoPage number for pagination (default: 1)
per_pageNoNumber of results per page (default: 20)

Implementation Reference

  • The implementation of the 'listMergeRequests' handler function.
    export async function listMergeRequests(
      projectId: string,
      options: {
        state?: "opened" | "closed" | "locked" | "merged" | "all";
        target_branch?: string;
        source_branch?: string;
        labels?: string;
        milestone?: string;
        assignee_id?: number;
        author_id?: number;
        search?: string;
        created_after?: string;
        created_before?: string;
        updated_after?: string;
        updated_before?: string;
        sort?: "created_at" | "updated_at" | "title";
        order_by?: "asc" | "desc";
        page?: number;
        per_page?: number;
      } = {}
    ): Promise<GitLabMergeRequest[]> {
      if (!projectId?.trim()) {
        throw new Error("Project ID is required");
      }
    
      const endpoint = `/projects/${encodeProjectId(projectId)}/merge_requests`;
      const params = buildSearchParams(options);
    
      const mergeRequests = await gitlabGet<GitLabMergeRequest[]>(endpoint, params);
      return z.array(GitLabMergeRequestSchema).parse(mergeRequests);
    }
  • The Zod schema definition for the 'list_merge_requests' tool input.
    export const ListMergeRequestsSchema = z.object({
      project_id: z.string().describe("Project ID or URL-encoded path"),
      state: z.enum(["opened", "closed", "locked", "merged", "all"]).optional().describe("Filter merge requests by state"),
      target_branch: z.string().optional().describe("Filter by target branch"),

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

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