home / mcp / gitlab mcp server

GitLab MCP Server

Provides GitLab integration for AI agents to monitor docs, read code, and manage issues/MRs across repositories.

Installation
Add the following to your MCP client configuration file.

Configuration

View docs
{
  "mcpServers": {
    "oregpt-agenticledger_mcp_gitlab": {
      "command": "node",
      "args": [
        "path/to/GitlabMCP/dist/index.js"
      ],
      "env": {
        "GITLAB_API_URL": "https://gitlab.com/api/v4"
      }
    }
  }
}

You can run a GitLab MCP Server that lets AI agents read GitLab repositories, monitor documentation changes, and manage issues, merge requests, and wikis. This enables automated content tracking, repository exploration, and collaborative workflows driven by AI.

How to use

Use the GitLab MCP Server with an MCP client to perform project searches, read repository contents, monitor commits and project events, and manipulate issues, merge requests, and wiki pages. The server exposes a range of tools that you can call from your MCP client to perform these tasks and feed updated content into your data pipelines.

How to install

{
  "mcpServers": {
    "gitlab": {
      "command": "node",
      "args": ["path/to/GitlabMCP/dist/index.js"],
      "env": {
        "GITLAB_API_URL": "https://gitlab.com/api/v4"
      }
    }
  }
}

Configuration

Configure your MCP client to use the GitLab MCP Server by providing the server configuration shown above. The server expects a GitLab Personal Access Token (PAT) with appropriate scopes for read and write operations as described in the token guidance. The API URL can be overridden with GITLAB_API_URL if you operate a self-hosted GitLab instance.

Security and tokens

Create a GitLab PAT with the required scopes (read_api, read_repository, and api as needed). Keep tokens secret and rotate them regularly. Use the token only in secure environments and never expose it in client code or logs.

Examples and notes

Use the client to perform tasks such as searching for projects, listing and inspecting files, tracking commits in a docs folder, reading updated documents, and working with issues and merge requests. The server supports a broad set of operations to cover monitoring, content access, and collaboration workflows.

Troubleshooting

If you encounter authentication errors, verify that your GitLab PAT has the necessary scopes and that GITLAB_API_URL points to the correct API endpoint for your instance. For rate limit issues, respect pagination and apply since/until filters to limit response sizes. Ensure your MCP client sends the correct token and target project identifiers.

Available tools

gitlab_search_projects

Search for GitLab projects by name or description using a provided access token and optional paging parameters.

gitlab_get_project

Retrieve detailed information about a specific GitLab project by ID or URL-encoded path.

gitlab_list_group_projects

List all projects within a specified group, with optional filtering and sorting.

gitlab_get_file_contents

Read the contents of a file from a repository to access documentation and other assets.

gitlab_get_tree

List files and directories in a repository path to explore project structure.

gitlab_create_or_update_file

Create or update a file in a repository with a commit message.

gitlab_list_commits

List recent commits for a project, with optional filters such as path, author, and date range.

gitlab_get_commit_diff

Get file changes for a specific commit to identify what was modified.

gitlab_compare

Compare two references (branches, tags, or commits) to see differences.

gitlab_get_project_events

Fetch recent project activity events such as pushes and comments.

gitlab_list_issues

List issues in a project with optional filtering by state, labels, and assignee.

gitlab_get_issue

Retrieve details for a specific issue.

gitlab_create_issue

Create a new issue in a project.

gitlab_list_issue_notes

List comments on a specific issue.

gitlab_list_merge_requests

List merge requests with optional filtering by state, labels, and assignee.

gitlab_get_merge_request

Get detailed information on a merge request.

gitlab_get_merge_request_changes

Obtain the file changes included in a merge request.

gitlab_create_merge_request

Create a new merge request in a project.

gitlab_list_wiki_pages

List all wiki pages in a project.

gitlab_get_wiki_page

Get content of a specific wiki page.

gitlab_create_wiki_page

Create a new wiki page.

gitlab_update_wiki_page

Update an existing wiki page.

gitlab_search

Search across GitLab projects, issues, merge requests, blobs, commits, and more.