Ficha de servidor MCP

gitlab

GitLab MCP Server

Endpoint MCP de GitLab alojado y gratuito, sin más cuenta que tu propio token de gitlab.com, que nunca se escribe en disco. Más de 700 operaciones.

Conectarlo a tu cliente

Entrar con OAuth (recomendado)

Tu cliente abre gitlab.com en el navegador, autorizas ahí y él guarda el token: no pegas ninguno. El client ID hay que configurarlo sí o sí — sin él estos clientes caen al registro dinámico, que GitLab responde con un alcance que este servidor no puede usar.

Claude Code
claude mcp add gitlab --transport http \
  --client-id c9431f281376dab9390349f60bed0503285786e19577df14a9c291c588b85941 \
  --callback-port 8090 \
  https://mcp.jmrp.io/gitlab
Cursor — ~/.cursor/mcp.json
{
  "mcpServers": {
    "gitlab": {
      "type": "http",
      "url": "https://mcp.jmrp.io/gitlab",
      "oauth": {
        "clientId": "c9431f281376dab9390349f60bed0503285786e19577df14a9c291c588b85941",
        "scopes": [
          "api"
        ]
      }
    }
  }
}
VS Code — .vscode/mcp.json
{
  "servers": {
    "gitlab": {
      "type": "http",
      "url": "https://mcp.jmrp.io/gitlab",
      "oauth": {
        "clientId": "c9431f281376dab9390349f60bed0503285786e19577df14a9c291c588b85941",
        "scopes": [
          "api"
        ]
      }
    }
  }
}

O pegar un token

Para lo que no puede abrir un navegador —headless, CI—, un personal access token de gitlab.com enviado como Bearer se verifica exactamente igual que uno de OAuth.

Claude Code
claude mcp add --transport http gitlab \
  https://mcp.jmrp.io/gitlab \
  --header "Authorization: Bearer <your token>"
Cursor — ~/.cursor/mcp.json
{
  "mcpServers": {
    "gitlab": {
      "url": "https://mcp.jmrp.io/gitlab",
      "headers": {
        "Authorization": "Bearer ${env:GITLAB_TOKEN}"
      }
    }
  }
}
VS Code — .vscode/mcp.json
{
  "inputs": [
    {
      "type": "promptString",
      "id": "gitlab-token",
      "description": "Tu credencial de gitlab.com, enviada como Bearer: un token de acceso OAuth, o un personal access token usado igual. Nunca se escribe en disco ni se registra en el servidor.",
      "password": true
    }
  ],
  "servers": {
    "gitlab": {
      "type": "http",
      "url": "https://mcp.jmrp.io/gitlab",
      "headers": {
        "Authorization": "Bearer ${input:gitlab-token}"
      }
    }
  }
}

En los ficheros JSON, los marcadores ${…} mantienen la credencial fuera del fichero: Cursor lo lee de tu entorno y VS Code lo pide una vez y lo guarda él mismo. En el comando, sustituye <your token> a mano.

Antes de apoyarte en esto

Este endpoint es un servicio personal, operado por una sola persona y ofrecido tal cual: sin SLA, sin canal de soporte y sin promesa de que siga en pie —o igual— la semana que viene. Los dos servidores son open source y son un único binario estático, así que lo que no puedas permitirte perder es mejor levantarlo en tu propia instancia.

Cada credencial tiene 60 llamadas por segundo a GitLab por instancia, en ráfagas de hasta 40, y los accesos fallidos repetidos bloquean la dirección durante un tiempo. Por encima de eso, cada llamada se descuenta de los límites de gitlab.com, con tu propio token.

Detrás del endpoint hay tres instancias de este servidor. Un hash consistente hace que el mismo cliente vuelva siempre a la misma, y cada instancia sale hacia fuera por su propio nodo de salida, en España o en Reino Unido: Cómo se enruta una petición, salto a salto

Qué se registra y durante cuánto tiempo, de dónde parece venir una petición y la base legal de todo ello están escritos enteros en: Privacidad, logs y postura legal

¿gitlab cuesta algo, y hace falta cuenta?

El endpoint es gratuito y aquí no hay nada a lo que darse de alta. Lo que necesita es una cuenta de gitlab.com que ya tengas, porque el servidor actúa en tu nombre: no tiene cuenta propia ni emite credencial alguna, así que no hay clave que pedir ni plan que elegir.

La cuota que gastes es la tuya en gitlab.com, y lo que alcances es lo que alcance ese token: este servidor no añade ningún tier propio.

¿A dónde va tu token de GitLab?

Tu token se queda solo en la memoria de tu navegador. No se guarda en localStorage ni en cookies, no viaja en la URL y desaparece al recargar. Se envía únicamente como cabecera Authorization: Bearer a mcp.jmrp.io/gitlab, que nunca lo escribe en disco ni lo registra: el servidor lo conserva en memoria solo mientras lo sigas usando —hasta una hora después de tu última llamada— y después lo descarta.

El destino no es cuestión de confianza: la Content-Security-Policy de esta página declara connect-src 'self' https://gitlab.com y form-action 'self', así que es el propio navegador el que impide enviar el token a ningún sitio que no sea este dominio y el que lo emite. gitlab.com está en esa lista por una única razón —el botón de acceso, que canjea un código de autorización por un token emitido a la aplicación OAuth propia del inspector, con alcance read_api y nada más— y por ninguna otra. Lo que el servidor haga después con él —conservarlo en memoria mientras lo uses, volver a comprobarlo con gitlab.com cada quince minutos y descartarlo—, puedes comprobarlo en su código fuente, que es público.

