Ir al contenido

Visión general de herramientas

GitLab MCP Server expone las operaciones de GitLab como herramientas MCP que los asistentes de IA pueden invocar directamente. El servidor ofrece tres modos de operación para equilibrar capacidad con eficiencia de tokens.

Todos los modos cubren la misma superficie de API de GitLab. Cambia el empaquetado: el modo individual expone una herramienta MCP por operación, el modo meta-herramientas agrupa acciones por dominio, y el modo dinámico busca y ejecuta IDs canónicos domain.action desde el mismo catálogo de acciones.

En modo individual, el servidor registra una herramienta por operación de GitLab: 863 herramientas para CE, 1006 herramientas para Enterprise/Premium autoalojado, o 1011 herramientas en GitLab.com Enterprise/Premium cuando Orbit está disponible. Esto proporciona la máxima granularidad pero consume una cantidad significativa de tokens de contexto del LLM para el descubrimiento de herramientas.

En modo meta-herramientas (META_TOOLS=true), las operaciones relacionadas se consolidan en meta-herramientas a nivel de dominio. Cada meta-herramienta acepta un parámetro action que enruta al handler apropiado. Esto reduce el recuento de herramientas a 32 meta-herramientas base, 47 en Enterprise/Premium autoalojado, o 48 en GitLab.com Enterprise/Premium cuando Orbit está disponible, mejorando drásticamente la eficiencia de tokens del LLM mientras se preserva toda la funcionalidad.

{
"tool": "gitlab_issue",
"arguments": {
"action": "create",
"project": "my-group/my-project",
"title": "Fix login redirect",
"description": "Users are redirected to 404 after login",
"labels": "bug,priority::high"
}
}

El modo dinámico (TOOL_SURFACE=dynamic o TOOL_SURFACE=dynamic-3) es la alternativa de bajo consumo de tokens. Expone solo gitlab_search_tools, gitlab_describe_tools y gitlab_execute_tool, mientras conserva las mismas acciones de GitLab detrás del catálogo canónico. El asistente busca una acción, describe el schema exacto y luego ejecuta el ID canónico domain.action.

flowchart LR
	A[Buscar herramientas] --> B[Describir acción]
	B --> C[Ejecutar domain.action]
	C --> D[Handler existente de GitLab]

Como las meta-herramientas y el modo dinámico comparten el catálogo de acciones canónico, el comportamiento de seguridad es consistente entre ambos modos: filtrado de solo lectura, previsualizaciones de safe mode, filtrado por scopes del token, confirmaciones destructivas, schemas y formato de resultados se definen una vez y se reutilizan.

Todas las herramientas siguen un patrón de nomenclatura consistente:

  • Herramientas individuales: gitlab_{action}_{resource} (p. ej., gitlab_create_issue, gitlab_list_projects)
  • Meta-herramientas: gitlab_{domain} (p. ej., gitlab_issue, gitlab_project)
  • Acciones dinámicas: IDs canónicos domain.action ejecutados mediante gitlab_execute_tool (p. ej., issue.create, merge_request.list)
