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 las opciones que la mayoría de usuarios necesita; consulta la referencia de variables y la referencia CLI del repositorio para las tablas exhaustivas.

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
TOOL_SURFACEdynamicSelector canónico del catálogo: dynamic, meta o individual
META_TOOLSheredadoSelector de compatibilidad deprecado. true mapea a meta, false mapea a individual, y los valores dynamic mapean al TOOL_SURFACE equivalente cuando TOOL_SURFACE no está definido
CAPABILITY_SURFACEfullSelector del catálogo de recursos y prompts: full conserva el catálogo completo; minimal mantiene gitlab://workspace/roots y gitlab://tools, y desactiva recursos opcionales, prompts y guías de flujo
META_PARAM_SCHEMAopaqueEstrategia de esquema de entrada para meta-herramientas: opaque (por defecto), compact (6.5x el tamaño opaque) o full (11.9x). Solo afecta schemas de meta-herramientas en tools/list
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)
EMBEDDED_RESOURCEStrueIncrustar URIs MCP canónicas gitlab:// en resultados de herramientas get; usa false para clientes que no toleren bloques de contenido duplicados
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 en segundo plano), 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 actualización de arranque/en segundo plano (rango: 5s–10m)
VariablePredeterminadoDescripción
YOLO_MODEfalseOmitir confirmaciones de acciones destructivas (no recomendado)
AUTOPILOTfalseIgual que YOLO_MODE: omitir confirmaciones destructivas
GITLAB_MCP_ALLOWED_IMPORT_DIRSDirectorios adicionales, separados por la lista de rutas del sistema operativo, permitidos para archivos locales de importación de proyectos/grupos
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
TOOL_SURFACE=dynamic
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
--tool-surfacedynamicSelector canónico del catálogo: dynamic, meta o individual
--meta-tools(sin definir)Flag de compatibilidad deprecado. Usa --tool-surface=individual en lugar de --meta-tools=false
--meta-param-schemaopaqueModo de schema para params de meta-herramientas: opaque, compact o full; solo afecta schemas de meta-herramientas
--capability-surfacefullSelector del catálogo de recursos y prompts: full o minimal; minimal mantiene gitlab://workspace/roots y gitlab://tools, y omite recursos opcionales, guías y prompts
--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
--embedded-resourcestrueIncrustar URIs MCP canónicas en resultados de herramientas get
--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
--http-idle-timeout0 (desactivado)Timeout de conexión inactiva del servidor HTTP. 0 (por defecto) desactiva el cierre por inactividad, de modo que --session-timeout es la vida efectiva; usa una duración positiva para reciclar conexiones antes
--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 actualización de arranque/en segundo plano (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