Aun así, desconfía por norma de cualquier web que te pida un token, incluida esta. Lo razonable es:

  • Comprobarlo tú mismo: el código de esta página es público, y el del servidor también.
  • Usar la credencial más estrecha que te sirva. Un token con alcance read_api se admite y recibe exactamente las acciones que GitLab acepta de ese alcance, que son lecturas: no puede romper nada, y es el adecuado para probar el servidor. api sólo hace falta para llegar a las acciones que escriben. Más estrecho todavía es un token fine-grained de GitLab, limitado a los proyectos y permisos que elijas: el servidor le sirve sólo lo que alcanza su concesión, y lo rechaza en la puerta si la concesión no incluye User: Read. El servidor decide acción por acción, no una vez en la puerta, así que pedir menos te sirve menos en lugar de rechazarte.
  • Revocarlo cuando termines de probar.
  • No reutilizar nunca un token que uses en producción.

¿Qué límites de peticiones y disponibilidad tiene gitlab?

El endpoint gitlab de mcp.jmrp.io es igualmente personal, sin SLA ni garantía de continuidad. Para algo crítico, levanta tu propia instancia — el servidor es open source y un único binario estático.

Cada credencial tiene su propio presupuesto en cada una de las tres instancias: 60 llamadas por segundo que lleguen a GitLab, en ráfagas de hasta 40, y el listado del catálogo en un cubo aparte que se rellena diez veces más despacio. Por encima de eso, lo que gastas es la cuota de gitlab.com, con tu propio token.

Los accesos fallidos se cuentan por dirección. Diez en un minuto bloquean esa dirección hasta que pasa el minuto; cincuenta tokens rechazados distintos en diez minutos la bloquean un minuto, luego diez, y después una hora cada vez. Un cliente que reintenta con un token caducado se recupera solo; uno que prueba token tras token, no.

Resumen

Nombre del servidor
gitlab-mcp-server
Versión
3.2.0
Endpoint
https://mcp.jmrp.io/gitlab
Autenticación
Requiere credenciales (oauth2)

En palabras del propio servidor (en inglés): Model Context Protocol server for GitLab: projects, issues, merge requests, pipelines, repositories, releases, groups, and admin workflows over the GitLab REST and GraphQL APIs.

Instrucciones de uso

Lo que el propio servidor le dice a cada cliente al conectar (server/discover), citado tal cual (en inglés).

gitlab-mcp-server exposes GitLab projects, merge requests, issues, branches, tags, releases, repositories, commits, files, groups, members, and uploads.

FINDING TOOLS. This server exposes two tools that reach the whole GitLab API:
1. Call gitlab_find_action with a natural-language description of the task to get matching action IDs and their input schemas.
2. Call gitlab_execute_action with that action ID, its parameters under 'params'.
3. Every action="..." named below is a canonical action ID: pass it to gitlab_execute_action directly, no find step needed.

PROJECT DISCOVERY. To find the project_id needed for most operations:
1. Read the .git/config file from the workspace to find [remote "origin"] url = ...
2. Call action="discover_project.resolve" with that URL to get the project_id.
3. Alternatively, use action="project.list" (owned=true) or action="search.projects" to find projects by name.

DEFAULT BRANCH. When generating URLs to repository files or branches:
1. Call action="project.get" to retrieve the project metadata, which includes the default_branch field.
2. ALWAYS use the returned default_branch value (e.g. develop, master) instead of assuming 'main'.
3. Projects can use any branch as default, so NEVER hardcode 'main' in URLs.

PACKAGE + RELEASE WORKFLOW. When uploading packages and linking them to releases:
1. Preferred: Use action="package.publish_and_link" to upload a file and create the release link in one step.
2. Alternative: Use action="package.publish" first, then use the 'url' field from its response as the URL for action="release.link_create".
3. NEVER construct package download URLs manually. Always use the actual URL returned by the publish tool.
4. RELEASE LINK NAMING: The link_name MUST be the exact filename (e.g. 'checksums.txt.asc'), NEVER add descriptive suffixes like '(GPG signature)'. go-selfupdate and other tools match asset names exactly.

RELEASE CREATION. When creating releases:
1. You do NOT need to create the tag first. Provide 'ref' (branch or SHA) in action="release.create" and GitLab auto-creates the tag.
2. The response includes 'assets_sources' with auto-generated tar.gz/zip archive URLs. Use those, never construct source archive URLs.
3. Use 'tag_message' to create an annotated tag instead of a lightweight one.

