Binario nativo
Cada release publica un binario autocontenido por plataforma: Linux, macOS y Windows, en amd64 y arm64, compilado con CGO_ENABLED=0 como ejecutable independiente de la posición y con la versión y el commit grabados dentro. Sin runtime, sin bibliotecas compartidas, sin contenedor; en Linux el binario necesita aun así el cargador dinámico de glibc, así que en sistemas con musl como Alpine usa la imagen Docker. Esta página cubre los dos scripts de instalación, la descarga manual, cómo comprobar lo que has descargado, dónde guardar el archivo y cómo reemplazarlo más adelante.
Script de instalación
Sección titulada «Script de instalación»Los dos scripts hacen las mismas cuatro cosas: detectar la plataforma, descargar el archivo correspondiente de la última GitHub Release, verificar su SHA-256 contra el checksums.txt de esa misma release y copiarlo a un directorio del usuario. La verificación falla de forma segura: una discrepancia, una entrada ausente o un checksums.txt que no se puede descargar abortan la instalación en lugar de saltarse la comprobación. Como checksums.txt viene de la misma release que el binario, los dos scripts comprueban además una firma cuando pueden: con cosign instalado verifican checksums.txt.sigstore.json contra el workflow de release de este repositorio, fijado a la versión que se instala, y piden a la CLI gh la atestación de procedencia de compilación siempre que eso no haya verificado nada. Un verificador que se ejecutó y dijo que no aborta; un verificador que no pudo ejecutarse solo avisa, salvo que REQUIRE_SIGNATURE=1 lo convierta también en fatal.
curl -fsSL https://raw.githubusercontent.com/jmrplens/gitlab-mcp-server/main/scripts/install.sh | shEl script necesita curl o wget, además de sha256sum o shasum. Traduce x86_64 a amd64 y aarch64 a arm64, rechaza cualquier otro sistema o arquitectura, e instala el archivo con modo 0755 como $HOME/.local/bin/gitlab-mcp-server. Si ya hay un binario en esa ruta lo elimina primero, de modo que volver a ejecutarlo sobre un servidor en marcha no falla con “Text file busy”. Si $HOME/.local/bin no está en tu PATH, el script lo avisa e imprime la línea export PATH=... que debes añadir.
| Variable | Por defecto | Efecto |
|---|---|---|
INSTALL_DIR | $HOME/.local/bin | Directorio de destino |
VERSION | latest | Etiqueta de la release a instalar, por ejemplo v2.7.5 |
REPO | jmrplens/gitlab-mcp-server | Repositorio de GitHub desde el que descargar |
REQUIRE_SIGNATURE | sin definir | 1 aborta salvo que se verifique una firma o una atestación |
ALLOW_UNVERIFIED | sin definir | 1 omite la verificación del checksum, para sistemas sin herramienta SHA-256 |
Las variables van delante de sh, que es el proceso que ejecuta el script:
curl -fsSL https://raw.githubusercontent.com/jmrplens/gitlab-mcp-server/main/scripts/install.sh | VERSION=v2.7.5 INSTALL_DIR=/usr/local/bin shirm https://raw.githubusercontent.com/jmrplens/gitlab-mcp-server/main/scripts/install.ps1 | iexEl script lee la arquitectura real de la máquina (primero PROCESSOR_ARCHITEW6432, de modo que un PowerShell de 32 bits en un Windows de 64 bits sigue eligiendo la compilación correcta), descarga gitlab-mcp-server-windows-amd64.exe o gitlab-mcp-server-windows-arm64.exe, lo verifica con Get-FileHash y lo instala como %LOCALAPPDATA%\Programs\gitlab-mcp-server\gitlab-mcp-server.exe. Después añade esa carpeta a tu PATH de usuario si aún no está. No se publica ninguna compilación x86 de 32 bits, así que el script se detiene en esa arquitectura.
Existen las mismas opciones como variables de entorno (VERSION, INSTALL_DIR, REPO, REQUIRE_SIGNATURE, ALLOW_UNVERIFIED) y, si guardas el script y lo ejecutas como archivo, como parámetros (-Version, -InstallDir, -Repo). Al encadenarlo con iex, define primero las variables:
$env:VERSION = 'v2.7.5'irm https://raw.githubusercontent.com/jmrplens/gitlab-mcp-server/main/scripts/install.ps1 | iexDescarga manual
Sección titulada «Descarga manual»La última release incluye estos archivos:
| Plataforma | Archivo |
|---|---|
| Linux (x86_64) | gitlab-mcp-server-linux-amd64 |
| Linux (ARM64) | gitlab-mcp-server-linux-arm64 |
| macOS (universal) | gitlab-mcp-server-darwin-all |
| macOS (Intel) | gitlab-mcp-server-darwin-amd64 |
| macOS (Apple Silicon) | gitlab-mcp-server-darwin-arm64 |
| Windows (x86_64) | gitlab-mcp-server-windows-amd64.exe |
| Windows (ARM64) | gitlab-mcp-server-windows-arm64.exe |
| Integridad | checksums.txt, checksums.txt.sigstore.json |
| Claude Desktop | gitlab-mcp-server.mcpb, consulta Claude Desktop |
gitlab-mcp-server-darwin-all es un binario universal (arm64 y amd64 en un solo archivo), producido para la extensión de Claude Desktop porque su manifiesto solo puede elegir un archivo por sistema operativo, no por arquitectura. En macOS puedes usarlo o usar el archivo de una sola arquitectura; los tres aparecen en checksums.txt.
Dos formas de URL cubren todos los archivos: releases/latest/download/<archivo> resuelve siempre a la release más nueva, y releases/download/v<versión>/<archivo> fija una concreta.
# Última releasecurl -fsSLO https://github.com/jmrplens/gitlab-mcp-server/releases/latest/download/gitlab-mcp-server-linux-amd64
# Una versión fijadacurl -fsSLO https://github.com/jmrplens/gitlab-mcp-server/releases/download/v2.7.5/gitlab-mcp-server-linux-amd64Hacerlo ejecutable (Linux/macOS)
Sección titulada «Hacerlo ejecutable (Linux/macOS)»La descarga llega sin el bit de ejecución. Actívalo y mueve el archivo a un directorio de tu PATH, quitando el sufijo de plataforma para que el comando sea gitlab-mcp-server, igual que en el resto de canales:
chmod +x gitlab-mcp-server-*sudo mv gitlab-mcp-server-linux-amd64 /usr/local/bin/gitlab-mcp-serverSin sudo, ~/.local/bin/gitlab-mcp-server funciona igual de bien; es donde lo deja el script de instalación.
En Windows, renombra el archivo a gitlab-mcp-server.exe y colócalo en una carpeta que esté en tu PATH, o referéncialo por su ruta completa desde la configuración del cliente.
Verifica lo que has descargado
Sección titulada «Verifica lo que has descargado»Los scripts de instalación ya comparan la descarga con checksums.txt, y comprueban su firma cuando cosign o gh están instalados. Hecho a mano, esa comprobación más la firma del archivo de checksums son dos comandos. checksums.txt lista el SHA-256 de los siete binarios, y checksums.txt.sigstore.json es una firma keyless de Cosign sobre ese archivo, hecha por el workflow de release con la identidad OIDC de GitHub, así que no hay ninguna clave que distribuir.
-
Descarga
checksums.txtychecksums.txt.sigstore.jsonde la misma release que el binario. -
Verifica la firma. La identidad es el workflow de release en la etiqueta que has descargado:
Ventana de terminal cosign verify-blob \--bundle checksums.txt.sigstore.json \--certificate-identity "https://github.com/jmrplens/gitlab-mcp-server/.github/workflows/release.yml@refs/tags/v2.7.5" \--certificate-oidc-issuer "https://token.actions.githubusercontent.com" \checksums.txt--certificate-identity-regexp "^https://github.com/jmrplens/gitlab-mcp-server/"en lugar de la identidad exacta acepta cualquier etiqueta firmada por los workflows de este repositorio. En ambos casos la salida esperada esVerified OK. -
Comprueba el binario contra la lista firmada:
Ventana de terminal # Linuxsha256sum --check --ignore-missing checksums.txt# macOS (shasum no tiene --ignore-missing; filtra la línea relevante primero)grep "$(ls gitlab-mcp-server-*)" checksums.txt | shasum -a 256 -cVentana de terminal # Windows: las dos cadenas hexadecimales deben coincidir (mayúsculas aparte)(Get-FileHash .\gitlab-mcp-server-windows-amd64.exe -Algorithm SHA256).HashSelect-String gitlab-mcp-server-windows-amd64.exe .\checksums.txtSalida esperada en Linux y macOS:
gitlab-mcp-server-linux-amd64: OK, o el nombre de tu archivo.
Si cualquiera de los dos pasos falla, no ejecutes el archivo. El recorrido completo, incluida la instalación de Cosign, está en Verificación de la integridad del release.
Dónde colocarlo
Sección titulada «Dónde colocarlo»- Por usuario, sin
sudo:~/.local/binen Linux y macOS (el valor por defecto del script),%LOCALAPPDATA%\Programs\gitlab-mcp-serveren Windows (el valor por defecto del script de PowerShell). - Para todo el sistema:
/usr/local/binen Linux y macOS.
Los clientes que arrancan desde el escritorio en lugar de desde una shell no siempre heredan el PATH de tu shell. Si un cliente dice que no encuentra gitlab-mcp-server, pon la ruta absoluta en su configuración en lugar del nombre a secas.
Comprueba que arranca
Sección titulada «Comprueba que arranca»gitlab-mcp-server --versionimprime gitlab-mcp-server 2.7.5 (commit: <commit>) para la release actual. Arrancar el binario sin argumentos en una terminal, o hacerle doble clic en Windows, sin GITLAB_URL y GITLAB_TOKEN definidos imprime una breve pantalla de primera ejecución que nombra los dos valores que necesita y espera a que pulses Enter; un cliente MCP nunca la ve, porque habla con el servidor por tuberías. No hay asistente de configuración.
Configura tu cliente
Sección titulada «Configura tu cliente»La entrada stdio mínima es la ruta al binario y el token. Añade GITLAB_URL a env solo para una instancia autogestionada:
{ "mcpServers": { "gitlab": { "command": "/path/to/gitlab-mcp-server", "env": { "GITLAB_TOKEN": "glpat-xxxxxxxxxxxxxxxxxxxx" } } }}Con Claude Code el registro en sí es un comando que no nombra ningún token, claude mcp add gitlab -- gitlab-mcp-server, porque el servidor lee ~/.gitlab-mcp-server.env para lo que no tenga ya en su entorno:
echo 'GITLAB_TOKEN=glpat-xxxx' > ~/.gitlab-mcp-server.envclaude mcp add gitlab -- gitlab-mcp-serverAñade GITLAB_URL=https://gitlab.example.com al mismo archivo para GitLab autoalojado. Las pestañas por cliente, incluido el mapa servers de VS Code con la petición enmascarada del token, están en el Inicio rápido.
Actualizar y desinstalar
Sección titulada «Actualizar y desinstalar»El binario nunca se actualiza a sí mismo. Para actualizar, vuelve a ejecutar el script de instalación, que reemplaza el archivo in situ tras verificar el checksum nuevo, o descarga el archivo más nuevo y sobrescribe el antiguo. VERSION=v2.7.5 (o $env:VERSION en Windows) fija una release concreta cuando necesitas quedarte en ella.
Para desinstalar, borra el archivo: rm ~/.local/bin/gitlab-mcp-server (o donde lo hayas colocado) en Linux y macOS; en Windows, borra %LOCALAPPDATA%\Programs\gitlab-mcp-server y quita esa carpeta de tu PATH de usuario, que el script añadió y nunca elimina. Después quita la entrada gitlab de la configuración de tu cliente.