GitLab

by chris-miaskowski

346 downloads
Not rated
GitHub

About

Integrates with GitLab repositories to enable searching, file management, issue creation, merge requests, forking, and branch creation through Node.js with robust Zod schema validation.

Details

Author
chris-miaskowski
Repository
chris-miaskowski/custom-gitlab-mcp-server
Downloads
346
Categories
Developer Tools, Other, Project Management, Design, File Management, AI, Search, Infrastructure, Frontend
Tags
#integration

- Search GitLab repositories
- Fetch file or directory contents
- Create or update single files
- Push multiple files in a single commit
- Create new GitLab projects
- Create issues and merge requests
- Fork repositories and create branches

Setting up with Highlight

This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:

  1. Download and install Highlight from highlightai.com/download
  2. Navigate to the plugins tab and select "Add Custom Plugin"
  3. Configure the plugin with the settings below
    Plugin Name GitLab
    Command (node, npx, python, etc.) node
    Arguments
    • Argument 1 /path/to/custom-gitlab-server/index.js
    Environment
    • GITLAB_API_URL https://your-gitlab-instance/api/v4
    • GITLAB_PERSONAL_ACCESS_TOKEN your-gitlab-token

    Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.

  4. Enable "Start Automatically" if you want the plugin to start when Highlight launches

From the repository

1. Clone this repository
2. Install dependencies:

   npm install

3. Configure in your Claude settings file or Claude Desktop config file:
   {
"mcpServers": {
"github.com/modelcontextprotocol/servers/tree/main/src/gitlab": {
"command": "node",
"args": [
"/path/to/custom-gitlab-server/index.js"
],
"env": {
"GITLAB_PERSONAL_ACCESS_TOKEN": "your-gitlab-token",
"GITLAB_API_URL": "https://your-gitlab-instance/api/v4"
}
}
}
}

search_repositories

Search for GitLab projects.

get_file_contents

Get contents of a file or directory.

create_or_update_file

Create or update a single file.

push_files

Push multiple files in a single commit.

create_repository

Create a new GitLab project.

create_issue

Create a new issue.

create_merge_request

Create a new merge request.

fork_repository

Fork a project.

create_branch

Create a new branch.

| Tool Name | Description |
|-----------|-------------|
| search_repositories | Search for GitLab projects |
| get_file_contents | Get contents of a file or directory |
| create_or_update_file | Create or update a single file |
| push_files | Push multiple files in a single commit |
| create_repository | Create a new GitLab project |
| create_issue | Create a new issue |
| create_merge_request | Create a new merge request |
| fork_repository | Fork a project |
| create_branch | Create a new branch |

Claude Desktop / Cursor

Paste into your MCP client config file to install this server.

{
    "mcpServers": {
        "gitlab": {
            "env": {
                "GITLAB_API_URL": "https://your-gitlab-instance/api/v4",
                "GITLAB_PERSONAL_ACCESS_TOKEN": "your-gitlab-token"
            },
            "args": [
                "/path/to/custom-gitlab-server/index.js"
            ],
            "command": "node"
        }
    }
}

Linux

{
    "env": {
        "GITLAB_API_URL": "https://your-gitlab-instance/api/v4",
        "GITLAB_PERSONAL_ACCESS_TOKEN": "your-gitlab-token"
    },
    "args": [
        "/path/to/custom-gitlab-server/index.js"
    ],
    "command": "node"
}

Macos

{
    "env": {
        "GITLAB_API_URL": "https://your-gitlab-instance/api/v4",
        "GITLAB_PERSONAL_ACCESS_TOKEN": "your-gitlab-token"
    },
    "args": [
        "/path/to/custom-gitlab-server/index.js"
    ],
    "command": "node"
}

Windows

{
    "env": {
        "GITLAB_API_URL": "https://your-gitlab-instance/api/v4",
        "GITLAB_PERSONAL_ACCESS_TOKEN": "your-gitlab-token"
    },
    "args": [
        "/path/to/custom-gitlab-server/index.js"
    ],
    "command": "node"
}

Custom GitLab MCP Server

A custom implementation of the GitLab MCP (Model Context Protocol) server for integration with Claude and other MCP-compliant AI assistants.

Overview

This MCP server provides seamless integration with GitLab repositories, allowing AI assistants to:
- Search GitLab repositories
- Fetch file contents
- Create or update files
- Push multiple files in a single commit
- Create issues and merge requests
- Fork repositories
- Create branches

Fixed Implementation

This custom implementation fixes issues with schema validation that were present in the standard GitLab MCP server implementation, specifically for the search_repositories tool.

Installation

1. Clone this repository
2. Install dependencies:

   npm install

3. Configure in your Claude settings file or Claude Desktop config file:
   {
"mcpServers": {
"github.com/modelcontextprotocol/servers/tree/main/src/gitlab": {
"command": "node",
"args": [
"/path/to/custom-gitlab-server/index.js"
],
"env": {
"GITLAB_PERSONAL_ACCESS_TOKEN": "your-gitlab-token",
"GITLAB_API_URL": "https://your-gitlab-instance/api/v4"
}
}
}
}

Prerequisites

- Node.js (v14 or higher)
- GitLab Personal Access Token with appropriate scopes:
- api for full API access
- read_api for read-only access
- read_repository and write_repository for repository operations

Available Tools

| Tool Name | Description |
|-----------|-------------|
| search_repositories | Search for GitLab projects |
| get_file_contents | Get contents of a file or directory |
| create_or_update_file | Create or update a single file |
| push_files | Push multiple files in a single commit |
| create_repository | Create a new GitLab project |
| create_issue | Create a new issue |
| create_merge_request | Create a new merge request |
| fork_repository | Fork a project |
| create_branch | Create a new branch |

License

MIT

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.