Ir al contenido

Instalación

GitLab MCP Server es un único binario autocontenido escrito en Go. Todos los canales de esta página entregan ese mismo binario, o un contenedor que lo envuelve, y el mismo comando gitlab-mcp-server, así que la elección depende de lo que ya tengas en la máquina y de cómo quieras recibir las actualizaciones, no de las funcionalidades. Elijas lo que elijas, el servidor necesita un solo valor para arrancar: un personal access token de GitLab en GITLAB_TOKEN (scope api; un token read_api también sirve: el servidor lo detecta al arrancar y le sirve las acciones que GitLab acepta con él, tanto en stdio como en modo HTTP y en el endpoint alojado). GITLAB_URL usa https://gitlab.com por defecto, así que solo la estableces para una instancia autogestionada.

CanalQué obtienesNecesitaVía de actualizaciónPlataformas
Binario nativoEl binario de la release, colocado por un script de instalación o a manoNada (el script necesita curl o wget; PowerShell en Windows)Vuelve a ejecutar el script, o descarga la release nuevaLinux, macOS, Windows; amd64 y arm64
HomebrewEl binario de la release, instalado por una fórmula del tap jmrplens/tapHomebrewbrew upgrademacOS y Linux; Apple Silicon, Intel y arm64
Windows (winget)El ejecutable de la release como paquete portable con un alias en el PATHwingetwinget upgradeWindows; x64 y arm64
DockerUna imagen de contenedor en GHCR, replicada en Docker HubDocker o un runtime compatibleDescarga una etiqueta más nueva y recrea el contenedorImágenes linux/amd64 y linux/arm64, allá donde corra Docker
npm y npxUn paquete lanzador más un paquete de plataforma que lleva el binarioNode.js 18 o superiornpm update -g; npx -y resuelve la versión más nueva en cada arranque en fríoLinux (glibc), macOS, Windows; x64 y arm64
PyPI, uvx y pipxUna wheel que coloca el binario en la ruta de scripts del entornoPython 3.9 o superior (uv o pipx opcionales)pipx upgrade, pip install -U o uv tool upgrade; uvx resuelve la versión más nueva en un arranque en fríoLinux (glibc), macOS 11 o superior, Windows; x64 y arm64
NuGet y dnxUna herramienta .NET cuyo punto de entrada es el binario, un paquete por identificador de runtimeEl SDK de .NET 10 o superiordotnet tool update -g; dnx resuelve la versión más nueva en cada arranqueLinux (glibc), macOS, Windows; x64 y arm64
Plugins de agenteUn manifiesto de plugin que ejecuta la imagen Docker sobre stdioUn host conforme (Cursor, Claude Code, VS Code, OpenCode) y DockerLa etiqueta latest de la imagen, descargada de nuevoAllá donde corran el host y Docker
Claude Desktop (.mcpb)Una extensión de escritorio por sistema operativo: el binario universal de macOS, el ejecutable de Windows o los binarios de Linux x64 y arm64 (a partir de la primera release posterior a 3.1.0; hasta la 3.1.0, un único paquete universal para los tres)Claude Desktop 0.10.0 o superiorCon cada release se publica una versión nueva de la extensiónmacOS (Apple Silicon e Intel), Windows (x64), Linux (glibc; x64 y arm64)
Endpoint alojadoNada instalado: un endpoint público de streamable HTTPUn cliente MCP con soporte HTTP y un token de GitLab.comAvanza por sí solo, normalmente a la última releaseCualquiera
  • Quieres la huella más pequeña y ningún runtime. El binario nativo. Homebrew y winget instalan ese mismo binario y se ocupan de las actualizaciones.
  • Tu cliente ya lanza servidores con npx, uvx o dnx. Los paquetes de npm, PyPI y NuGet: nada que instalar de antemano, y el cliente resuelve la versión más nueva por su cuenta.
  • Prefieres no poner nada en el host, o despliegas para un equipo. Docker, sobre stdio para un cliente o en modo HTTP tras un puerto.
  • Usas Claude Desktop. La extensión .mcpb: un clic, y el token se cifra con una clave del almacén de credenciales del sistema operativo, donde lo hay.
  • Solo quieres echar un vistazo. El endpoint alojado, desde cualquier cliente con soporte HTTP o directamente desde el inspector del navegador.

Todos los canales terminan en el mismo sitio: tu cliente MCP lanza gitlab-mcp-server (o el comando docker, npx, uvx o dnx que lo envuelve) con GITLAB_TOKEN en su entorno. Cada página de canal cierra con el fragmento mínimo de cliente para su comando, y el Inicio rápido tiene las pestañas por cliente para VS Code, Claude Desktop, Cursor, Claude Code, Windsurf, JetBrains, Zed, Kiro, Cline y Codex. La entrada de cada cliente por stdio, y por HTTP con un token o con OAuth, está en Configuración de clientes.

Dos cosas que conviene saber antes de la primera ejecución:

  • Si arrancas el binario en una terminal, o le haces doble clic en Windows, sin GITLAB_URL y GITLAB_TOKEN definidos, imprime qué es y los dos valores que necesita, y espera a que pulses Enter. Un cliente MCP nunca ve esa pantalla, porque se conecta por tuberías y no por una terminal. No hay asistente de configuración.
  • El token puede quedarse fuera del JSON del cliente por completo: una variable de entorno explícita gana al archivo que nombre GITLAB_MCP_ENV_FILE, que gana a ~/.gitlab-mcp-server.env (un CLAVE=valor por línea). Un .env en el directorio de trabajo no se lee. Consulta Configuración.

Después abre tu cliente y pregunta “¿Quién soy en GitLab?”. En la superficie dynamic por defecto, el asistente llama a gitlab_find_action y después a gitlab_execute_action con la acción user.current, y responde con tu perfil de GitLab.

El binario nativo, Homebrew, winget, npm, PyPI, NuGet y la extensión de Claude Desktop llevan todos el binario que GoReleaser compiló para la release, byte a byte; la imagen de contenedor, y la entrada de Plugins de agente que la ejecuta, llevan una compilación propia. El workflow de release los publica en un orden que mantiene oculta cualquier release a medias:

  1. La imagen de contenedor la construye un job propio a partir de la misma etiqueta, con su propia copia del binario (consulta Docker). Las dos variantes de plataforma se arrancan y se les pide su versión antes de publicar la imagen, y se firma y se atesta antes de que se publique ningún otro canal.
  2. La GitHub release se crea como borrador con los binarios, checksums.txt y su firma Cosign, los SBOM y los paquetes de Claude Desktop, que se montan en el mismo job a partir de los mismos binarios. Solo se publica cuando todos sus archivos están adjuntos y atestados, así que una release que puedes ver nunca está a medias.
  3. npm, PyPI y NuGet se empaquetan después, cada uno en un job propio que descarga los archivos publicados de la release y los comprueba contra el checksums.txt firmado antes de empaquetar nada.
  4. Un job de relectura descarga después lo que sirven npm, PyPI y NuGet y compara los binarios de dentro de los paquetes con ese mismo checksums.txt firmado; a partir de la primera release posterior a 3.1.0 también contrasta cada paquete de NuGet, sin la firma de repositorio de NuGet.org, con el digest que la release atestó para él.
  5. Nada que anuncie la versión se ejecuta antes de que esa comparación pase: el tap de Homebrew, la entrada del MCP Registry, el commit de los manifiestos a main y el pull request de winget esperan a ella. Una release cuya publicación en npm, PyPI o NuGet falló los deja en la versión anterior.

Cómo comprobar tú mismo una descarga está en la página Binario nativo, y el contexto en Verificación de la integridad del release.