gitlab-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| MCP_HOST | No | HTTP/SSE bind address | 127.0.0.1 |
| MCP_PORT | No | HTTP/SSE port | 8000 |
| GITLAB_TOKEN | No | Personal Access Token (PRIVATE-TOKEN header) | |
| MCP_TRANSPORT | No | Transport protocol (stdio, http, sse) | stdio |
| GITLAB_BASE_URL | No | GitLab base URL | https://gitlab.com |
| GITLAB_PASSWORD | No | HTTP Basic password or PAT (used with GITLAB_USERNAME) | |
| GITLAB_USERNAME | No | HTTP Basic username (used with GITLAB_PASSWORD) | |
| GITLAB_MAX_PER_PAGE | No | Maximum page size | 100 |
| GITLAB_TIMEOUT_SECONDS | No | API timeout in seconds | 15 |
| GITLAB_DEFAULT_PER_PAGE | No | Default page size | 20 |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_gitlab_connection_infoA | Report which GitLab host/base URL this MCP is configured to use (from env), plus API v4 URL, auth mode, and MCP server bind settings. Does not expose tokens or passwords. |
| list_projectsC | List projects visible to the token. |
| get_projectA | Get project details by id, path_with_namespace, or project web URL (same host as GITLAB_BASE_URL). |
| list_merge_requestsC | List merge requests for a project. |
| get_merge_requestC | Get merge request details from a project. |
| list_pipelinesB | List pipelines for a project. |
| get_pipelineC | Get pipeline details from a project. |
| get_job_traceA | Get plain-text CI job log (trace) for a project job (GET /projects/:id/jobs/:job_id/trace). |
| list_commitsC | List commits for a project. |
| get_commitC | Get commit details from a project. |
| compare_commitsB | Compare two refs (branch/tag/sha) in a project. |
| list_runnersC | List runners available to the current user (GET /runners). |
| list_all_runnersA | List all runners on the instance (GET /runners/all). Requires admin or auditor. |
| get_runnerA | Get details for a runner by ID (GET /runners/:id). |
| update_runnerC | Update runner settings (PUT /runners/:id). Prefer paused over active. |
| delete_runnerA | Delete a runner by ID (DELETE /runners/:id). |
| list_runner_jobsC | List jobs processed by a runner (GET /runners/:id/jobs). |
| list_runner_managersA | List runner managers (version, platform, system_id) for a runner (GET /runners/:id/managers). |
| list_project_runnersC | List runners available to a project (GET /projects/:id/runners). |
| assign_runner_to_projectB | Assign a project runner to a project (POST /projects/:id/runners). |
| unassign_runner_from_projectA | Unassign a runner from a project (DELETE /projects/:id/runners/:runner_id). |
| list_group_runnersC | List runners for a group (GET /groups/:id/runners). |
| create_runner_with_registration_tokenB | Register a runner with a registration token (POST /runners). May return 410 if legacy registration is disabled. |
| delete_runner_by_authentication_tokenA | Delete a runner using its authentication token (DELETE /runners with token). Does not use PRIVATE-TOKEN. |
| verify_runner_authenticationB | Verify runner credentials (POST /runners/verify). Uses the runner token only, not PRIVATE-TOKEN. |
| reset_instance_runner_registration_tokenB | Reset the instance runner registration token (admin). |
| reset_project_runner_registration_tokenB | Reset a project's runner registration token. |
| reset_group_runner_registration_tokenB | Reset a group's runner registration token. |
| reset_runner_authentication_token_by_runner_idA | Reset a runner authentication token using the runner ID and PRIVATE-TOKEN (POST /runners/:id/reset_authentication_token). |
| reset_runner_authentication_token_by_current_tokenB | Reset a runner authentication token using the current token (POST /runners/reset_authentication_token). |
| get_runner_job_router_discoveryC | Job Router discovery (GET /runners/router/discovery) using Runner-Token header. |
| summarize_bugfix_contributionC | Summarize bugfix contributors and most changed components. |
| generate_release_notesB | Generate customer-facing release notes from commits in a time range. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/jason07289/gitlab-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server