How Wix scaled AI-native work to 5,000 employees with Willow
Read More
Enterprise Connectors
GitLab logo. GitLab MCP server connector.

GitLab MCP Server

Usage stats for the GitLab MCP server appear once 5+ Willow orgs use this connector.

GitLab is a complete DevOps platform for source code management, CI/CD, issue tracking, and collaboration.

ToolsTools
33
Last updatedLast Updated
CategoryCategory
All
✓Enterprise-grade security
✓SSO & authentication ready
✓Full governance & audit logs

What is the GitLab MCP Server?

The GitLab MCP server gives AI agents structured, permission-aware access to GitLab through the Model Context Protocol. With 33 pre-built actions, agents can read, create, and update GitLab data on behalf of authorized users.

Willow ships the GitLab MCP server as part of an enterprise control plane. Every call runs behind SSO (Okta, Azure AD), enforces RBAC and least-privilege at runtime, writes to a full audit trail, and integrates with Splunk and Loki for SIEM visibility. Connect from Claude Desktop, Claude Code, Cursor, ChatGPT, VS Code, n8n, or any custom agent. Install once, distribute org-wide, and see exactly how GitLab is being used by every AI agent in your stack.

Tools

List Projects

List all projects accessible to the authenticated user. Returns basic project information including name, description, visibility, and repository details. Use pagination to browse through large result sets. Can filter by membership, visibility, archived status, and more.

Get Project

Get detailed information about a specific project by its ID or URL-encoded path (e.g., 'namespace/project-name'). Returns comprehensive project details including repository info, permissions, statistics, and CI/CD settings.

Create Project

Create a new GitLab project. You can create an empty project or initialize it with a README. Set visibility level, features, and other project settings. Returns the created project details.

Update Project

Update project settings including name, description, visibility, default branch, and feature flags (issues, merge requests, wiki, etc.). Returns the updated project details.

Delete Project

Delete a project permanently. This action is irreversible and will delete all project data including repository, issues, merge requests, and CI/CD pipelines. Use with caution.

List Issues

List issues in a project or across all accessible projects. Filter by state (opened, closed), labels, assignee, author, milestone, and more. Use project_id to scope to a specific project, or omit it to see all issues across projects you have access to.

Get Issue

Get detailed information about a specific issue including title, description, state, labels, assignees, comments, and time tracking. Use the project-specific issue IID (internal ID), not the global issue ID.

Create Issue

Create a new issue in a project. Provide a title and optionally a description, labels, assignees, milestone, and due date. Returns the created issue details including its IID.

Update Issue

Update an existing issue's title, description, state, labels, assignees, milestone, or other properties. Provide only the fields you want to update. Returns the updated issue.

Delete Issue

Delete an issue permanently. This action is irreversible. Only project owners and administrators can delete issues. Returns 204 on success.

List Merge Requests

List merge requests in a project or across all accessible projects. Filter by state (opened, closed, merged), author, assignee, reviewer, labels, target branch, and more. Use this to find MRs needing review or track merge request status.

Get Merge Request

Get detailed information about a specific merge request including title, description, state, source and target branches, approvals, changes, pipeline status, and discussions. Use the MR IID (internal ID).

Create Merge Request

Create a new merge request to merge changes from a source branch into a target branch. Provide title, description, and optionally assign reviewers, set labels, and link to issues. Returns the created MR details.

Update Merge Request

Update an existing merge request's title, description, state, target branch, assignees, reviewers, or labels. Provide only the fields you want to update. Returns the updated MR.

Approve Merge Request

Approve a merge request. If the project requires approvals before merging, this adds your approval. Returns the updated approval state including all approvers.

Merge Merge Request

Merge an approved merge request. The MR must be mergeable (no conflicts, pipeline passed if required, approvals met). Optionally remove the source branch after merge and provide a custom merge commit message.

List Pipelines

List CI/CD pipelines in a project. Filter by status (running, pending, success, failed), branch, tag, user, and more. Returns pipeline details including status, duration, and associated commit.

Get Pipeline

Get detailed information about a specific pipeline including all jobs, their status, duration, artifacts, and test reports. Use this to monitor pipeline execution and troubleshoot failures.

Create Pipeline

Trigger a new pipeline run for a specific branch or tag. Optionally pass variables to the pipeline. Use this to manually trigger CI/CD pipelines or run scheduled pipelines on demand.

Retry Pipeline

Retry a failed pipeline, re-running all failed and canceled jobs. Use this to retry pipelines after fixing issues or when transient errors occurred. Returns the updated pipeline.

Cancel Pipeline

Cancel a running or pending pipeline, stopping all running jobs and canceling pending jobs. Use this to stop pipelines that are no longer needed. Returns the canceled pipeline.

List Branches

List all branches in a repository. Returns branch names, last commit information, protection status, and merge status. Use search parameter to filter branches by name.

Create Branch

Create a new branch in a repository from an existing branch or commit. Provide the new branch name and the ref (branch name or commit SHA) to branch from. Returns the created branch details.

Delete Branch

Delete a branch from the repository. Protected branches cannot be deleted via API. Use with caution as this permanently removes the branch reference (commits remain in the repository).