Meta-herramientaDescripciónAcciones principales
gitlab_projectCRUD de proyectos, configuración, hooks, etiquetas, milestones, miembros, badges, tokens de acceso, todos, upload, etclist, get, create, update, delete, fork, star, archive, label_*, milestone_*, members, badge_*, upload
gitlab_issueCiclo de vida de issues, notas, discusiones, enlaces, work items, seguimiento de tiempo, award emoji y eventoslist, get, create, update, delete, note_*, link_*, discussion_*, work_item_*, time_*
gitlab_groupCRUD de grupos, subgrupos, miembros, badges, hooks, etiquetas, milestones, transferencia y proyectos descendienteslist, get, create, update, delete, label_*, milestone_*, member_*, badge_*, hook_*
gitlab_userInformación de usuarios, estado, claves SSH, claves GPG, emails, actividad y preferenciasget, current, list, ssh_key_*, gpg_key_*, email_*, status_*
gitlab_wikiGestión de páginas wiki y adjuntoslist, get, create, update, delete, upload_attachment
Meta-herramientaDescripciónAcciones principales
gitlab_branchGestión de ramas y reglas de protección (incluyendo consultas de reglas de rama vía GraphQL)list, get, create, delete, protect, unprotect, branch_rule_*
gitlab_tagGestión de tags y reglas de protección con verificación de firma GPGlist, get, create, delete, protect, unprotect
gitlab_releaseGestión de releases y enlaces de assets de releaselist, get, create, update, delete, link_*
gitlab_repositoryÁrbol del repositorio, archivos, commits, diffs, blame, comparar, cherry-pick, revert, contribuidores, archivos y changelogstree, file_*, commit_*, compare, blame, archive, changelog, submodule_*, discussion_*
gitlab_merge_requestCiclo de vida de MRs, aprobaciones, reglas de aprobación, seguimiento de tiempo, suscripciones, award emoji y eventoslist, get, create, update, merge, rebase, approve, approval_*, time_*, event_*
Meta-herramientaDescripciónAcciones principales
gitlab_mr_reviewNotas de MR, discusiones con hilos, diffs de código, notas borrador y versionesnote_*, discussion_*, diff_*, draft_*, version_*
Meta-herramientaDescripciónAcciones principales
gitlab_pipelineGestión de pipelines, grupos de recursos, informes de tests, trigger tokens, bridges y programaciones de pipelineslist, get, create, cancel, retry, delete, wait, schedule_*, trigger_*
gitlab_jobGestión de jobs de CI, artefactos, logs y agentes de Kuberneteslist, get, play, cancel, retry, erase, trace, artifacts, wait, k8s_*
gitlab_runnerGestión de runners de CI/CD, controladores de runners, scopes de controladores y tokens de controladoreslist, get, update, remove, jobs, controller_*, register, verify
gitlab_ci_variableVariables de CI/CD a nivel de instancia, grupo y proyectolist, get, create, update, delete (en cada nivel de scope)
gitlab_environmentGestión de entornos, entornos protegidos, periodos de congelamiento de despliegue y registros de desplieguelist, get, create, update, delete, stop, deployment_*, freeze_*
Meta-herramientaDescripciónAcciones principales
gitlab_searchBúsqueda entre recursos en proyectos, grupos y ámbito globalcode, issues, merge_requests, commits, milestones, notes, projects, snippets, users, wiki
gitlab_analyzeAnálisis con sampling de IA (11 operaciones vía sampling de LLM)analyze_mr_changes, summarize_issue, pipeline_failure, …
Meta-herramientaDescripciónAcciones principales
gitlab_accessDeploy keys, deploy tokens, tokens de acceso de proyecto, tokens de acceso de grupo y solicitudes de accesodeploy_key_*, deploy_token_*, project_token_*, group_token_*
gitlab_adminAdministración de instancia: Sidekiq, ajustes, licencia, mensajes broadcast, hooks, PATs y mássidekiq_*, setting_*, license_*, broadcast_*, hook_*, pat_*
Meta-herramientaDescripciónAcciones principales
gitlab_packageGestión del registro de paquetes y subida/descarga de archivos genéricoslist, get, delete, upload, download, protection_rule_*
gitlab_snippetSnippets de proyecto y personales con discusiones, notas y award emojilist, get, create, update, delete, discussion_*, note_*
gitlab_templatePlantillas de proyecto (gitignores, CI YAML, Dockerfiles, licencias) y CI lintgitignore_*, ci_*, dockerfile_*, license_*, lint
Meta-herramientaDescripciónAcciones principales
gitlab_feature_flagsGestión de feature flags y listas de usuarios de feature flagslist, get, create, update, delete, user_list_*
gitlab_model_registryDescarga de archivos de modelos ML del Model Registry de GitLabdownload
gitlab_ci_catalogDescubrimiento de recursos del CI/CD Catalog (componentes, plantillas)list, get
gitlab_custom_emojiGestión de emojis personalizados a nivel de grupo vía GraphQLlist, get, create, delete
gitlab_resolve_projectResolución de URLs remotas Git a IDs de proyecto GitLabresolve

Cuando el catálogo Enterprise/Premium está habilitado, el servidor registra 15 meta-herramientas adicionales para funciones Premium y Ultimate en instancias autoalojadas:

gitlab_merge_train, gitlab_audit_event, gitlab_dora_metrics, gitlab_dependency, gitlab_external_status_check, gitlab_group_scim, gitlab_member_role, gitlab_enterprise_user, gitlab_attestation, gitlab_compliance_policy, gitlab_project_alias, gitlab_geo, gitlab_storage_move, gitlab_vulnerability, gitlab_security_finding

En GitLab.com Enterprise/Premium, el catálogo también registra gitlab_orbit con cinco acciones de solo lectura del Knowledge Graph: status, schema, tools, query y graph_status.