Sáltate la instalación. Funcionando en menos de 2 minutos.
Inicia una prueba gratuita en cloud.anythingmcp.com, añade GitLab con un clic y apunta tu cliente de IA (Claude, ChatGPT, Copilot o Cursor) al endpoint MCP generado. Sin Docker, sin git clone, sin experiencia de desarrollo.
AnythingMCP está en el directorio de conectores de Claude: añádelo a Claude con un clic (se abre en una pestaña nueva), inicia sesión y elige qué servidores MCP puede usar Claude.
Resumen
Deja que tu IA trabaje en GitLab: encuentra proyectos, clasifica y actualiza issues, revisa merge requests con sus diffs y comentarios, comprueba pipelines y lee los logs de los jobs fallidos, y lee ramas, commits y archivos. GitLab.com o tu propia instancia de GitLab, con un token de acceso personal.
Prueba a pedir
Prompts de ejemplo para GitLab
Haz clic en un prompt para copiarlo. Pégalo en Claude, ChatGPT, Cursor, Gemini, Copilot u OpenClaw para ejecutarlo contra este conector.
Claude es IA y puede equivocarse. Verifica siempre las respuestas.
💡 ¿Sin instalación? Usa cloud.anythingmcp.com directamente. Inicia sesión, pulsa Connectors → GitLab, pega tus credenciales, genera una MCP API key y listo. Sin Docker, sin
git clone, sin servidor local.
GitLab + Claude
Deja que tu IA trabaje en GitLab: encuentra proyectos, clasifica y actualiza issues, revisa merge requests con sus diffs y comentarios, comprueba pipelines y lee los logs de los jobs fallidos, y lee ramas, commits y archivos. GitLab.com o tu propia instancia de GitLab, con un token de acceso personal.
Requisitos previos
Las instrucciones de configuración completas están incluidas en el conector (visibles en el store al seleccionarlo). Las variables de entorno requeridas:
GITLAB_URL, GITLAB_TOKEN
Paso 1 — Obtener credenciales
- En GitLab, haz clic en tu avatar → Edit profile → Access → Personal access tokens → Generate token. En GitLab.com la página está en gitlab.com/-/user_settings/personal_access_tokens.
- Ponle un nombre al token (por ejemplo "AnythingMCP"), fija una fecha de caducidad (365 días como máximo en GitLab.com) y marca el scope
api. Para una configuración de solo lectura, marcaread_apien su lugar. - Copia el token enseguida: GitLab lo muestra una sola vez. Empieza por
glpat-. - Pega el token en
GITLAB_TOKEN, sin la palabra Bearer. Pon enGITLAB_URLhttps://gitlab.compara GitLab.com, o la dirección de tu instancia self-managed o Dedicated tal como la abres en el navegador (por ejemplohttps://gitlab.example.com), sin/api/v4y sin barra final. Después instala el conector. - Empieza con
gitlab_get_current_user: muestra a qué usuario de GitLab pertenece el token y confirma que la dirección es correcta. Después indícale a la IA un proyecto por su ruta, por ejemplomy-group/my-project, o deja que lo encuentre congitlab_list_projects.
Caducidad y alcance del token: en GitLab.com un token dura como máximo 365 días. Cuando caduque el tuyo, genera uno nuevo con el mismo scope y vuelve a pegarlo en GITLAB_TOKEN. El conector actúa como el usuario del token: la IA ve y cambia exactamente lo que puede ese usuario. Un token de acceso personal fine-grained (GitLab 19.2 y posteriores) funciona igual: dale permiso de lectura y escritura sobre issues, merge requests, repositorio, pipelines y jobs de los proyectos afectados. Algunos grupos de GitLab.com exigen tokens fine-grained, y entonces un token clásico falla en sus proyectos con "Access denied: This operation requires a fine-grained personal access token". Los project y group access tokens también sirven, pero en GitLab.com necesitan Premium o Ultimate.
Configuración de solo lectura: usa un token con read_api y desactiva gitlab_create_issue, gitlab_update_issue, gitlab_add_issue_note, gitlab_create_merge_request, gitlab_update_merge_request, gitlab_add_merge_request_note y gitlab_create_branch.
Desactivadas al instalar: gitlab_delete_issue, que borra una issue para siempre (solo pueden hacerlo los propietarios del proyecto y los administradores, y normalmente lo que quieres es cerrarla con gitlab_update_issue), y gitlab_delete_branch. Actívalas solo si la IA debe borrar issues o ramas.
Proyectos, issues y merge requests: las herramientas reciben un proyecto por su id numérico o su ruta completa, por ejemplo my-group/my-project. Las issues y merge requests se identifican por el número que muestra GitLab (#42, !17), no por su id global. gitlab_list_project_members da los ids de usuario para asignados y revisores. gitlab_list_my_issues y gitlab_list_my_merge_requests funcionan en todos los proyectos y por defecto muestran los elementos del usuario del token, incluidas las merge requests que esperan su revisión.
Revisiones, pipelines y código: para revisar una merge request, la IA lee gitlab_get_merge_request (estado de merge y conflictos), luego gitlab_get_merge_request_diffs página a página, gitlab_list_merge_request_commits y gitlab_list_merge_request_notes. Un archivo con un diff demasiado grande llega sin texto; la IA lo lee entonces con gitlab_get_file_content en la rama de origen. Para un pipeline fallido pasa de gitlab_list_pipelines a gitlab_list_pipeline_jobs (solo los jobs fallidos) y a gitlab_get_job_log. Los archivos y logs de jobs se cortan a 200 KB y se conserva el principio: abre un log más largo en GitLab. gitlab_search_project busca en el código de un proyecto en cualquier plan; la búsqueda de código en toda la instancia con gitlab_search necesita advanced search, una función de Premium.
Confirma antes de escribir: las issues, comentarios, merge requests y ramas se crean a nombre del usuario del token. La IA te muestra antes el título, el texto o la rama y espera tu confirmación. GitLab ejecuta las quick actions de un comentario, como /label, /assign, /close, /approve o /merge, así que la IA solo las incluye si tú lo pides. Crear una rama requiere acceso Developer.
Límites de uso: GitLab.com permite unas 2.000 solicitudes a la API por minuto y usuario, 200 issues nuevas y 60 comentarios nuevos por minuto, y 100 búsquedas por minuto. En una instancia self-managed los límites los fija el administrador. Al superar un límite, GitLab responde 429: espera y vuelve a intentarlo.
Errores frecuentes: 401 significa que el token es incorrecto, caducó o se revocó, o que GITLAB_URL apunta a una instancia distinta de la que lo emitió. 403 significa que falta un scope (por ejemplo un token read_api en una escritura) o que el rol no alcanza para la acción. 404 significa que el proyecto, la issue o el archivo no existe o que el usuario no puede verlo: GitLab oculta los recursos privados tras un 404. 400 indica el campo que falta o no es válido. 409 al crear una merge request significa que ya hay una abierta para esas ramas. Un proyecto renombrado sigue respondiendo a lecturas en su ruta antigua, pero las escrituras ahí fallan con 405: usa la ruta nueva o el id numérico.
El conector no tiene herramientas para hacer merge o aprobar merge requests, hacer push de commits, editar archivos ni lanzar, reintentar o cancelar pipelines, y no cubre variables de CI/CD, releases, wikis, paquetes, el container registry ni la administración.
Paso 2 — Instalar el adapter
curl -fsSL https://raw.githubusercontent.com/HelpCode-ai/anythingmcp/main/docker-compose.quickstart.yml -o docker-compose.yml
printf 'JWT_SECRET=%s\nENCRYPTION_KEY=%s\n' "$(openssl rand -hex 32)" "$(openssl rand -hex 32)" > .env
docker compose up -d
Paso 3 — Añadir el conector en Claude
La URL de tu servidor: en AnythingMCP abre MCP Servers → el servidor donde está este conector y copia su URL (
https://cloud.anythingmcp.com/mcp/…). Úsala donde esta guía muestraYOUR_SERVER_ID.
Ruta recomendada: funciona en claude.ai web sin tocar ningún archivo de configuración.
- En Claude, abre Customize → Connectors.
- Pulsa + y después Add custom connector.
- Escribe un nombre, por ejemplo
GitLab, y la URL del servidor MCP remotohttps://cloud.anythingmcp.com/mcp/YOUR_SERVER_ID, y pulsa Add. - Pulsa Connect e inicia sesión en AnythingMCP (OAuth) para permitir el acceso.
Todas las herramientas debajo aparecen en tu chat: empieza a escribir prompts.
Herramientas disponibles
| Tool | What it does |
|---|---|
gitlab_get_current_user | Get the GitLab user the token belongs to: id, username, name, state, web_url and, for admins, is_admin |
gitlab_list_projects | List projects the token can see, newest activity first by default: id, path_with_namespace, default_branch, web_url, visibility and… |
gitlab_get_project | Get one project by id or path: default_branch, visibility, description, web_url, open_issues_count, permissions of the token's user, and… |
gitlab_list_project_members | List the members of a project, including those inherited from its groups: user id, username, name and access_level (10 Guest, 15 Planner… |
gitlab_list_labels | List a project's labels (including group labels): name, color, description and open issue and merge request counts |
gitlab_list_issues | List a project's issues with filters: iid, title, state, labels, assignees, author, milestone, due_date, web_url |
gitlab_list_my_issues | List issues across all projects: by default the ones assigned to the token's user, or the ones they created, or every issue they can see |
gitlab_get_issue | Get one issue by its iid: title, description (Markdown), state, labels, assignees, author, milestone, due_date, time stats, related merge… |
gitlab_create_issue | Create an issue in a project |
gitlab_update_issue | Change an issue: title, description, labels (replace, add or remove), assignees, milestone, due date, or close or reopen it with state_event |
gitlab_delete_issue | Delete an issue for good |
gitlab_list_issue_notes | List the comments on an issue, newest first by default, including system notes (label and status changes, flagged system: true): id, body… |
gitlab_add_issue_note | Post a comment on an issue, as the token's user |
gitlab_list_merge_requests | List a project's merge requests with filters: iid, title, state, draft, source and target branch, author, reviewers, labels, merge_status… |
gitlab_list_my_merge_requests | List merge requests across all projects: by default the ones created by the token's user, or assigned to them, or waiting for their review… |
gitlab_get_merge_request | Get one merge request by iid: title, description, state, draft, source and target branch, sha, detailed_merge_status (mergeable, conflict… |
gitlab_get_merge_request_diffs | Get the changed files of a merge request, page by page: old_path, new_path, new_file, renamed_file, deleted_file and the diff text of each |
gitlab_list_merge_request_commits | List the commits of a merge request: id (SHA), short_id, title, message, author_name and created_at |
gitlab_list_merge_request_notes | List the comments on a merge request, including review comments on lines (with a position) and system notes: id, body, author, created_at… |
gitlab_add_merge_request_note | Post a general comment on a merge request, as the token's user |
gitlab_create_merge_request | Open a merge request from a source branch into a target branch |
gitlab_update_merge_request | Change a merge request: title (add or remove the Draft: prefix), description, target branch, labels, assignees, reviewers, or close or… |
gitlab_list_pipelines | List a project's CI/CD pipelines, newest first: id, iid, status, ref, sha, source, created_at, updated_at and web_url |
gitlab_get_pipeline | Get one pipeline: status, ref, sha, source, duration, queued_duration, coverage, user, started_at, finished_at and web_url |
gitlab_list_pipeline_jobs | List the jobs of a pipeline: id, name, stage, status, failure_reason, duration, runner, allow_failure and web_url |
gitlab_get_job | Get one CI/CD job: name, stage, status, failure_reason, duration, started_at, finished_at, the commit, the pipeline, artifacts and web_url |
gitlab_get_job_log | Read the log (trace) of a CI/CD job as plain text, with ANSI color codes |
gitlab_list_branches | List a project's branches: name, merged, protected, default, the last commit (id, title, author, date) and web_url |
gitlab_get_branch | Get one branch: its last commit, whether it is merged, protected or the default, and whether the user can push to it |
gitlab_create_branch | Create a branch from a branch, tag or commit |
gitlab_delete_branch | Delete a branch |
gitlab_list_commits | List commits of a branch, tag or the default branch, newest first: id (SHA), short_id, title, author_name, authored_date and web_url |
gitlab_get_commit | Get one commit by SHA, branch or tag name: message, author, committer, parent_ids, stats (additions, deletions), the last pipeline and… |
gitlab_get_commit_diff | Get the changes of one commit, page by page: old_path, new_path, new_file, renamed_file, deleted_file and the diff text per file |
gitlab_list_repository_tree | List files and folders in a repository folder: id (blob or tree SHA), name, type (blob = file, tree = folder), path and mode.… |
gitlab_get_file_info | Get a file's metadata without its content: file_name, file_path, size, encoding, content_sha256, blob_id, commit_id and last_commit_id on… |
gitlab_get_file_content | Read a file from the repository as text, at a branch, tag or commit (the default branch by default) |
gitlab_search | Search the whole instance (only what the token's user can see): projects, groups, issues, work_items, merge_requests, milestones, users or… |
gitlab_search_project | Search inside one project: code (blobs, with file name, path, line number and the matching lines), commits, issues, merge_requests… |
Ejemplos de prompts
- "¿Qué merge requests esperan mi revisión en todos los proyectos, y cuáles tienen conflictos o un pipeline fallido?"
- "¿Por qué falló el último pipeline de main en my-group/web-app? Muéstrame el job fallido y el error de su log."
- "Resume la merge request !128 de my-group/web-app: qué cambió, en qué archivos y qué comentarios de revisión siguen sin resolver."
- "Crea una issue en my-group/web-app con el título Botón de pago desalineado en móvil, con la etiqueta bug, y asígnasela a Lena."
FAQ
¿Funciona con Claude Code igual que con Claude Desktop? Sí, apunta ambos a https://cloud.anythingmcp.com/mcp/YOUR_SERVER_ID.
Siguientes pasos
¿Te ha sido útil esta guía?