List Commits

List repository commits with filtering options. Filter by branch/tag, author, date range, file path, and search commit messages. Returns commit SHA, message, author, timestamp, and parent commits.

Get File

Get the contents of a file from the repository. Specify the file path and optionally the branch/tag/commit. Returns the file content (base64 encoded for binary files) along with metadata like size, encoding, and last commit.

Create File

Create a new file in the repository. Provide the file path, content, commit message, and target branch. The content should be plain text or base64 encoded for binary files. Returns the created file details.

Update File

Update an existing file in the repository. Provide the file path, new content, commit message, and target branch. The content replaces the entire file. Returns the updated file details.

Get Current User

Get information about the currently authenticated user including username, name, email, avatar, and account status. Use this to verify authentication and get user details.

List Groups

List all groups accessible to the authenticated user. Filter by owned groups, membership, and search by name. Returns group information including name, path, description, and visibility level.

Get Group

Get detailed information about a specific group by its ID or URL-encoded path. Returns group details including projects, members, subgroups, and statistics if you have sufficient permissions.

Search Projects

Perform a global search for projects across your GitLab instance. Search by project name, description, or path. Returns projects matching the search query with their details.

Search Code

Search for code across all accessible projects or within a specific project. Search by filename or file content. Use this to find where specific code patterns, functions, or configurations are used. Returns matching files with snippets.

Customize tools

Customize Tools

Edit descriptions, modify arguments, select tools, or add new ones

ReviewEdit descriptions
ConfigureChange arguments
ApproveSelect tools
Create NewAdd tool

Set Up Your GitLab MCP Server in Minutes

Add the following configuration to your MCP client. Authentication is handled via OAuth. Compatible with Claude Desktop, Claude Code, Cursor, ChatGPT, VS Code, n8n, and any MCP-compatible agent.

Claude Desktop

claude_desktop_config.json
{
  "mcpServers": {
    "willow-gitlab": {
      "type": "http",
      "url": "https://<org>.mcp-s.com/mcp/mcp/gitlab"
    }
  }
}

Cursor

.cursor/mcp.json
{
  "mcpServers": {
    "willow-gitlab": {
      "type": "http",
      "url": "https://<org>.mcp-s.com/mcp/mcp/gitlab"
    }
  }
}

Claude Code

CLI
claude mcp add willow-gitlab --transport http https://<org>.mcp-s.com/mcp/mcp/gitlab

n8n

HTTP Request Node
{
  "url": "https://<org>.mcp-s.com/mcp/mcp/gitlab",
  "method": "POST"
}

Or click "Install with Willow" above to set up automatically with SSO and RBAC preconfigured.

Enterprise Governance for GitLab

Willow adds the layer GitLab and every other SaaS doesn't ship out of the box: every call runs behind SSO (Okta, Azure AD), enforces RBAC and least-privilege at runtime, writes to full audit logs, and detects shadow AI usage across your stack. One MCP gateway. Any agent. Every tool.

GitLab MCP Server FAQ

What is the GitLab MCP server?

The GitLab MCP server is a Model Context Protocol implementation that lets AI agents like Claude, Cursor, and ChatGPT read and write GitLab data through a standardized interface. Willow hosts and governs this server so enterprises can roll it out without a security review backlog.

How is Willow's GitLab MCP server different from the official one?

The official GitLab MCP server is scoped to a single user's account and does not include enterprise governance. Willow's version adds SSO, RBAC, audit logging, shadow AI detection, and centralized control over which actions agents can take across the entire org.

Which AI clients work with the GitLab MCP server?

Claude Desktop, Claude Code, Cursor, ChatGPT, VS Code with MCP support, n8n, and any custom agent built with OpenAI Agents SDK, LangChain, Vercel AI SDK, or Anthropic SDK.

Is the GitLab MCP server secure? How does Willow handle authentication?

Every call runs behind your existing SSO (Okta, Azure AD). Per-user OAuth scopes the agent to exactly what that user can do in GitLab, nothing more. No credentials reach the LLM. Every action writes to an audit trail.

Can I limit which GitLab actions agents can take?

Yes. Willow lets you scope agents to specific actions, specific projects, or specific environments. Toggle actions on or off in the dashboard, or enforce policy via infrastructure-as-code through GitHub.

How do I detect shadow GitLab MCP servers in my org?

Willow's browser extension and discovery service surface unmanaged MCP servers, skills, and AI agents across the org. If a developer installed an unapproved GitLab MCP locally, you'll see it.

What does the GitLab MCP server cost?

Pricing depends on org size and deployment model (SaaS, dedicated cloud, self-host). See withwillow.ai/pricing or contact sales for a quote.

How do I install the GitLab MCP server with Willow?

Install via the Willow Connect Panel in one click, or paste the JSON snippet above into your Claude Desktop, Cursor, or Claude Code config. SSO and RBAC inherit from your existing Willow setup.

Compare Willow MCP Gateway

See how Willow stacks up against other MCP platforms on governance, security, and enterprise readiness.

Your agents are already in the wild.

Give them a Basecamp. Go from AI chaos to AI work, in minutes.