Skip to main content
Glama
elisjetmax

gitlab-mcp-server

by elisjetmax

gitlab-mcp-server

An MCP (Model Context Protocol) server for a self-hosted GitLab instance, focused on browsing projects and repositories. It exposes read-only tools so an MCP client (Claude desktop, Claude Code, etc.) can list projects, inspect branches and commits, browse the file tree, and read file contents.

Tools

Tool

Purpose

gitlab_list_projects

List / search projects, filter by owned or membership

gitlab_get_project

Detailed info for one project (default branch, clone URLs, etc.)

gitlab_list_branches

List repository branches with their tip commit

gitlab_list_commits

List commits, filter by ref / path / date range

gitlab_get_commit

Full details and line-change stats for one commit

gitlab_list_repository_tree

Browse files & directories at a path (optionally recursive)

gitlab_get_file

Read decoded contents of a single file

All tools are read-only and support pagination (page, per_page) and a response_format of markdown (default) or json.

Related MCP server: GitLab MCP Server

Requirements

  • Node.js 18+

  • A GitLab Personal Access Token (PAT)

Setup

npm install
npm run build

Create a Personal Access Token

In GitLab: User Settings → Access Tokens. Create a token with these scopes:

  • read_api — required for listing projects, branches and commits

  • read_repository — required for the repository tree and file contents

Keep the token secret. It is read from an environment variable, never stored in code.

Configuration

Variable

Required

Description

GITLAB_BASE_URL

yes

Base URL of your instance, e.g. https://gitlab.example.com (no /api/v4 suffix needed)

GITLAB_TOKEN

yes

Your Personal Access Token

TRANSPORT

no

stdio (default) or http

PORT

no

Port for http transport (default 3000)

Running

# stdio (default — for local MCP clients)
GITLAB_BASE_URL=https://gitlab.example.com GITLAB_TOKEN=glpat-xxxx npm start

# HTTP transport (binds to 127.0.0.1)
TRANSPORT=http PORT=3000 GITLAB_BASE_URL=https://gitlab.example.com GITLAB_TOKEN=glpat-xxxx npm start

Connecting to an MCP client

Most desktop clients use a JSON config block. Point it at the built entry point and supply the environment variables:

{
  "mcpServers": {
    "gitlab": {
      "command": "node",
      "args": ["/absolute/path/to/gitlab-mcp-server/dist/index.js"],
      "env": {
        "GITLAB_BASE_URL": "https://gitlab.example.com",
        "GITLAB_TOKEN": "glpat-xxxxxxxxxxxxxxxxxxxx"
      }
    }
  }
}

Replace the path with the absolute path to dist/index.js on your machine, and fill in your instance URL and token. Restart the client to pick up the new server.

Project structure

gitlab-mcp-server/
├── package.json
├── tsconfig.json
├── README.md
└── src/
    ├── index.ts            # Entry point, transport selection, env validation
    ├── constants.ts        # Config readers and limits
    ├── types.ts            # GitLab resource interfaces
    ├── schemas/common.ts   # Shared Zod schema fragments
    ├── services/client.ts  # Authenticated API client, pagination, errors
    └── tools/projects.ts   # Tool definitions and registration

Identifying projects

Wherever a project_id is required, you can pass either:

  • the numeric project ID, e.g. 42, or

  • the namespace path, e.g. mygroup/myrepo (the server URL-encodes it for you).

Notes

  • This server only performs read operations. It never creates, edits, or deletes anything in GitLab.

  • Large file or list responses are truncated at 25,000 characters; use pagination or narrower filters to retrieve more.

  • For development with auto-reload: npm run dev.

A
license - permissive license
-
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

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

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