gitlab-mcp-server 2.7.5

{
  "inputs": [
    {
      "type": "promptString",
      "id": "GITLAB_URL",
      "description": "GitLab instance URL (default: https://gitlab.com; set for self-managed instances)",
      "default": "https://gitlab.com"
    },
    {
      "type": "promptString",
      "id": "GITLAB_TOKEN",
      "description": "GitLab Personal Access Token (glpat-...)",
      "password": true
    },
    {
      "type": "promptString",
      "id": "GITLAB_MCP_SKIP_TLS_VERIFY",
      "description": "Skip TLS certificate verification for self-signed certs (default: false)",
      "default": "false"
    },
    {
      "type": "pickString",
      "id": "GITLAB_MCP_TOOL_SURFACE",
      "description": "Tool catalog selector: dynamic, meta, or individual (default: dynamic)",
      "default": "dynamic",
      "options": ["meta", "individual", "dynamic"]
    },
    {
      "type": "pickString",
      "id": "GITLAB_MCP_CAPABILITY_SURFACE",
      "description": "Resource and prompt catalog selector: full or minimal (default: full); resource subscriptions require full",
      "default": "full",
      "options": ["full", "minimal"]
    },
    {
      "type": "pickString",
      "id": "GITLAB_MCP_META_PARAM_SCHEMA",
      "description": "Meta-tool input schema detail: opaque, compact, or full (default: opaque)",
      "default": "opaque",
      "options": ["opaque", "compact", "full"]
    },
    {
      "type": "pickString",
      "id": "GITLAB_MCP_TIER",
      "description": "GitLab edition tier: free/ce, premium, or ultimate. When unset, detected from GET /license (fallback free). Gates Premium/Ultimate tools; GitLab.com Ultimate also exposes Orbit Knowledge Graph tools. Replaces the deprecated GITLAB_ENTERPRISE boolean",
      "options": ["free", "ce", "premium", "ultimate"]
    },
    {
      "type": "promptString",
      "id": "GITLAB_MCP_READ_ONLY",
      "description": "Read-only mode: disables all mutating tools (default: false)",
      "default": "false"
    },
    {
      "type": "promptString",
      "id": "GITLAB_MCP_SAFE_MODE",
      "description": "Safe mode: intercepts mutating tools and returns a JSON preview instead of executing (default: false)",
      "default": "false"
    },
    {
      "type": "promptString",
      "id": "GITLAB_MCP_EMBEDDED_RESOURCES",
      "description": "Append EmbeddedResource content blocks (clickable links to MCP resources) to get_* tool results (default: true)",
      "default": "true"
    },
    {
      "type": "promptString",
      "id": "GITLAB_MCP_EXCLUDE_TOOLS",
      "description": "Comma-separated tool names to exclude from registration (e.g. gitlab_admin,gitlab_runner)"
    },
    {
      "type": "promptString",
      "id": "GITLAB_MCP_IGNORE_SCOPES",
      "description": "Skip Personal Access Token scope detection and register all tools regardless of token permissions (default: false)",
      "default": "false"
    },
    {
      "type": "promptString",
      "id": "GITLAB_MCP_UPLOAD_MAX_FILE_SIZE",
      "description": "Maximum attachment upload size in bytes or human-readable (e.g. 2GB). Default: 2147483648 (2 GB)",
      "default": "2147483648"
    },
    {
      "type": "promptString",
      "id": "GITLAB_MCP_ALLOWED_IMPORT_DIRS",
      "description": "Extra OS path-list-separated directories allowed for local GitLab import archives"
    },
    {
      "type": "promptString",
      "id": "GITLAB_MCP_RATE_LIMIT_RPS",
      "description": "Per-server tools/call rate limit in requests per second; 0 disables it (default: 0)",
      "default": "0"
    },
    {
      "type": "promptString",
      "id": "GITLAB_MCP_RATE_LIMIT_BURST",
      "description": "Token-bucket burst size when GITLAB_MCP_RATE_LIMIT_RPS is greater than 0 (default: 40)",
      "default": "40"
    },
    {
      "type": "pickString",
      "id": "GITLAB_MCP_LOG_LEVEL",
      "description": "Logging verbosity (default: info)",
      "default": "info",
      "options": ["debug", "info", "warn", "error"]
    }
  ],
  "servers": {
    "gitlab-mcp-server": {
      "type": "stdio",
      "command": "dnx",
      "args": ["gitlab-mcp-server@2.7.5", "--yes"],
      "env": {
        "GITLAB_URL": "${input:GITLAB_URL}",
        "GITLAB_TOKEN": "${input:GITLAB_TOKEN}",
        "GITLAB_MCP_SKIP_TLS_VERIFY": "${input:GITLAB_MCP_SKIP_TLS_VERIFY}",
        "GITLAB_MCP_TOOL_SURFACE": "${input:GITLAB_MCP_TOOL_SURFACE}",
        "GITLAB_MCP_CAPABILITY_SURFACE": "${input:GITLAB_MCP_CAPABILITY_SURFACE}",
        "GITLAB_MCP_META_PARAM_SCHEMA": "${input:GITLAB_MCP_META_PARAM_SCHEMA}",
        "GITLAB_MCP_TIER": "${input:GITLAB_MCP_TIER}",
        "GITLAB_MCP_READ_ONLY": "${input:GITLAB_MCP_READ_ONLY}",
        "GITLAB_MCP_SAFE_MODE": "${input:GITLAB_MCP_SAFE_MODE}",
        "GITLAB_MCP_EMBEDDED_RESOURCES": "${input:GITLAB_MCP_EMBEDDED_RESOURCES}",
        "GITLAB_MCP_EXCLUDE_TOOLS": "${input:GITLAB_MCP_EXCLUDE_TOOLS}",
        "GITLAB_MCP_IGNORE_SCOPES": "${input:GITLAB_MCP_IGNORE_SCOPES}",
        "GITLAB_MCP_UPLOAD_MAX_FILE_SIZE": "${input:GITLAB_MCP_UPLOAD_MAX_FILE_SIZE}",
        "GITLAB_MCP_ALLOWED_IMPORT_DIRS": "${input:GITLAB_MCP_ALLOWED_IMPORT_DIRS}",
        "GITLAB_MCP_RATE_LIMIT_RPS": "${input:GITLAB_MCP_RATE_LIMIT_RPS}",
        "GITLAB_MCP_RATE_LIMIT_BURST": "${input:GITLAB_MCP_RATE_LIMIT_BURST}",
        "GITLAB_MCP_LOG_LEVEL": "${input:GITLAB_MCP_LOG_LEVEL}"
      }
    }
  }
}
                    
