Ir al contenido

Endpoint alojado

Hay una instancia pública y lista para usar de este servidor en https://mcp.jmrp.io/gitlab. No hay nada que instalar ni cuenta que crear más allá de tu propio token de GitLab.com: apunta un cliente MCP con soporte HTTP a la URL y el catálogo completo queda disponible. Es la forma más rápida de probar el servidor, y las salvedades de más abajo explican por qué ejecutarlo en local sigue siendo la forma de usarlo a diario.

Cualquier cliente que hable streamable HTTP puede usarlo. La forma genérica:

{
"mcpServers": {
"gitlab": {
"type": "http",
"url": "https://mcp.jmrp.io/gitlab",
"headers": { "Authorization": "Bearer glpat-xxxxxxxxxxxx" }
}
}
}

El endpoint funciona en modo OAuth, lo que te da dos formas de entrar:

  • Iniciar sesión con OAuth, sin cabecera alguna. Un cliente que hable el flujo OAuth (VS Code, Claude Code, Cursor) envía su primera petición sin credencial, recibe un 401 con un desafío RFC 9728 que apunta a https://mcp.jmrp.io/.well-known/oauth-protected-resource/gitlab, descubre ahí https://gitlab.com como servidor de autorización y abre el navegador para que autorices. A partir de entonces el cliente conserva su propio token.
  • Enviar un token de acceso personal como Authorization: Bearer glpat-.... Para un cliente sin flujo OAuth, o para uso sin navegador, un token de acceso personal de GitLab.com en esa cabecera se verifica igual que un token de OAuth. Viaja en cada petición y nunca se guarda en el servidor.
CredencialResultado
Token con el scope apiLa superficie de herramientas completa.
Token con el scope read_apiSe admite y recibe una superficie de herramientas de solo lectura. La comprobación de escritura es por acción, así que una credencial que no puede cambiar nada es una vía de entrada soportada, no rechazada.
Cabecera PRIVATE-TOKENNo se acepta. Es la cabecera del modo legacy; el endpoint solo admite Bearer.
Cabecera GITLAB-URLSe ignora. La instancia está fijada a https://gitlab.com, así que una instancia autogestionada no se puede alcanzar a través de este endpoint.
Sin credencialCualquier método responde 401 con WWW-Authenticate: Bearer ... resource_metadata=..., el desafío que sigue un cliente OAuth.

Usa un token con el alcance que realmente necesites. Un endpoint alojado ve todas las peticiones que le envías; read_api es la elección correcta cuando solo quieres leer.

PropiedadValor
URLhttps://mcp.jmrp.io/gitlab
TransporteStreamable HTTP sin estado. POST es el transporte; un GET o DELETE autenticado responde 405 por diseño.
Superficie de herramientasLa superficie dynamic por defecto: gitlab_find_action y gitlab_execute_action, que alcanzan cualquier acción del catálogo por su id canónico.
AutenticaciónModo OAuth. Authorization: Bearer en cada petición, verificado contra GitLab.com, nunca guardado en el servidor.
SaludGET https://mcp.jmrp.io/gitlab/health no necesita credencial y responde 200 con {"status":"ok",...}.
Ficha del servidorhttps://mcp.jmrp.io/es/servers/gitlab/: el catálogo completo y la configuración por cliente, sin autenticación.
Ficha MCP del servidorGET https://mcp.jmrp.io/gitlab/server-card, sin autenticación.
Directoriomcp.jmrp.io lista los servidores MCP que mantiene el autor; servers.json es esa misma lista para clientes automáticos.

Un curl a secas que recibe 401 es el endpoint funcionando, no fallando. La URL de salud es la que debes sondear cuando quieras un 200.

El inspector del navegador inicia sesión con OAuth y llama a este mismo endpoint en modo solo lectura desde una pestaña: eliges una herramienta, la ejecutas y lees el JSON-RPC en crudo que devuelve, sin instalar nada. La ficha del servidor enumera el catálogo completo sin credencial alguna.

Salvedades: léelas antes de depender de él

Sección titulada «Salvedades: léelas antes de depender de él»
  • Tu token y todas tus peticiones pasan por la máquina de otra persona. Ese es el motivo concreto para ejecutar el servidor en local una vez que decidas seguir usándolo: en local, ambos se quedan en tu propio ordenador. Es también la única opción sensata para una instancia autogestionada privada, que este endpoint no puede alcanzar de todos modos.
  • Es un servicio personal, mantenido por una sola persona y ofrecido tal cual. Sin SLA, sin canal de soporte y sin garantía de que siga igual la semana que viene.
  • No añade cuota propia. Cada llamada se descuenta de los límites de la propia GitLab.com, con tu token.
  • Sirve lo que el mantenedor despliega, nunca una versión fijada. Normalmente es la última release, a veces una rama previa a una release; GET https://mcp.jmrp.io/gitlab/health indica la version y el commit que sirve en ese momento. Si necesitas una versión que no se mueva, ejecútalo tú.
  • Se despliega por separado. El despliegue vive con el host mcp.jmrp.io; este repositorio publica artefactos y no despliega nada.

El endpoint es este binario en modo HTTP con OAuth activado. El mismo despliegue en tu propio host es:

Ventana de terminal
gitlab-mcp-server --http --auth-mode=oauth \
--gitlab-url=https://gitlab.com \
--public-url=https://mcp.example.com/mcp

Ambas opciones son obligatorias: OAuth necesita una instancia fija, y --public-url es el identificador de recurso RFC 9728, así que tiene que ser exactamente la URL con la que están configurados tus clientes. La creación de la aplicación OAuth de GitLab y la configuración por cliente se explican en Modo servidor HTTP y en docs/guides/oauth-app-setup.md.

Este canal es HTTP y no stdio, así que la entrada lleva una url y, para un token, un bloque headers en lugar de command y env:

{
"mcpServers": {
"gitlab": {
"type": "http",
"url": "https://mcp.jmrp.io/gitlab",
"headers": { "Authorization": "Bearer glpat-xxxxxxxxxxxx" }
}
}
}

VS Code usa un mapa servers con "type": "http" y, para el inicio de sesión con OAuth, un bloque oauth con el client ID de la ficha del servidor en lugar de headers. GITLAB_URL no aplica aquí: la instancia está fijada a https://gitlab.com.

El archivo que lee cada cliente aparece en las pestañas por cliente del Inicio rápido; las formas HTTP para VS Code, OpenCode y curl están en Modo servidor HTTP.

No hay nada que actualizar: el endpoint avanza por sí solo, normalmente a la última release, lo que es tanto una de las salvedades de arriba como una comodidad.

Para dejar de usarlo, borra la entrada de la configuración de tu cliente. Después revoca lo que le entregaste: un token de acceso personal se revoca en GitLab en Edit profile > Access > Personal access tokens, y una autorización OAuth en Edit profile > Access > Applications, en la sección Authorized applications.

El resto de canales se comparan en la vista general de instalación.