GitLab CLI MCP Server
Seamlessly integrate AI assistants with GitLab using the glab CLI tool.
GitLab MCP Server (Swift)
A Model Context Protocol (MCP) server that wraps the GitLab CLI (glab) to provide GitLab functionality to AI assistants like Claude Desktop.
Features
- š Native Swift implementation using the official MCP Swift SDK
- š§ Full GitLab CLI integration - supports all
glabcommands - šÆ Smart prompts for common workflows (merge requests, CI/CD, daily standup)
- š JSON output parsing with fallback to plain text
- š Secure authentication via system
glabcredentials - ā” High performance with Swift's async/await concurrency
Prerequisites
- macOS (Swift 5.9+ installed via Xcode)
- glab CLI installed and authenticated
- Claude Desktop or another MCP-compatible client
Installation
Quick Install
# Clone the repository
git clone https://github.com/yourusername/gitlab-mcp-swift.git
cd gitlab-mcp-swift
# Run the install script
./install.sh
The install script will:
- Build the server using Swift Package Manager
- Install it to
~/.swiftpm/bin/git-lab-mcp - Display the configuration for Claude Desktop
Manual Installation
# Build the project
swift build -c release
# Install to a location in your PATH
cp .build/release/git-lab-mcp ~/.swiftpm/bin/
Configuration
Add to your Claude Desktop configuration (~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"gitlab": {
"command": "/Users/YOUR_USERNAME/.swiftpm/bin/git-lab-mcp",
"args": ["--log-level", "info"],
"env": {
"PATH": "/opt/homebrew/bin:/usr/local/bin:/usr/bin:/bin"
}
}
}
}
Authentication
The server uses your existing glab CLI authentication:
# Login to GitLab
glab auth login
# Check authentication status
glab auth status
Available Tools
Core Tools
glab_mr- Merge request operations (list, create, view, merge, approve)glab_issue- Issue management (list, create, view, close, update)glab_ci- CI/CD pipeline operations (view, list, run, retry)glab_repo- Repository operations (clone, fork, view, archive)glab_api- Direct GitLab API accessglab_auth- Authentication managementglab_version- Version informationglab_raw- Execute any glab command directly
Prompts
The server includes intelligent prompts for common workflows:
my-mrs- Check your merge requestscreate-mr- Create a merge request with guided parametersdaily-standup- Gather GitLab activity for daily standupsreview-pipeline- Review CI/CD pipeline status
Usage Examples
Check Your Merge Requests
Use the prompt "my-mrs" to see all your open merge requests
Create a Merge Request
Use the prompt "create-mr" with:
- title: "Fix: Memory leak in user service"
- source_branch: "fix/memory-leak"
- target_branch: "main"
Run CI/CD Pipeline
Use tool "glab_ci" with:
- subcommand: "run"
- repo: "myteam/myproject"
Development
Building from Source
# Clone the repository
git clone https://github.com/yourusername/gitlab-mcp-swift.git
cd gitlab-mcp-swift
# Build in debug mode
swift build
# Run tests
swift test
# Build for release
swift build -c release
Project Structure
gitlab-mcp-swift/
āāā Sources/
ā āāā GitLabMCP/
ā āāā GitLabMCPServer.swift # Main server implementation
ā āāā GitLabMCPCommand.swift # CLI entry point
ā āāā GitLabCLI.swift # GitLab CLI wrapper
āāā Package.swift # Swift package manifest
āāā install.sh # Installation script
āāā README.md # This file
Troubleshooting
Server fails to start
- Ensure
glabis installed:which glab - Check authentication:
glab auth status - Run with debug logging:
--log-level debug
Commands return "not authenticated"
- Run
glab auth loginto authenticate - For self-hosted instances:
glab auth login --hostname your.gitlab.instance
MCP connection issues
- Restart Claude Desktop after configuration changes
- Check the logs in Claude Desktop's developer console
- Verify the executable path is correct in the configuration
Contributing
Contributions are welcome! Please:
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
License
MIT License - see LICENSE file for details
Acknowledgments
- Built with the Model Context Protocol Swift SDK
- Wraps the excellent GitLab CLI (glab)
- Inspired by the need for better GitLab integration in AI assistants
Related Servers
GitHub MCP Lightweight
A lightweight server for analyzing GitHub issues and pull requests using a Personal Access Token.
MCP PR Messages Generator
Generates Pull Request messages based on Git commits and changes.
Gitea MCP Server
A server for seamless integration with self-hosted Gitea platforms, allowing management of repositories and other resources.
Git File Forensics
Performs deep, file-level forensics on Git repositories to analyze file histories, changes, and patterns.
MCP GitHub Project Manager
Manage GitHub projects with requirements traceability and advanced workflows.
GitHub MCP Server
Integrates with GitHub APIs for advanced automation and interaction, supporting both remote and local deployments.
Bitbucket
Manage Bitbucket repositories, pull requests, and pipelines via the Bitbucket API for both Cloud and Server.
Better GitLab MCP Server
An improved GitLab MCP server with bug fixes and enhancements for accessing GitLab resources.
Memstate AI
Agent memory with git-like version control. Custom LLMs turn conversations into structured facts with automatic conflict detection - your agent sees how decisions evolved, not four contradictory text blobs. 80% token reduction vs RAG/graph systems. MCP + REST.
GitHub Project Manager with Resource System
A server for GitHub project management with advanced resource management, capacity planning, and workload optimization capabilities.