Skip to main content
Glama
README.md
# GitLab MCP Server

![Python](https://img.shields.io/badge/python-3.8+-cyan.svg)
![GitLab](https://img.shields.io/badge/GitLab-API-orange.svg)
![MCP](https://img.shields.io/badge/MCP-HTTP-gree.svg)
![Docker](https://img.shields.io/badge/Docker-supported-blue.svg)

HTTP-based Model Context Protocol (MCP) server for GitLab with HTTP header authentication.


## Installation

Use install.bat or run manually:

```bash
python -m venv venv
.\venv\Scripts\activate.bat
pip install -r requirements.txt
pip install pip-system-certs
```

## Running the Server

```bash
.\venv\Scripts\activate.bat
python run_server.py```n
Server will be at: http://127.0.0.1:8000/mcp
```

## Configuration

Required headers:

```text
Authorization: Bearer <gitlab-token>
X-GitLab-Server: https://gitlab.centrala.bzwbk/
Accept: application/json, text/event-stream
```

GitLab Token needs permissions:
- `read_api` - for reading issues, merge requests, and other API resources
- `write_api` - for creating issues and other write operations
- `read_repository` - for accessing repository content (files, commits, branches)
- `read_user` - for accessing user information
- `api` - full API access (alternative to read_api + write_api)
- `read_registry` - for container registry operations (optional)


## Available Tools

- get_my_projects - Get list of user's projects
- get_user_info - Get current user information
- get_my_issues - Get issues assigned to user
- get_my_merge_requests - Get user's merge requests
- search_projects - Search projects by name
- get_project_info - Get project details
- get_project_files - List project files and directories
- get_file_content - Get file content
- get_project_commits - Get recent commits from a branch
- create_issue - Create new issue
- get_project_merge_requests - Get MRs for specific project
- get_project_issues - Get issues for specific project
- get_project_pipelines - Get project pipelines (CI/CD)
- search_files_in_project - Search files by name
- get_project_branches - List all project branches
- get_commit_details - Get detailed commit information
- get_commit_diff - Get changes in a specific commit
- compare_branches - Compare two branches
- get_file_history - Get commit history for a file


## Docker

See [DOCKER.md](DOCKER.md) for Docker instructions.