Ir al contenido

Configuración

GitLab MCP Server se configura mediante variables de entorno en modo stdio y flags de CLI en modo HTTP. Esta página cubre todas las opciones de configuración.

Esta debe establecerse para que el servidor arranque en modo stdio:

VariableDescripciónEjemplo
GITLAB_TOKENPersonal Access Token con scope apiglpat-xxxxxxxxxxxxxxxxxxxx
VariablePredeterminadoDescripción
GITLAB_URLhttps://gitlab.comURL base de la instancia GitLab. Establécela para instancias autogestionadas
GITLAB_SKIP_TLS_VERIFYfalseOmitir verificación de certificados TLS para certificados autofirmados
META_TOOLStrueSelector booleano heredado: true para meta-herramientas o false para herramientas individuales. Usa TOOL_SURFACE para superficies dinámicas
TOOL_SURFACESelector explícito del catálogo: meta, individual, dynamic, dynamic-2 o dynamic-3. Cuando se establece, sobrescribe META_TOOLS
CAPABILITY_SURFACEfullSelector del catálogo de recursos y prompts: full conserva el catálogo completo; minimal mantiene solo gitlab://workspace/roots y desactiva recursos y prompts opcionales
META_PARAM_SCHEMAopaqueEstrategia de esquema de entrada para meta-herramientas: opaque (por defecto), compact (~5x) o full (~10x). El esquema por acción siempre es accesible vía el recurso gitlab://schema/meta/{tool}/{action}
GITLAB_ENTERPRISEfalseHabilitar herramientas Enterprise/Premium en modo stdio. En modo HTTP, --enterprise puede forzar el catálogo; si se omite, la edición se autodetecta por entrada token+URL
GITLAB_READ_ONLYfalseDesactivar todas las herramientas de escritura (crear, actualizar, eliminar)
GITLAB_SAFE_MODEfalseDevolver vista previa JSON estructurada en lugar de ejecutar herramientas de escritura (modo dry-run)
EXCLUDE_TOOLSLista de herramientas a excluir separadas por comas (ej., gitlab_delete_project,gitlab_admin)
GITLAB_IGNORE_SCOPESfalseOmitir detección automática de scopes del PAT — registrar todas las herramientas sin importar los scopes
LOG_LEVELinfoNivel de verbosidad del log: debug, info, warn, error
VariablePredeterminadoDescripción
AUTO_UPDATEtrueComportamiento de autoactualización: true (aplicar al iniciar), check (solo notificar), false (deshabilitado)
AUTO_UPDATE_REPOjmrplens/gitlab-mcp-serverRepositorio de GitHub para los assets de release
AUTO_UPDATE_INTERVAL1hIntervalo de comprobación periódica (solo modo HTTP)
AUTO_UPDATE_TIMEOUT60sTimeout de descarga pre-inicio (rango: 5s–10m)
VariablePredeterminadoDescripción
YOLO_MODEfalseOmitir confirmaciones de acciones destructivas (no recomendado)
RATE_LIMIT_RPS0Límite de velocidad por servidor en req/s (0 = desactivado)
RATE_LIMIT_BURST40Tamaño del bucket de tokens cuando RATE_LIMIT_RPS > 0
.env
# Requeridas
GITLAB_TOKEN=glpat-xxxxxxxxxxxxxxxxxxxx
# Opcionales
GITLAB_SKIP_TLS_VERIFY=false
META_TOOLS=true
GITLAB_ENTERPRISE=false
GITLAB_READ_ONLY=false
GITLAB_SAFE_MODE=false
EXCLUDE_TOOLS=
GITLAB_IGNORE_SCOPES=false
LOG_LEVEL=info
# Autoactualización
AUTO_UPDATE=true

Para GitLab autogestionado, añade GITLAB_URL=https://gitlab.example.com.

Crea .vscode/mcp.json en tu workspace:

{
"servers": {
"gitlab": {
"type": "stdio",
"command": "/ruta/a/gitlab-mcp-server",
"env": {
"GITLAB_TOKEN": "glpat-xxxxxxxxxxxxxxxxxxxx"
}
}
}
}

Configuración segura del token usando variables de entrada de VS Code:

{
"inputs": [
{
"id": "gitlab-token",
"type": "promptString",
"description": "GitLab Personal Access Token",
"password": true
}
],
"servers": {
"gitlab": {
"type": "stdio",
"command": "/ruta/a/gitlab-mcp-server",
"env": {
"GITLAB_TOKEN": "${input:gitlab-token}"
}
}
}
}

