- Python 99.6%
- Makefile 0.3%
| .forgejo/workflows | ||
| .gitea/issue_template | ||
| .github | ||
| src/gitlab_mcp | ||
| tests | ||
| .env.example | ||
| .gitignore | ||
| .pre-commit-config.yaml | ||
| .python-version | ||
| CLAUDE.md | ||
| docker-compose.yml | ||
| Dockerfile | ||
| Makefile | ||
| pyproject.toml | ||
| README.md | ||
| uv.lock | ||
ogx-gitlab 🦊
MCP bridge to GitLab CE — 85 CE-only tools for managing repositories, issues, merge requests, pipelines, and wikis via AI agents.
✨ Overview
ogx-gitlab is a fork of nostoslabs/gitlab-mcp (MIT license), adapted for Generate One's GitLab CE 18.9.1 instance. It exposes 85 GitLab CE-compatible tools via SSE transport, registered in MetaMCP under the ogx-gitlab namespace. Premium/tier-gated tools have been removed. Built with Python, python-gitlab, and FastMCP.
Note: The GitLab CE instance at
git.opengenix.comand theogx-gitlabMetaMCP namespace were decommissioned on 2026-03-20. This repo is preserved as a reference. Generate One's primary git hosting uses Forgejo via g1-git and theg1-codeMCP namespace.
🏗️ Architecture
Claude Code / Claude Desktop
|
▼
+---------------+
| MetaMCP | mcp.generate.one
| ogx-gitlab ns |
+-------+-------+
|
▼
+------------------+
| ogx-gitlab | Standalone container
| Python + FastMCP | 85 CE-only tools
| SSE at :8000 | host port: 8030
+--------+---------+
|
▼
+-----------------+
| GitLab CE | git.opengenix.com
| 18.9.1 |
+-----------------+
📦 Services
| Service | Image | Port | Description |
|---|---|---|---|
ogx-gitlab |
ogx-gitlab:latest (local build) |
8030→8000 | 85 GitLab CE tools via SSE |
🚀 Quick Start
# Build and run (local-build pattern — not Coolify-managed)
git clone https://git.generate.one/generate-one/ogx-gitlab.git
cd ogx-gitlab
cp .env.example .env
# Set GITLAB_PERSONAL_ACCESS_TOKEN and GITLAB_API_URL
docker compose build
docker compose up -d
docker compose logs -f gitlab-mcp
# Run tests
uv run pytest
# Linting
uv run ruff check src/
uv run mypy src/
🔧 Configuration
| Variable | Description | Default |
|---|---|---|
GITLAB_PERSONAL_ACCESS_TOKEN |
GitLab API token (api + create_repo + rw_repo scopes) |
— |
GITLAB_API_URL |
GitLab instance URL | https://git.opengenix.com |
SSE |
Enable SSE transport ("true") |
true |
HOST |
Listen address | 0.0.0.0 |
PORT |
Listen port | 8000 |
📊 Tool Categories
85 tools organized by GitLab domain:
| Category | Count | Examples |
|---|---|---|
| Projects | 8 | list, get, create, fork, search, archive |
| Issues | 10 | CRUD, links, labels, discussions |
| Merge Requests | 8 | list, get, create, update, merge, diffs |
| Repository | 10 | files, branches, commits, tree, compare |
| Pipelines | 8 | jobs, logs, retry, cancel, triggers |
| Wiki | 6 | pages, attachments, CRUD |
| Milestones | 8 | CRUD, issues, MRs |
| Labels | 4 | CRUD |
| Users | 4 | search, get, org membership |
| Other | 19 | releases, tags, namespaces, draft notes |
Removed Premium Tools
These 3 tools were stripped as they require GitLab Premium/Ultimate:
approve_merge_requestlist_group_iterationsget_milestone_burndown
🔬 Tech Stack
- Python 3.12 with uv package manager
- fastmcp >= 2.12.4 — MCP server framework
- python-gitlab >= 6.4.0 — GitLab API client
- pydantic >= 2.12.0 — data validation
- structlog — structured logging
- Multi-stage Docker build (builder + production)
🔀 Changes from Upstream
Forked from nostoslabs/gitlab-mcp:
- Removed 3 Premium-only tools
- Fixed
get_repository_treebug (dict/object compatibility) - Added Dockerfile for containerized deployment
- Configured for GitLab CE target
- Added SSE transport mode
🔗 Related Repos
| Repo | Relationship |
|---|---|
| g1-git | Forgejo (primary git host) — replaced GitLab |
| svc-tools | MetaMCP hosted the ogx-gitlab namespace |
| g1-shared | Shared conventions |
📄 License
MIT — Original work by nostoslabs.
🛡️ Part of Generate One
Generate One — AI infrastructure that answers to you.
Self-hosted, sovereign AI platform. generate.one