ID vs IID. GitLab uses two identifiers for issues and merge requests:
1. IID is the project-scoped number shown in URLs and UI (e.g. issue #3, MR !5). Most operations expect IID.
2. ID is the global numeric identifier. Only use action="issue.get_by_id" when you have a global ID from another API response.

WATCHING RESOURCES. Instead of re-reading a resource in a loop to detect change:
1. Single-object resources (a pipeline, an issue, a merge request, a file, a wiki page, ...) can be watched for change notifications via MCP subscriptions/listen, which protocol revision 2026-07-28 introduced (a client speaking an earlier revision cannot watch resources on this transport: the legacy resources/subscribe is refused here, because each request's session ends with its response); collections (issue lists, branch lists) cannot.
2. Example: subscribe to gitlab://project/{project_id}/pipelines/latest to be notified when a pipeline's state changes, instead of polling it yourself. The server watches GitLab and sends notifications/resources/updated only when the content actually changed.

Tools(2)

GitLab Execute Action

gitlab_execute_action

  • destructiva
  • mundo abierto

Execute one GitLab catalog action by canonical ID or alias. Always pass params as an object. Destructive actions require top-level confirm=true. Use find first only when action or params are unclear. Example: {"action":"issue.list","params":{"project_id":"group/project"}}

Argumentos (3 campos)
action string · obligatorio
Canonical action ID returned by gitlab_find_action, or a supported compatibility alias, such as project.list, issue.update, or issue.close.
params object · obligatorio
Required action-specific parameters object validated by the selected action schema. Use an empty object for actions with no parameters.
confirm boolean
Set top-level confirm=true to explicitly approve destructive actions. Do not put confirm inside params for gitlab_execute_action.
Qué devuelve (2 campos)
next_steps string[]
Optional. Suggested follow-up actions or tool calls for the LLM, contextual to the result.
pagination object
Present on list actions. A REST list carries the fields below: while `has_more` is true, call again with `page` set to `next_page`. A GraphQL list carries cursor fields instead: while `has_next_page` is true, pass `end_cursor` as `after`.

Probar en el inspector

GitLab Find Action

gitlab_find_action

  • solo lectura
  • idempotente
  • mundo abierto

Search the local GitLab action catalog. Read-only and no GitLab API call. Use when the action ID or params are unclear. Returns schemas, hints, destructive flags, and execute examples. Example: {"query":"issue list"}

Argumentos (3 campos)
query string · obligatorio
Search terms combining a GitLab domain or resource with a verb, filter, or object name, such as project create, merge request approve, pipeline retry, issue delete, or ci variable. At most 256 characters: a longer query is refused, not truncated.
explain boolean
When true, include deterministic scoring reasons for each returned action. Defaults to false to keep responses compact.
limit integer
Maximum number of matches to return. Defaults to 20 and is capped at 50.
Qué devuelve (3 campos)
count integer
Number of returned matches.
query string
Original search query.
results object[]
Matching GitLab catalog actions with schemas and execute examples.

Probar en el inspector

Catálogo de acciones (768)

Detrás de las tools de arriba hay un catálogo de acciones de grano fino, invocadas vía gitlab_execute_action y publicadas como el resource gitlab://tools. Esta tabla solo lo cuenta, por dominio — la lista completa es el propio resource.

Contado con un token Free contra gitlab.com, que es el único host con el que habla este endpoint: para usarlo contra una instancia self-managed, levanta tú el servidor — su documentación lo cubre. El catálogo depende del token que pregunta, así que el recuento se mueve con su tier y con sus permisos: los tiers superiores exponen más acciones, y los dominios de administración solo aparecen a tokens autorizados a usarlos. Por eso las cifras difieren en otros sitios: el proyecto upstream cuenta 868 operaciones en Community Edition y hasta 1.094 en el tier más alto de GitLab.com, mientras que este despliegue publica 768 porque es solo-OAuth y actúa con tu token, así que los dominios de administración que una cuenta sin admin no puede llamar no aparecen nunca. Las tres describen el mismo catálogo, contado desde tres sitios distintos.

Acciones por dominio
DominioAccionesDestructivasSolo lectura
project1242551
user761437
group751233
issue66833
access48919
merge_request46723
repository41227
snippet34617
pipeline33415
package30812
job25513
mr_review23310
runner1948
environment1847
ci_variable1536
achievement1234
release1225
template12012
branch1135
feature_flags1024
search10010
tag925
wiki612
interactive400
custom_emoji311
ci_catalog202
server202
discover_project101
model_registry101

Prompts (37)

Planes listos que un cliente puede renderizar, además de las tools de arriba. Pídele uno a tu asistente por su nombre.

Audit Commit Hygiene

audit_commit_hygiene

Audit commit message quality between two refs. Scores Conventional Commit usage, merge commits, breaking-change markers, body/detail quality, and linked work references for release and contribution readiness.

project_id · obligatorio
Project ID (numeric) or full path as written (e.g. 'group/project'), not URL-encoded
from · obligatorio
Starting ref: tag name, branch name, or commit SHA
to
Ending ref: tag name, branch name, or commit SHA (defaults to HEAD if omitted)

Probar en el inspector

Audit Project Full

audit_project_full

Audit a GitLab project in one report: a quick scorecard, then settings, branch protection, access management, labels, active milestones, templates, webhooks, and push rules, up to 100 per list. Use this for a complete project health assessment with actionable recommendations.

project_id · obligatorio
Project ID (numeric) or full path as written (e.g. 'group/project'), not URL-encoded

Probar en el inspector

Audit Project Workflow

audit_project_workflow

Audit workflow configuration for a GitLab project: labels (names, colors, descriptions, open issue/MR counts), milestones (open/closed, due dates), and issue/MR templates, up to 100 per list. Identifies gaps like labels without descriptions, milestones without due dates, or missing templates.

project_id · obligatorio
Project ID (numeric) or full path as written (e.g. 'group/project'), not URL-encoded

Probar en el inspector

Branch MR Summary

branch_mr_summary

List up to 100 MRs targeting a specific branch in a project. Shows a readiness summary with total, draft and conflict counts. Ideal for release branch reviews.

project_id · obligatorio
Project ID (numeric) or full path as written (e.g. 'group/project'), not URL-encoded
target_branch · obligatorio
Target branch name to filter MRs (e.g. 'develop_5.4.0')
state
State filter: opened, closed, merged, all (default: opened)

Probar en el inspector

Compare Branches

compare_branches

Compare commit and file differences between two Git refs. Use for release branch preparation, feature branch divergence analysis, or deciding whether a merge/backport needs deeper review.

project_id · obligatorio
Project ID (numeric) or full path as written (e.g. 'group/project'), not URL-encoded
from · obligatorio
Source branch name, tag, or commit SHA to compare from
to · obligatorio
Target branch name, tag, or commit SHA to compare to

Probar en el inspector

Daily Standup

daily_standup

Generate a daily standup summary for a user: contribution events of the last 24 hours, and the project's open MRs they authored, are assigned or review and open issues assigned to or created by them, up to 100 per list. Produces a report with done/planned/blockers sections.

project_id · obligatorio
Project ID (numeric) or full path as written (e.g. 'group/project'), not URL-encoded
username
GitLab username to generate the standup for (defaults to the authenticated user if omitted)

Probar en el inspector

Generate Release Notes

generate_release_notes

Generate release notes from the commits, file changes, and merge requests between two Git refs (tags, branches, or SHAs). Produces a structured document with the commits, up to 100 MRs merged around the commits' dates with their labels, contributors, and statistics for organizing into user-friendly release notes.

project_id · obligatorio
Project ID (numeric) or full path as written (e.g. 'group/project'), not URL-encoded
from · obligatorio
Starting ref: tag name (e.g. 'v1.0.0'), branch name, or commit SHA
to
Ending ref: tag name, branch name, or commit SHA (defaults to HEAD if omitted)

Probar en el inspector

Group Milestone Progress

group_milestone_progress

Track the progress of up to 100 active group milestones across the group's projects. Shows issue/MR completion per milestone with progress bars, reading up to 100 issues and 100 MRs of each.

group_id · obligatorio
GitLab group ID (numeric) or full path as written (e.g. 'my-group' or 'parent/child'), not URL-encoded

Probar en el inspector

Group MR Dashboard

group_mr_dashboard

List up to 100 merge requests across a GitLab group with optional state and target branch filters. Shows MRs grouped by project with blocker and readiness summary statistics.

group_id · obligatorio
GitLab group ID (numeric) or full path as written (e.g. 'my-group' or 'parent/child'), not URL-encoded
state
State filter: opened, closed, merged, all (default: opened)
target_branch
Target branch name to filter MRs (e.g. 'develop_5.4.0')

Probar en el inspector

Label Distribution

label_distribution

Analyze label usage distribution in a project from up to 100 labels. Shows open/closed issue counts and open MR counts per label. Zero additional API calls beyond the label list.

project_id · obligatorio
Project ID (numeric) or full path as written (e.g. 'group/project'), not URL-encoded

Probar en el inspector

Merge Velocity

merge_velocity

Analyze MR throughput for a project from up to 100 MRs created in the period and since merged. Shows merge rate, average and median time-to-merge, and a daily merged count chart. Ideal for tracking team delivery pace.

project_id · obligatorio
Project ID (numeric) or full path as written (e.g. 'group/project'), not URL-encoded
days
Number of days to look back, a positive integer (default: 30)

Probar en el inspector

Milestone Progress

milestone_progress

Track milestone progress for a project. Shows issue/MR completion, progress bar, and due date risk, reading up to 100 issues and 100 MRs of each milestone. Omit the milestone argument to see up to 100 active milestones.

project_id · obligatorio
Project ID (numeric) or full path as written (e.g. 'group/project'), not URL-encoded
milestone
Specific milestone title (omit for every active milestone, up to 100)

Probar en el inspector

MR Description Quality

mr_description_quality

Score a merge request description for reviewer readiness. Checks context, linked work, test evidence, rollout/risk notes, checklists, and whether up to 100 changed files suggest missing screenshots or migration notes.

project_id · obligatorio
Project ID (numeric) or full path as written (e.g. 'group/project'), not URL-encoded
merge_request_iid · obligatorio
Merge request IID (project-scoped numeric ID, visible as !N in GitLab)

Probar en el inspector

MR Discussion Health

mr_discussion_health

Analyze unresolved discussion threads across up to 20 open MRs in a project, the most recently created first, reading up to 100 discussions of each. Use this for review follow-up and merge-readiness cleanup, not approval-rule status.

project_id · obligatorio
Project ID (numeric) or full path as written (e.g. 'group/project'), not URL-encoded

Probar en el inspector

MR Risk Assessment

mr_risk_assessment

Assess the risk level (LOW/MEDIUM/HIGH/CRITICAL) of a merge request from up to 100 changed files: size (lines added/removed), number of changed files, new/deleted files, sensitive file patterns (env, auth, migration, CI, security), and conflict status.

project_id · obligatorio
Project ID (numeric) or full path as written (e.g. 'group/project'), not URL-encoded
merge_request_iid · obligatorio
Merge request IID (project-scoped numeric ID, visible as !N in GitLab)

Probar en el inspector

My Activity Summary

my_activity_summary

Generate a personal activity summary for a configurable period, across all projects: contribution events by action, the counts of MRs authored that were created in the period and merged and of MRs reviewed that were updated in it, and a daily activity chart, up to 100 per list.

username
GitLab username to query (defaults to the authenticated user if omitted)
days
Number of days to look back, a positive integer (default: 7)

Probar en el inspector

My Issues

my_issues

Show up to 100 issues assigned to you across all projects. Includes overdue detection and project grouping. Use this to see your issue backlog without specifying a project.

username
GitLab username to query (defaults to the authenticated user if omitted)
state
State filter: opened, closed, all (default: opened)

Probar en el inspector

My Open MRs

my_open_mrs

Show the open merge requests across all projects where you are author or assignee, up to 100 of each. Results are grouped by project for easy scanning. Use this to get a personal MR dashboard without specifying a project.

username
GitLab username to query (defaults to the authenticated user if omitted)

Probar en el inspector

My Pending Reviews

my_pending_reviews

Show up to 100 open merge requests across all projects where you are assigned as reviewer. Helps track which MRs are waiting for your review. Results grouped by project.

username
GitLab username to query (defaults to the authenticated user if omitted)

Probar en el inspector

Project Activity Report

project_activity_report

Generate a project activity report: the counts of events, open MRs, open issues and MRs created in the period and merged, event and contributor breakdowns, a table of those merged MRs, and a daily activity chart, up to 100 per list.

project_id · obligatorio
Project ID (numeric) or full path as written (e.g. 'group/project'), not URL-encoded
days
Number of days to look back, a positive integer (default: 7)

Probar en el inspector

Project Contributors

project_contributors

Rank up to 100 project contributors by commits, additions, and deletions. Uses the repository contributors API for accurate stats.

project_id · obligatorio
Project ID (numeric) or full path as written (e.g. 'group/project'), not URL-encoded

Probar en el inspector

Project Health Check

project_health_check

Project health assessment combining the latest pipeline of the default branch, up to 100 open merge requests, and branch hygiene (merged/stale counts among up to 100 branches). Provides actionable recommendations for project maintenance.

project_id · obligatorio
Project ID (numeric) or full path as written (e.g. 'group/project'), not URL-encoded

Probar en el inspector

Release Cadence

release_cadence

Analyze release frequency for a project from its up to 100 most recent releases. Shows the time between the releases of the period, average and median cadence, and a release history table.

project_id · obligatorio
Project ID (numeric) or full path as written (e.g. 'group/project'), not URL-encoded
days
Number of days to look back, a positive integer (default: 90)

Probar en el inspector

Release Readiness

release_readiness

Check readiness of a release branch from up to 100 open MRs targeting it: draft/conflict counts, and the unresolved discussion threads among up to 100 discussions of each.

project_id · obligatorio
Project ID (numeric) or full path as written (e.g. 'group/project'), not URL-encoded
branch
Target release branch (default: main)

Probar en el inspector

Review MR

review_mr

Generate a structured code review for a merge request, reading up to 100 changed files. Files are categorized by risk (high-risk, business logic, tests, documentation) with per-file metrics, branch context, and a review plan. The diff of each file read is included without truncation.

project_id · obligatorio
Project ID (numeric) or full path as written (e.g. 'group/project'), not URL-encoded
merge_request_iid · obligatorio
Merge request IID (project-scoped numeric ID, visible as !N in GitLab)

Probar en el inspector

Reviewer Workload

reviewer_workload

Analyze review distribution across up to 100 direct members of a group, from up to 100 open group MRs. Shows how many of them each member is reviewing and identifies imbalances. Useful for managers to ensure fair review distribution.

group_id · obligatorio
GitLab group ID (numeric) or full path as written (e.g. 'my-group' or 'parent/child'), not URL-encoded

Probar en el inspector

Stale Items Report

stale_items_report

Find up to 100 open MRs and 100 open issues in a project that haven't been updated for a configurable number of days. Helps identify forgotten or blocked items.

project_id · obligatorio
Project ID (numeric) or full path as written (e.g. 'group/project'), not URL-encoded
stale_days
Days without update to consider stale, a positive integer (default: 14)

Probar en el inspector

Suggest MR Reviewers

suggest_mr_reviewers

Suggest suitable merge request reviewers based on up to 100 changed files and the active ones among up to 100 project members, inherited members included. Excludes the MR author and asks the model to consider ownership, approval-rule fit, and workload balance.

project_id · obligatorio
Project ID (numeric) or full path as written (e.g. 'group/project'), not URL-encoded
merge_request_iid · obligatorio
Merge request IID (project-scoped numeric ID, visible as !N in GitLab)

Probar en el inspector

Summarize MR Changes

summarize_mr_changes

Summarize the changed files and key modifications in a merge request, reading up to 100 changed files. Lists each file with its change type (new/modified/deleted/renamed). Use this to quickly understand the scope of a merge request.

project_id · obligatorio
Project ID (numeric) or full path as written (e.g. 'group/project'), not URL-encoded
merge_request_iid · obligatorio
Merge request IID (project-scoped numeric ID, visible as !N in GitLab)

Probar en el inspector

Summarize Open MRs

summarize_open_mrs

Summarize up to 100 open merge requests in a project, the most recently created first, including title, author, branches, age in days, and merge status. Highlights stale MRs (>7 days) and blockers. For one target branch, use branch_mr_summary.

project_id · obligatorio
Project ID (numeric) or full path as written (e.g. 'group/project'), not URL-encoded

Probar en el inspector

Summarize Pipeline Status

summarize_pipeline_status

Summarize the latest CI/CD pipeline of a project's default branch. Groups up to 100 of its jobs by outcome (failed/passed/other) and includes failure reasons for debugging.

project_id · obligatorio
Project ID (numeric) or full path as written (e.g. 'group/project'), not URL-encoded

Probar en el inspector

Team Member Workload

team_member_workload

Generate a workload summary for a team member over a configurable period: contribution events, the project's open MRs they authored, are assigned or review, MRs they authored that were created in the period and merged, and open authored and assigned issues, up to 100 per list. Use this for team management and capacity planning.

project_id · obligatorio
Project ID (numeric) or full path as written (e.g. 'group/project'), not URL-encoded
username · obligatorio
GitLab username of the team member to analyze
days
Number of days to look back, a positive integer (default: 7)

Probar en el inspector

Team Overview

team_overview

Generate a team dashboard of up to 100 direct members of a group, each with the counts of their open MRs, of the open MRs they review and of their MRs created in the period and merged, from up to 100 open group MRs and 100 created in the period and merged. Includes a workload distribution pie chart. Requires a GitLab group ID.

group_id · obligatorio
GitLab group ID (numeric) or full path as written (e.g. 'my-group' or 'parent/child'), not URL-encoded
days
Number of days to look back, a positive integer (default: 7)

Probar en el inspector

Unassigned Items

unassigned_items

Find up to 100 open MRs and 100 open issues in a project that have no assignee. Helps identify ownership gaps and items needing attention.

project_id · obligatorio
Project ID (numeric) or full path as written (e.g. 'group/project'), not URL-encoded

Probar en el inspector

User Activity Report

user_activity_report

Generate an activity report for a user: contribution events, MRs they authored that were created in the period and merged, open MRs they review that were updated in it, and a daily activity chart, up to 100 per list. Designed for managers to review team member productivity.

username · obligatorio
GitLab username to report on
days
Number of days to look back, a positive integer (default: 7)

Probar en el inspector

User Stats

user_stats

Generate statistics for a user: contribution events across all projects with their breakdown, daily activity trends and a Mermaid activity chart, and the project's merge request stats (authored/assigned/reviewed by state) and issue stats (authored/assigned by state), up to 100 per list. Use this for performance reviews, productivity tracking, or personal dashboards.

project_id · obligatorio
Project ID (numeric) or full path as written (e.g. 'group/project'), not URL-encoded
username
GitLab username to generate stats for (defaults to the authenticated user if omitted)
days
Number of days to look back, a positive integer (default: 30)

Probar en el inspector

Weekly Team Recap

weekly_team_recap

Generate a weekly recap for a team: MRs created in the period and merged, by project, open MR and open issue counts, and open MR health (drafts, conflicts), all as tables, up to 100 per list.

group_id · obligatorio
GitLab group ID (numeric) or full path as written (e.g. 'my-group' or 'parent/child'), not URL-encoded
days
Number of days to look back, a positive integer (default: 7)

Probar en el inspector

Resources (8)

All Groups

gitlab://groups

Groups accessible to the authenticated user, up to one page (100). Returns each group's ID, name, full path, description, visibility level, and web URL.

Probar en el inspector

Code Review Guide

gitlab://guides/code-review

Code review checklist and best practices for GitLab merge request reviews.

Probar en el inspector

Conventional Commits Guide

gitlab://guides/conventional-commits

Conventional commit message format and examples for consistent Git history.

Probar en el inspector

Git Workflow Guide

gitlab://guides/git-workflow

Best practices for Git branching strategies with GitLab (feature branches, trunk-based, GitLab Flow).

Probar en el inspector

Merge Request Hygiene Guide

gitlab://guides/merge-request-hygiene

Guidelines for creating and reviewing high-quality merge requests.

Probar en el inspector

Pipeline Troubleshooting Guide

gitlab://guides/pipeline-troubleshooting

Common GitLab CI/CD pipeline issues and how to diagnose and fix them.

Probar en el inspector

Tool Manifest

gitlab://tools

Surface-aware manifest of the tools and executable actions available in this server instance. Use gitlab://tools/{id} to fetch one entry's accepted call shape and input schema.

Probar en el inspector

Current User Profile

gitlab://user/current

Get the currently authenticated GitLab user profile. Returns username, display name, email, state (active/blocked), admin status, and web URL.

Probar en el inspector

Resource templates (37)

Resources parametrizados: la misma forma que los de arriba, con un hueco en la URI que rellena el cliente antes de leerlo.

Group Details

gitlab://group/{group_id}

  • suscribible

Get details for a specific GitLab group by numeric ID or URL-encoded path. Returns name, full path, description, visibility, and web URL. Subscribable: subscriptions/listen (protocol 2026-07-28). Resources/subscribe on stateful sessions.

Group Label Details

gitlab://group/{group_id}/label/{label_id}

  • suscribible

Get details for a single group label by numeric ID or name. Returns id, name, color, and description. Usage counts come from group.group_label_list with with_counts. Subscribable: subscriptions/listen (protocol 2026-07-28). Resources/subscribe on stateful sessions.

Group Members

gitlab://group/{group_id}/members

Members of a GitLab group, up to one page (100), with their access levels (10=guest, 20=reporter, 30=developer, 40=maintainer, 50=owner). Includes inherited members.

Group Milestone Details

gitlab://group/{group_id}/milestone/{milestone_iid}

  • suscribible

Get details for a single group milestone by IID. Returns id, iid, title, description, state, due date, and web URL. Subscribable: subscriptions/listen (protocol 2026-07-28). Resources/subscribe on stateful sessions.

Group Projects

gitlab://group/{group_id}/projects

Projects within a GitLab group, up to one page (100). Returns each project's ID, name, namespace path, visibility, web URL, description, and default branch.

Project Metadata

gitlab://project/{project_id}

  • suscribible

Get basic metadata for a GitLab project by numeric ID or URL-encoded path. Returns name, namespace path, visibility, web URL, description, and default branch. Subscribable: subscriptions/listen (protocol 2026-07-28). Resources/subscribe on stateful sessions.

Board Details

gitlab://project/{project_id}/board/{board_id}

  • suscribible

Get details for a single project issue board by numeric ID. Returns id and name. Subscribable: subscriptions/listen (protocol 2026-07-28). Resources/subscribe on stateful sessions.

Branch Details

gitlab://project/{project_id}/branch/{branch}

  • suscribible

Get details for a single repository branch. Returns name, protection status, merge status, default flag, and web URL. Subscribable: subscriptions/listen (protocol 2026-07-28). Resources/subscribe on stateful sessions.

Project Branches

gitlab://project/{project_id}/branches

Branches in a GitLab project, up to one page (100). Returns each branch's name, protection status, merge status, default flag, and web URL.

Commit Details

gitlab://project/{project_id}/commit/{sha}

Get details for a single commit by SHA. Returns id, short_id, title, message, author and committer names and emails, authored/committed dates, parent commits, web URL, and stats (additions, deletions and their total).

Deploy Key Details

gitlab://project/{project_id}/deploy_key/{deploy_key_id}

  • suscribible

Get details for a single project deploy key by numeric ID. Returns id, title, key, and fingerprint. Subscribable: subscriptions/listen (protocol 2026-07-28). Resources/subscribe on stateful sessions.

Deployment Details

gitlab://project/{project_id}/deployment/{deployment_id}

  • suscribible

Get details for a single project deployment by numeric ID. Returns id, iid, ref, sha, status, and environment name. Subscribable: subscriptions/listen (protocol 2026-07-28). Resources/subscribe on stateful sessions.

Environment Details

gitlab://project/{project_id}/environment/{environment_id}

  • suscribible

Get details for a single project environment by numeric ID. Returns id, name, slug, state, and tier. Subscribable: subscriptions/listen (protocol 2026-07-28). Resources/subscribe on stateful sessions.

Feature Flag Details

gitlab://project/{project_id}/feature_flag/{name}

  • suscribible

Get details for a single project feature flag by name. Returns name, description, active, and version. Subscribable: subscriptions/listen (protocol 2026-07-28). Resources/subscribe on stateful sessions.

Repository File

gitlab://project/{project_id}/file/{ref}/{+path}

  • suscribible

Get the contents of a repository file at a specific ref (branch, tag, or SHA). Path may include slashes. Files over 1 MiB return metadata only with truncated=true. Binary files return metadata with empty content. Subscribable: subscriptions/listen (protocol 2026-07-28). Resources/subscribe on stateful sessions.

Issue Details

gitlab://project/{project_id}/issue/{issue_iid}

  • suscribible

Get details of a specific issue by its IID (project-scoped ID). Returns title, state, labels, assignees, author, web URL, and creation date. Subscribable: subscriptions/listen (protocol 2026-07-28). Resources/subscribe on stateful sessions.

Project Issues

gitlab://project/{project_id}/issues

Open issues for a GitLab project, up to one page (100). Returns each issue's IID, title, state, labels, assignees, author, web URL, and creation date.

Job Details

gitlab://project/{project_id}/job/{job_id}

  • suscribible

Get details for a single CI job by numeric ID. Returns id, name, stage, status, ref, duration, and web URL. Subscribable: subscriptions/listen (protocol 2026-07-28). Resources/subscribe on stateful sessions.

Label Details

gitlab://project/{project_id}/label/{label_id}

  • suscribible

Get details for a single project label by numeric ID or label name. Returns id, name, color, and description. Usage counts come from project.label_list with with_counts. Subscribable: subscriptions/listen (protocol 2026-07-28). Resources/subscribe on stateful sessions.

Project Labels

gitlab://project/{project_id}/labels

Labels defined in a GitLab project, up to one page (100). Returns each label's name, color, description, and counts of open issues and merge requests using the label.

Project Members

gitlab://project/{project_id}/members

Members of a GitLab project, up to one page (100), with their access levels (10=guest, 20=reporter, 30=developer, 40=maintainer, 50=owner). Includes inherited members from parent groups.

Milestone Details

gitlab://project/{project_id}/milestone/{milestone_iid}

  • suscribible

Get details for a single project milestone by IID. Returns id, iid, title, description, state, due date, and web URL. Subscribable: subscriptions/listen (protocol 2026-07-28). Resources/subscribe on stateful sessions.

Project Milestones

gitlab://project/{project_id}/milestones

Milestones in a GitLab project, up to one page (100). Returns each milestone's title, description, state (active/closed), due date, and web URL.

Merge Request Details

gitlab://project/{project_id}/mr/{merge_request_iid}

  • suscribible

Get details of a specific merge request by its IID (project-scoped ID). Returns title, state, source/target branches, author, merge status, and web URL. Subscribable: subscriptions/listen (protocol 2026-07-28). Resources/subscribe on stateful sessions.

Merge Request Discussions

gitlab://project/{project_id}/mr/{merge_request_iid}/discussions

  • suscribible

List discussion threads on a merge request. Returns up to one page of 100 discussions. A busier merge request has more than this resource shows. Each discussion has an id, individual_note flag, and an array of notes (id, author, body, system, resolved/resolvable, created_at). Subscribable: subscriptions/listen (protocol 2026-07-28). Resources/subscribe on stateful sessions.

Merge Request Notes

gitlab://project/{project_id}/mr/{merge_request_iid}/notes

  • suscribible

List notes (comments) on a merge request. Returns up to one page of 100 notes, newest ordering as GitLab returns it. A busier merge request has more than this resource shows. Each note carries id, author username, body, system flag, resolvable/resolved flags, and timestamps. Subscribable: subscriptions/listen (protocol 2026-07-28). Resources/subscribe on stateful sessions.

Pipeline Details

gitlab://project/{project_id}/pipeline/{pipeline_id}

  • suscribible

Get details of a specific CI/CD pipeline by its numeric ID. Returns pipeline status, ref, SHA, source, and web URL. Subscribable: subscriptions/listen (protocol 2026-07-28). Resources/subscribe on stateful sessions.

Pipeline Jobs

gitlab://project/{project_id}/pipeline/{pipeline_id}/jobs

  • suscribible

Jobs for a specific CI/CD pipeline, up to one page (100), including each job's name, stage, status, duration, failure reason (if failed), and web URL. Subscribable: subscriptions/listen (protocol 2026-07-28). Resources/subscribe on stateful sessions.

Latest Pipeline

gitlab://project/{project_id}/pipelines/latest

  • suscribible

Get the latest CI/CD pipeline of a GitLab project's default branch. Returns pipeline ID, status (running/pending/success/failed/canceled), ref, SHA, source, and web URL. Subscribable: subscriptions/listen (protocol 2026-07-28). Resources/subscribe on stateful sessions.

Release Details

gitlab://project/{project_id}/release/{tag_name}

  • suscribible

Get details for a single GitLab release by tag name. Returns tag_name, name, description, author, creation/release dates. Subscribable: subscriptions/listen (protocol 2026-07-28). Resources/subscribe on stateful sessions.

Project Releases

gitlab://project/{project_id}/releases

Releases for a GitLab project, up to one page (100). Returns each release's tag name, name, description, author, and creation/release dates.

Project Snippet Details

gitlab://project/{project_id}/snippet/{snippet_id}

  • suscribible

Get details for a single project snippet by numeric ID. Returns id, title, file_name, description, visibility, and web URL. Subscribable: subscriptions/listen (protocol 2026-07-28). Resources/subscribe on stateful sessions.

Tag Details

gitlab://project/{project_id}/tag/{tag_name}

  • suscribible

Get details for a single Git tag. Returns name, target commit SHA, annotation message, and protection status. Subscribable: subscriptions/listen (protocol 2026-07-28). Resources/subscribe on stateful sessions.

Project Tags

gitlab://project/{project_id}/tags

Repository tags for a GitLab project, up to one page (100). Returns each tag's name, message, target commit SHA, protection status, and creation date.

Wiki Page

gitlab://project/{project_id}/wiki/{slug}

  • suscribible

Get a wiki page by slug. Returns title, slug, format (markdown/rdoc/asciidoc/org), and raw content. Slugs are case-sensitive and use hyphens for spaces. Subscribable: subscriptions/listen (protocol 2026-07-28). Resources/subscribe on stateful sessions.

Snippet Details

gitlab://snippet/{snippet_id}

  • suscribible

Get details for a single personal/global snippet by numeric ID. Returns id, title, file_name, description, visibility, and web URL. Subscribable: subscriptions/listen (protocol 2026-07-28). Resources/subscribe on stateful sessions.

Tool Detail

gitlab://tools/{id}

Accepted call shape and input schema for one entry from gitlab://tools. Replace {id} with an entry ID from the active surface, such as project.get in dynamic mode, gitlab_project.get in meta mode, or gitlab_project_get in individual mode.

Suscripciones

Si un cliente puede vigilar un resource en vez de sondearlo, y cuáles de las URI templates de arriba aceptan suscripción — esas llevan un chip.

resources/subscribe
No disponible en este despliegue · requiere: stateful sessions (--stateless=false)
subscriptions/listen
Disponible en este despliegue · desde el protocolo 2026-07-28

Esta página se actualizó por última vez el