Automate workflows and connect AI agents to Gitlab. Metorial is built for developers. Handling OAuth, compliance, observability, and more.
The GitLab integration lets you manage repositories, issues, merge requests, and pipelines directly from your workflow, enabling seamless code review, project management, and CI/CD operations without leaving your development environment.
Metorial has 600+ integrations available. Here are some related ones you might find interesting.
The Exa integration lets you perform semantic searches across the web and retrieve high-quality content directly within your workflows, enabling AI agents to find and access relevant information from billions of web pages in real-time.
The Hackernews integration lets you fetch and analyze stories, comments, and user data from Hacker News directly within your workflow, enabling you to track trending topics, monitor discussions, and gather insights from the tech community.
The Slack integration lets you read channels, send messages, and search conversations directly from your AI assistant, enabling seamless team communication and information retrieval without leaving your workflow.
The Supabase integration lets you query and manipulate your database tables, manage authentication, and interact with storage buckets directly from your AI assistant. Use it to build applications, analyze data, or automate database operations without leaving your workflow.
The Google Calendar integration lets you view, create, update, and manage calendar events directly from your workflow, enabling seamless scheduling and calendar management without switching applications.
The GitHub integration lets you search and view repositories, manage issues and pull requests, read file contents, and interact with your GitHub account directly from your workspace.
The Google Drive integration lets you search, read, and manage files and folders in your Google Drive directly through Claude. Use it to access documents, create new files, organize content, and collaborate on shared resources without leaving your conversation.
The Gmail integration lets you read, search, send, and manage your email messages directly through AI conversations, enabling automated email workflows and intelligent inbox management.
The Brave integration lets you perform web searches using Brave Search directly from Claude, allowing you to retrieve up-to-date information, news, and web results without leaving your conversation.
Metorial helps you connect AI agents to Gitlab with various tools and resources. Tools allow you to interact with perform specific actions, while resources provide read-only access to data and information.
List accessible GitLab projects with optional filters
Search for projects by name or description
Get programming languages used in a project
Compare two branches or commits
Search for code across projects
Get git blame information for a file
Create a new file in a repository
Update an existing file in a repository
Delete a file from a repository
List issues for a project with optional filters
Create a new issue in a project
Update an existing issue
Find guides and articles to help you get started with Gitlab on Metorial.
Gitlab
Gitlab
Gitlab
Gitlab
Gitlab
Gitlab
Gitlab
Gitlab
A comprehensive Model Context Protocol (MCP) server that provides seamless integration with GitLab's extensive API. This server enables AI assistants and applications to interact with GitLab repositories, manage issues and merge requests, search code, and perform a wide range of development workflow operations. Whether you're looking to automate repository management, streamline code reviews, or enhance project collaboration, this server provides the tools needed to work efficiently with GitLab.
The GitLab MCP server acts as a bridge between AI applications and GitLab's powerful platform, exposing a rich set of capabilities through the Model Context Protocol. It supports operations across the entire GitLab workflow including project management, repository operations, issue tracking, merge request handling, and team collaboration features. The server provides both read and write access, allowing you to query information, create and modify content, and manage your GitLab resources programmatically.
List accessible GitLab projects with comprehensive filtering options.
Parameters:
page (number, optional): Page number for pagination (minimum: 1, default: 1)per_page (number, optional): Number of results per page (1-100, default: 20)search (string, optional): Search query to filter projects by name or descriptionmembership (boolean, optional): Limit results to projects where you are a memberstarred (boolean, optional): Show only starred projectsvisibility (string, optional): Filter by visibility level (public, internal, or private)Search for projects by name or description with keyword matching.
Parameters:
query (string, required): Search query stringper_page (number, optional): Number of results per page (1-100, default: 20)Retrieve programming languages used in a project with percentage breakdowns.
Parameters:
projectId (string, required): Project ID or pathCreate a new file in a repository with full commit metadata.
Parameters:
projectId (string, required): Project ID or pathfilePath (string, required): Path for the new filecontent (string, required): File contentcommitMessage (string, required): Commit messagebranch (string, required): Target branch namestartBranch (string, optional): Source branch for creating a new branchauthorName (string, optional): Commit author nameauthorEmail (string, optional): Commit author emailUpdate an existing file in a repository.
Parameters:
projectId (string, required): Project ID or pathfilePath (string, required): Path to the filecontent (string, required): New file contentcommitMessage (string, required): Commit messagebranch (string, required): Target branch namestartBranch (string, optional): Source branch for creating a new branchauthorName (string, optional): Commit author nameauthorEmail (string, optional): Commit author emailRemove a file from a repository.
Parameters:
projectId (string, required): Project ID or pathfilePath (string, required): Path to the file to deletecommitMessage (string, required): Commit messagebranch (string, required): Target branch namestartBranch (string, optional): Source branch for creating a new branchauthorName (string, optional): Commit author nameauthorEmail (string, optional): Commit author emailSearch for code across projects with optional project-specific filtering.
Parameters:
query (string, required): Search queryprojectId (string, optional): Limit search to specific projectref (string, optional): Branch or tag name to search inper_page (number, optional): Number of results per page (1-100, default: 20)Get git blame information showing who last modified each line of a file.
Parameters:
projectId (string, required): Project ID or pathfilePath (string, required): Path to the fileref (string, optional): Branch or commit SHA (default: main)Compare two branches or commits to see differences.
Parameters:
projectId (string, required): Project ID or pathfrom (string, required): Source branch or commit SHAto (string, required): Target branch or commit SHAList issues for a project with extensive filtering capabilities.
Parameters:
projectId (string, required): Project ID or pathpage (number, optional): Page number (minimum: 1, default: 1)per_page (number, optional): Results per page (1-100, default: 20)state (string, optional): Filter by state (opened, closed, or all)search (string, optional): Search querylabels (string, optional): Comma-separated list of label namesauthorId (number, optional): Filter by author user IDassigneeId (number, optional): Filter by assignee user IDCreate a new issue in a project.
Parameters:
projectId (string, required): Project ID or pathtitle (string, required): Issue titledescription (string, optional): Issue descriptionlabels (string, optional): Comma-separated list of label namesassigneeIds (array of numbers, optional): User IDs to assignmilestoneId (number, optional): Milestone IDdueDate (string, optional): Due date in YYYY-MM-DD formatUpdate an existing issue with new information.
Parameters:
projectId (string, required): Project ID or pathissueIid (number, required): Issue IID (internal ID)title (string, optional): New titledescription (string, optional): New descriptionlabels (string, optional): Comma-separated list of label namesassigneeIds (array of numbers, optional): User IDs to assignmilestoneId (number, optional): Milestone IDdueDate (string, optional): Due date in YYYY-MM-DD formatstateEvent (string, optional): State change event (close or reopen)Close an open issue.
Parameters:
projectId (string, required): Project ID or pathissueIid (number, required): Issue IID (internal ID)Reopen a previously closed issue.
Parameters:
projectId (string, required): Project ID or pathissueIid (number, required): Issue IID (internal ID)Add a comment or note to an issue.
Parameters:
projectId (string, required): Project ID or pathissueIid (number, required): Issue IID (internal ID)body (string, required): Comment text contentSearch for issues across projects.
Parameters:
query (string, required): Search queryprojectId (string, optional): Limit search to specific projectstate (string, optional): Filter by state (opened, closed, or all)per_page (number, optional): Results per page (1-100, default: 20)List merge requests for a project with comprehensive filtering.
Parameters:
projectId (string, required): Project ID or pathpage (number, optional): Page number (minimum: 1, default: 1)per_page (number, optional): Results per page (1-100, default: 20)state (string, optional): Filter by state (opened, closed, locked, merged, or all)search (string, optional): Search querylabels (string, optional): Comma-separated list of label namesauthorId (number, optional): Filter by author user IDassigneeId (number, optional): Filter by assignee user IDsourceBranch (string, optional): Filter by source branch nametargetBranch (string, optional): Filter by target branch nameCreate a new merge request in a project.
Parameters:
projectId (string, required): Project ID or pathsourceBranch (string, required): Source branch nametargetBranch (string, required): Target branch nametitle (string, required): Merge request titledescription (string, optional): Merge request descriptionlabels (string, optional): Comma-separated list of label namesassigneeIds (array of numbers, optional): User IDs to assignmilestoneId (number, optional): Milestone IDremoveSourceBranch (boolean, optional): Remove source branch after mergeUpdate an existing merge request.
Parameters:
projectId (string, required): Project ID or pathmergeRequestIid (number, required): Merge request IID (internal ID)title (string, optional): New titledescription (string, optional): New descriptionlabels (string, optional): Comma-separated list of label namesassigneeIds (array of numbers, optional): User IDs to assignmilestoneId (number, optional): Milestone IDtargetBranch (string, optional): New target branchstateEvent (string, optional): State change event (close or reopen)removeSourceBranch (boolean, optional): Remove source branch after mergeAccept and merge a merge request.
Parameters:
projectId (string, required): Project ID or pathmergeRequestIid (number, required): Merge request IID (internal ID)mergeCommitMessage (string, optional): Custom merge commit messagesquash (boolean, optional): Squash commits on mergeshouldRemoveSourceBranch (boolean, optional): Remove source branch after mergeClose a merge request without merging.
Parameters:
projectId (string, required): Project ID or pathmergeRequestIid (number, required): Merge request IID (internal ID)Reopen a previously closed merge request.
Parameters:
projectId (string, required): Project ID or pathmergeRequestIid (number, required): Merge request IID (internal ID)Add a comment or note to a merge request.
Parameters:
projectId (string, required): Project ID or pathmergeRequestIid (number, required): Merge request IID (internal ID)body (string, required): Comment text contentApprove a merge request.
Parameters:
projectId (string, required): Project ID or pathmergeRequestIid (number, required): Merge request IID (internal ID)Remove your approval from a merge request.
Parameters:
projectId (string, required): Project ID or pathmergeRequestIid (number, required): Merge request IID (internal ID)Create a new branch in a repository.
Parameters:
projectId (string, required): Project ID or pathbranch (string, required): Name of the new branchref (string, required): Source branch name or commit SHADelete a branch from a repository.
Parameters:
projectId (string, required): Project ID or pathbranch (string, required): Name of the branch to deleteProtect a branch from force pushes and deletion with access controls.
Parameters:
projectId (string, required): Project ID or pathbranch (string, required): Name of the branch to protectpushAccessLevel (string, optional): Push access level (0=No access, 30=Developer, 40=Maintainer)mergeAccessLevel (string, optional): Merge access level (0=No access, 30=Developer, 40=Maintainer)allowForcePush (boolean, optional): Allow force pushGet details of the currently authenticated user.
Parameters: None required
List all members of a project with their access levels.
Parameters:
projectId (string, required): Project ID or pathpage (number, optional): Page number (minimum: 1, default: 1)per_page (number, optional): Results per page (1-100, default: 20)The server provides resource templates for accessing GitLab data through URI-based requests:
Get details of a specific GitLab project including metadata, settings, and statistics.
URI Template: gitlab://project/{projectId}
Retrieve file content from a GitLab repository at a specific path.
URI Template: gitlab://project/{projectId}/file/{filePath}
Get directory listing showing files and subdirectories in a repository path.
URI Template: gitlab://project/{projectId}/tree/{path}
List all branches in a GitLab repository with commit information.
URI Template: gitlab://project/{projectId}/branches
Get commit history from a GitLab repository with detailed commit information.
URI Template: gitlab://project/{projectId}/commits
Get complete details of a specific issue including description, metadata, and status.
URI Template: gitlab://project/{projectId}/issue/{issueIid}
Retrieve all comments and notes associated with an issue.
URI Template: gitlab://project/{projectId}/issue/{issueIid}/notes
Get detailed information about a specific merge request including status and metadata.
URI Template: gitlab://project/{projectId}/merge-request/{mergeRequestIid}
Retrieve all comments and discussion notes on a merge request.
URI Template: gitlab://project/{projectId}/merge-request/{mergeRequestIid}/notes
Get the diff and changes for a merge request showing modified files and lines.
URI Template: gitlab://project/{projectId}/merge-request/{mergeRequestIid}/changes
This GitLab MCP server enables numerous powerful workflows:
The server's comprehensive API coverage makes it suitable for both simple queries and complex multi-step workflows, providing the flexibility needed for diverse GitLab integration scenarios.
Let's take your AI-powered applications to the next level, together.
Metorial provides developers with instant access to 600+ MCP servers for building AI agents that can interact with real-world tools and services. Built on MCP, Metorial simplifies agent tool integration by offering pre-configured connections to popular platforms like Google Drive, Slack, GitHub, Notion, and hundreds of other APIs. Our platform supports all major AI agent frameworks—including LangChain, AutoGen, CrewAI, and LangGraph—enabling developers to add tool calling capabilities to their agents in just a few lines of code. By eliminating the need for custom integration code, Metorial helps AI developers move from prototype to production faster while maintaining security and reliability. Whether you're building autonomous research agents, customer service bots, or workflow automation tools, Metorial's MCP server library provides the integrations you need to connect your agents to the real world.