This package contains an MCP Server. The server can be used in VS Code by copying the generated JSON to your VS Code workspace's .vscode/mcp.json settings file.
dotnet tool install --global gitlab-mcp-server --version 2.7.5
                    
This package contains a .NET tool you can call from the shell/command line.
dotnet new tool-manifest
                    
if you are setting up this repo
dotnet tool install --local gitlab-mcp-server --version 2.7.5
                    
This package contains a .NET tool you can call from the shell/command line.
#tool dotnet:?package=gitlab-mcp-server&version=2.7.5
                    
nuke :add-package gitlab-mcp-server --version 2.7.5
                    

GitLab MCP Server

GitLab for your AI assistant: a Model Context Protocol server exposing GitLab REST API v4 and GraphQL operations as MCP tools. Projects, issues, merge requests, pipelines, CI/CD, wikis, releases, users, groups, search and more, against GitLab.com or any self-managed instance.

This package is a .NET tool whose entry point is the native gitlab-mcp-server binary (written in Go). It is a pointer package plus one package per runtime identifier, the layout the .NET 10 SDK uses for tools that ship a platform-specific executable: dotnet tool install and dnx resolve the package for your operating system and architecture and run the binary directly. No .NET runtime is involved once the server is running, nothing compiles, and nothing is downloaded at install time beyond the two packages.

Quick start

Run it directly with dnx (the .NET 10 SDK's tool runner):

GITLAB_TOKEN=glpat-xxxxxxxxxxxxxxxxxxxx dnx gitlab-mcp-server

Or install it on your PATH:

dotnet tool install -g gitlab-mcp-server

Either way the command is gitlab-mcp-server. Two things about dnx worth knowing: it reads its own options anywhere on the command line, so arguments meant for the server go after -- (dnx gitlab-mcp-server -- --version; without the separator, --version is read as dnx's own option and prints its usage); and the .NET 10 SDK's dnx installs the tool without asking when its standard input is not a terminal, which is how an MCP client starts it, so a client configuration needs no extra flag.

Typical MCP client configuration (stdio):

{
  "mcpServers": {
    "gitlab": {
      "command": "dnx",
      "args": ["gitlab-mcp-server"],
      "env": {
        "GITLAB_URL": "https://gitlab.com",
        "GITLAB_TOKEN": "glpat-xxxxxxxxxxxxxxxxxxxx"
      }
    }
  }
}

GITLAB_TOKEN is the only required setting. GITLAB_URL defaults to https://gitlab.com; point it at your own host for self-managed instances.

Configuration

Everything is configured through environment variables: GITLAB_MCP_TOOL_SURFACE (dynamic, meta or individual tool catalogs), GITLAB_MCP_READ_ONLY, GITLAB_MCP_SAFE_MODE, GITLAB_MCP_TIER, rate limiting, telemetry and more. See the configuration guide for the full reference.

Platform support

Packages are published for linux-x64, linux-arm64, osx-x64, osx-arm64, win-x64 and win-arm64. The Linux binaries need glibc; on musl systems such as Alpine, use the container image ghcr.io/jmrplens/gitlab-mcp-server instead. Installing or running the tool needs the .NET 10 SDK or newer; the tool manifest format the runtime-specific packages use does not exist in older SDKs.

License

MIT

Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

This package has no dependencies.

Version Downloads Last Updated
2.7.5 55 9/5/2026