Al ejecutar en modo HTTP (--http), la configuración usa flags de CLI en lugar de variables de entorno:

FlagPredeterminadoDescripción
--httpfalseHabilitar modo de transporte HTTP
--http-addr:8080Dirección y puerto de escucha
--gitlab-urlURL fija de la instancia de GitLab. Omítela para requerir GITLAB-URL en cada petición
--skip-tls-verifyfalseOmitir verificación TLS
--meta-toolstrueHabilitar modo meta-herramientas. Establécelo a false para herramientas individuales
--tool-surfaceSelector explícito del catálogo: meta, individual, dynamic, dynamic-2 o dynamic-3. Sobrescribe --meta-tools
--capability-surfacefullSelector del catálogo de recursos y prompts: full o minimal
--enterprisefalseForzar herramientas Enterprise/Premium si se establece; omítelo para autodetectar CE/EE por entrada token+URL
--read-onlyfalseModo solo lectura
--safe-modefalseIntercepta herramientas modificantes y devuelve una vista previa JSON en lugar de ejecutarlas
--exclude-toolsHerramientas a excluir separadas por comas
--ignore-scopesfalseOmitir detección de scopes del PAT
--max-http-clients100Máximo de sesiones de clientes simultáneas
--session-timeout30mTiempo de espera de sesión inactiva
--auto-updatetrueModo de autoactualización
--auto-update-repojmrplens/gitlab-mcp-serverRepositorio de GitHub para releases
--auto-update-interval1hIntervalo de comprobación periódica de actualizaciones
--auto-update-timeout60sTiempo de espera de descarga pre-inicio (5s–10m)
--auth-modelegacyModo de autenticación: legacy u oauth
--oauth-cache-ttl15mTTL de caché de identidad OAuth (1m–2h)
--revalidate-interval15mIntervalo de revalidación de token; 0 para desactivar (límite: 24h)
--rate-limit-rps0Límite de tasa por servidor para tools/call en req/s (0 = desactivado)
--rate-limit-burst40Tamaño del token bucket cuando --rate-limit-rps > 0
--trusted-proxy-headerCabecera HTTP con la IP real del cliente para rate limiting detrás de proxies (ej. Fly-Client-IP, X-Forwarded-For)

Flags generales (modos stdio y HTTP):

FlagPredeterminadoDescripción
--shutdownfalseTerminar todas las instancias en ejecución y salir

Ejemplo:

Ventana de terminal
# Instancia única de GitLab.com (URL fija para todos los clientes; reemplázala para GitLab autogestionado)
./gitlab-mcp-server \
--http \
--http-addr=0.0.0.0:8080 \
--gitlab-url=https://gitlab.com \
--max-http-clients=200 \
--session-timeout=1h
# Multi-instancia (cada cliente especifica su URL de GitLab mediante la cabecera GITLAB-URL)
./gitlab-mcp-server \
--http \
--http-addr=0.0.0.0:8080

El servidor carga la configuración en el siguiente orden (las fuentes posteriores anulan las anteriores):

  1. ~/.gitlab-mcp-server.env — Valores predeterminados a nivel de usuario (directorio home)
  2. .env — Configuración a nivel de proyecto (directorio de trabajo actual)
  3. Variables de entorno del sistema — Variables exportadas en el shell
  4. Flags de CLI — Argumentos de línea de comandos (prioridad más alta)

Para instancias de GitLab con certificados TLS autofirmados:

Ventana de terminal
GITLAB_SKIP_TLS_VERIFY=true

Habilita GITLAB_READ_ONLY=true para restringir el servidor a operaciones de solo lectura. Todas las herramientas que crean, actualizan o eliminan recursos se desactivan. Esto es útil para:

  • Entornos de auditoría y cumplimiento
  • Servidores compartidos donde los usuarios solo deben consultar datos
  • Tokens con scope read_api

Habilita GITLAB_SAFE_MODE=true para interceptar las herramientas de escritura y devolver una vista previa JSON estructurada de lo que se ejecutaría, sin realizar la operación. Las herramientas de solo lectura funcionan normalmente. Esto es útil para:

  • Revisar operaciones antes de ejecutarlas (dry-run)
  • Entornos de formación donde se quiere ver el comportamiento de las herramientas
  • Depurar parámetros de herramientas sin efectos secundarios