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.
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
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.
Configuración
- 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.
Requisitos previos: GITLAB_URL, GITLAB_TOKEN
Instalar el conector localmente
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
Abre http://localhost:3000/connectors/store, elige GitLab e introduce las variables listadas en los Requisitos previos.
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."
Siguientes pasos
¿Te ha sido útil esta guía?