# Gitlab MCP Server

Model Context Protocol (MCP) server for GitLab — exposes 1000 GitLab REST & GraphQL API operations as MCP tools (32 meta-tools / 47 enterprise), 24 resources, 38 prompts, and 17 completion types for …

## Quick Start

```bash
# Connect this server (installs CLI if needed)
npx -y @smithery/cli@latest mcp add jmrp/gitlab-mcp-server

# Browse available tools
npx -y @smithery/cli@latest tool list jmrp/gitlab-mcp-server

# Get full schema for a tool
npx -y @smithery/cli@latest tool get jmrp/gitlab-mcp-server gitlab_access

# Call a tool
npx -y @smithery/cli@latest tool call jmrp/gitlab-mcp-server gitlab_access '{}'
```

## Direct MCP Connection

Endpoint: `https://gitlab-mcp-server-jmrplens.run.tools`

**Optional config:**
- `GITLAB_URL` (query) — GitLab instance base URL
- `PRIVATE-TOKEN` (query) — Gitlab Personal Access Token
- `GITLAB_SKIP_TLS_VERIFY` (query) — Skip TLS certificate verification for self-signed certs
- `META_TOOLS` (query) — Enable domain-level meta-tools (28 base / 43 enterprise instead of 1000)
- `GITLAB_ENTERPRISE` (query) — Enable Enterprise/Premium tools: gates 35 individual tool sub-packages and 15 dedicated meta-tools

## Tools (33)

- `gitlab_access` — Manage GitLab access credentials: access tokens (project/group/personal), deploy tokens, deploy keys, access requests, …
- `gitlab_admin` — GitLab self-managed instance administration: topics, settings, appearance, broadcast messages, instance feature flags, …
- `gitlab_analyze` — LLM-assisted analysis of GitLab data via MCP sampling. Each action fetches data through GitLab APIs, then asks the conn…
- `gitlab_branch` — Manage Git branches and branch protections in a project, plus aggregated branch rules (GraphQL). Delete and unprotect a…
- `gitlab_ci_catalog` — Discover and inspect CI/CD Catalog resources (reusable pipeline components and templates published by groups for import…
- `gitlab_ci_variable` — Manage GitLab CI/CD variables at instance, group, and project scope. Delete actions are irreversible.
- `gitlab_custom_emoji` — Manage group-level custom emoji via GraphQL. Delete is destructive: existing reactions using the emoji remain in the da…
- `gitlab_discover_project` — Resolve a git remote URL to a GitLab project and return its project_id and metadata. Read-only; performs a lookup again…
- `gitlab_environment` — Manage GitLab deployment environments, protected environments, freeze (deploy block) periods, and the deployment record…
- `gitlab_feature_flags` — Manage project feature flags and feature-flag user lists for gradual rollouts. Delete is destructive; setting active=fa…
- `gitlab_group` — Manage GitLab groups: CRUD, subgroups, members, labels, milestones, webhooks, badges, boards, uploads, and import/expor…
- `gitlab_interactive_issue_create` — Interactively create a GitLab issue: step-by-step prompts collect title (required), description (optional multiline), c…
- `gitlab_interactive_mr_create` — Interactively create a GitLab merge request: step-by-step prompts collect source branch (required), target branch (requ…
- `gitlab_interactive_project_create` — Interactively create a GitLab project: step-by-step prompts collect name (required), description (optional), visibility…
- `gitlab_interactive_release_create` — Interactively create a GitLab release: step-by-step prompts collect tag name (required, must reference an existing tag)…
- `gitlab_issue` — Manage GitLab issues: CRUD, notes, discussions, links, time tracking, work items, award emoji, statistics, and resource…
- `gitlab_job` — Manage GitLab CI/CD jobs: list, get, retry, cancel, erase, play manual jobs, wait for completion, download artifacts/lo…
- `gitlab_merge_request` — Manage GitLab merge requests: create, list, get, update, merge, approve, rebase, delete. Also manages approval rules/se…
- `gitlab_model_registry` — Download ML model package files from the GitLab Model Registry. Read-only — cannot publish or delete model versions thr…
- `gitlab_mr_review` — Review and comment on GitLab merge requests: notes, threaded discussions (inline + general), code diffs, draft notes (b…
- `gitlab_package` — Manage GitLab package registry, container registry, and protection rules. Upload/download generic packages, list/delete…
- `gitlab_pipeline` — Manage GitLab CI/CD pipelines: list, get, create, retry, cancel, delete, and wait for completion. Also manages trigger …
- `gitlab_project` — Manage GitLab projects: CRUD, settings, members, labels, milestones, webhooks, badges, boards, integrations, uploads, P…
- `gitlab_release` — Manage GitLab releases and their asset links (binaries, packages, runbooks). Releases wrap a Git tag with notes, milest…
- `gitlab_repository` — Browse and manage GitLab repository content: file tree, read/write/delete files, commits, diffs, cherry-pick, revert, b…
- `gitlab_runner` — Manage GitLab CI/CD runners and runner controllers: instance / group / project runner CRUD, registration tokens, job as…
- `gitlab_search` — Search GitLab by scope (instance / group / project) for code, MRs, issues, commits, milestones, notes, projects, snippe…
- `gitlab_server` — MCP server self-diagnostics: GitLab connectivity probe, server/GitLab version, and authenticated user identity. Read-on…
- `gitlab_snippet` — Manage GitLab snippets (personal, project-scoped, and explore feed): CRUD snippet metadata and content, threaded discus…
- `gitlab_tag` — Manage Git tags and tag protections in a project, plus GPG signature inspection. Delete is destructive and also removes…
- `gitlab_template` — Browse GitLab built-in templates (gitignore, CI/CD YAML, Dockerfile, license, project scaffolding) and lint CI configur…
- `gitlab_user` — Manage GitLab users: CRUD, SSH/GPG keys, emails, PATs, impersonation tokens, status, todos, events, notifications, name…
- `gitlab_wiki` — CRUD project wiki pages and upload attachments to wikis. Delete is destructive and irreversible.

```bash
# Get full input/output schema for a tool
npx -y @smithery/cli@latest tool get jmrp/gitlab-mcp-server <tool-name>
```

## Resources

- `gitlab://groups` — List all GitLab groups accessible to the authenticated user. Returns each group's ID, name, full path, description, vis…
- `gitlab://guides/code-review` — Code review checklist and best practices for GitLab merge request reviews.
- `gitlab://guides/conventional-commits` — Conventional commit message format and examples for consistent Git history.
- `gitlab://guides/git-workflow` — Best practices for Git branching strategies with GitLab (feature branches, trunk-based, GitLab Flow).
- `gitlab://guides/merge-request-hygiene` — Guidelines for creating and reviewing high-quality merge requests.
- `gitlab://guides/pipeline-troubleshooting` — Common GitLab CI/CD pipeline issues and how to diagnose and fix them.
- `gitlab://user/current` — Get the currently authenticated GitLab user profile. Returns username, display name, email, state (active/blocked), adm…
- `gitlab://workspace/roots` — List workspace root directories provided by the MCP client. Use these paths to locate .git/config files and extract git…

## Prompts (38)

- `audit_branch_protection` (project_id) — Audit branch protection rules for a GitLab project. Lists all protected branches with push/merge access levels and code…
- `audit_project_access` (project_id) — Audit user access and permissions for a GitLab project. Lists all members (direct and inherited) with their access leve…
- `audit_project_full` (project_id) — Run a comprehensive audit of a GitLab project covering settings, branch protection, access management, labels, mileston…
- `audit_project_settings` (project_id) — Audit a GitLab project's core settings. Reviews visibility, merge strategy, CI/CD configuration, default branch, wiki/i…
- `audit_project_workflow` (project_id) — Audit workflow configuration for a GitLab project: labels (names, colors, descriptions), milestones (open/closed, due d…

---
*Response truncated. Use `npx -y @smithery/cli@latest` for complete data.*
