Better GitLab MCP Server
Un servidor MCP de GitLab mejorado con correcciones de errores, que proporciona acceso a proyectos, incidencias y solicitudes de fusión de GitLab.
GitHub
1
Prueba este MCPPatrocinadoDocumentación
Better GitLab MCP Server
@zereight/mcp-gitlab
Servidor GitLab MCP (Model Context Protocol). Incluye correcciones de errores y mejoras sobre el servidor GitLab MCP original.
Uso
Uso con Claude App, Cline, Roo Code, Cursor
Al usar con Claude App, necesitas configurar tu clave de API y las URLs directamente.
npx
{
"mcpServers": {
"GitLab communication server": {
"command": "npx",
"args": ["-y", "@zereight/mcp-gitlab"],
"env": {
"GITLAB_PERSONAL_ACCESS_TOKEN": "your_gitlab_token",
"GITLAB_API_URL": "your_gitlab_api_url",
"GITLAB_READ_ONLY_MODE": "false",
"USE_GITLAB_WIKI": "false", // use wiki api?
"USE_MILESTONE": "false", // use milestone api?
"USE_PIPELINE": "false" // use pipeline api?
}
}
}
}
Docker
- stdio
{
"mcpServers": {
"GitLab communication server": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"GITLAB_PERSONAL_ACCESS_TOKEN",
"-e",
"GITLAB_API_URL",
"-e",
"GITLAB_READ_ONLY_MODE",
"-e",
"USE_GITLAB_WIKI",
"-e",
"USE_MILESTONE",
"-e",
"USE_PIPELINE",
"iwakitakuma/gitlab-mcp"
],
"env": {
"GITLAB_PERSONAL_ACCESS_TOKEN": "your_gitlab_token",
"GITLAB_API_URL": "https://gitlab.com/api/v4", // Optional, for self-hosted GitLab
"GITLAB_READ_ONLY_MODE": "false",
"USE_GITLAB_WIKI": "true",
"USE_MILESTONE": "true",
"USE_PIPELINE": "true"
}
}
}
}
- sse
docker run -i --rm \
-e GITLAB_PERSONAL_ACCESS_TOKEN=your_gitlab_token \
-e GITLAB_API_URL= "https://gitlab.com/api/v4"\
-e GITLAB_READ_ONLY_MODE=true \
-e USE_GITLAB_WIKI=true \
-e USE_MILESTONE=true \
-e USE_PIPELINE=true \
-e SSE=true \
-p 3333:3002 \
iwakitakuma/gitlab-mcp
{
"mcpServers": {
"GitLab communication server": {
"url": "http://localhost:3333/sse"
}
}
}
Push de Imagen Docker
$ sh scripts/image_push.sh docker_user_name
Variables de Entorno
GITLAB_PERSONAL_ACCESS_TOKEN: Tu token de acceso personal de GitLab.GITLAB_API_URL: Tu URL de API de GitLab. (Por defecto:https://gitlab.com/api/v4)GITLAB_READ_ONLY_MODE: Cuando se establece en 'true', restringe el servidor para exponer solo operaciones de solo lectura. Útil para mayor seguridad o cuando no se necesita acceso de escritura. También útil para usar con Cursor y su límite de 40 herramientas.USE_GITLAB_WIKI: Cuando se establece en 'true', habilita las herramientas relacionadas con wiki (list_wiki_pages, get_wiki_page, create_wiki_page, update_wiki_page, delete_wiki_page). Por defecto, las funciones de wiki están deshabilitadas.USE_MILESTONE: Cuando se establece en 'true', habilita las herramientas relacionadas con hitos (list_milestones, get_milestone, create_milestone, edit_milestone, delete_milestone, get_milestone_issue, get_milestone_merge_requests, promote_milestone, get_milestone_burndown_events). Por defecto, las funciones de hitos están deshabilitadas.USE_PIPELINE: Cuando se establece en 'true', habilita las herramientas relacionadas con pipelines (list_pipelines, get_pipeline, list_pipeline_jobs, get_pipeline_job, get_pipeline_job_output, create_pipeline, retry_pipeline, cancel_pipeline). Por defecto, las funciones de pipelines están deshabilitadas.
Herramientas 🛠️
+
create_or_update_file- Crear o actualizar un solo archivo en un proyecto de GitLabsearch_repositories- Buscar proyectos de GitLabcreate_repository- Crear un nuevo proyecto de GitLabget_file_contents- Obtener el contenido de un archivo o directorio de un proyecto de GitLabpush_files- Enviar múltiples archivos a un proyecto de GitLab en un solo commitcreate_issue- Crear un nuevo issue en un proyecto de GitLabcreate_merge_request- Crear una nueva solicitud de fusión (merge request) en un proyecto de GitLabfork_repository- Hacer fork de un proyecto de GitLab a tu cuenta o namespace especificadocreate_branch- Crear una nueva rama en un proyecto de GitLabget_merge_request- Obtener detalles de una solicitud de fusión (Se debe proporcionar mergeRequestIid o branchName)get_merge_request_diffs- Obtener los cambios/diffs de una solicitud de fusión (Se debe proporcionar mergeRequestIid o branchName)get_branch_diffs- Obtener los cambios/diffs entre dos ramas o commits en un proyecto de GitLabupdate_merge_request- Actualizar una solicitud de fusión (Se debe proporcionar mergeRequestIid o branchName)create_note- Crear una nueva nota (comentario) en un issue o solicitud de fusióncreate_merge_request_thread- Crear un nuevo hilo en una solicitud de fusiónmr_discussions- Listar elementos de discusión para una solicitud de fusiónupdate_merge_request_note- Modificar una nota de hilo existente en una solicitud de fusióncreate_merge_request_note- Agregar una nueva nota a un hilo existente de solicitud de fusiónupdate_issue_note- Modificar una nota de hilo existente en un issuecreate_issue_note- Agregar una nueva nota a un hilo existente de issuelist_issues- Listar issues en un proyecto de GitLab con opciones de filtradoget_issue- Obtener detalles de un issue específico en un proyecto de GitLabupdate_issue- Actualizar un issue en un proyecto de GitLabdelete_issue- Eliminar un issue de un proyecto de GitLablist_issue_links- Listar todos los enlaces de issue para un issue específicolist_issue_discussions- Listar discusiones para un issue en un proyecto de GitLabget_issue_link- Obtener un enlace de issue específicocreate_issue_link- Crear un enlace de issue entre dos issuesdelete_issue_link- Eliminar un enlace de issuelist_namespaces- Listar todos los namespaces disponibles para el usuario actualget_namespace- Obtener detalles de un namespace por ID o rutaverify_namespace- Verificar si existe una ruta de namespaceget_project- Obtener detalles de un proyecto específicolist_projects- Listar proyectos accesibles por el usuario actuallist_labels- Listar etiquetas para un proyectoget_label- Obtener una sola etiqueta de un proyectocreate_label- Crear una nueva etiqueta en un proyectoupdate_label- Actualizar una etiqueta existente en un proyectodelete_label- Eliminar una etiqueta de un proyectolist_group_projects- Listar proyectos en un grupo de GitLab con opciones de filtradolist_wiki_pages- Listar páginas wiki en un proyecto de GitLabget_wiki_page- Obtener detalles de una página wiki específicacreate_wiki_page- Crear una nueva página wiki en un proyecto de GitLabupdate_wiki_page- Actualizar una página wiki existente en un proyecto de GitLabdelete_wiki_page- Eliminar una página wiki de un proyecto de GitLabget_repository_tree- Obtener el árbol del repositorio para un proyecto de GitLab (listar archivos y directorios)list_pipelines- Listar pipelines en un proyecto de GitLab con opciones de filtradoget_pipeline- Obtener detalles de un pipeline específico en un proyecto de GitLablist_pipeline_jobs- Listar todos los jobs en un pipeline específicoget_pipeline_job- Obtener detalles de un número de job de pipeline de GitLabget_pipeline_job_output- Obtener la salida/trace de un número de job de pipeline de GitLabcreate_pipeline- Crear un nuevo pipeline para una rama o tagretry_pipeline- Reintentar un pipeline fallido o canceladocancel_pipeline- Cancelar un pipeline en ejecuciónlist_merge_requests- Listar solicitudes de fusión en un proyecto de GitLab con opciones de filtradolist_milestones- Listar hitos en un proyecto de GitLab con opciones de filtradoget_milestone- Obtener detalles de un hito específicocreate_milestone- Crear un nuevo hito en un proyecto de GitLabedit_milestone- Editar un hito existente en un proyecto de GitLabdelete_milestone- Eliminar un hito de un proyecto de GitLabget_milestone_issue- Obtener issues asociados con un hito específicoget_milestone_merge_requests- Obtener solicitudes de fusión asociadas con un hito específicopromote_milestone- Promover un hito a la siguiente etapaget_milestone_burndown_events- Obtener eventos de burndown para un hito específicoget_users- Obtener detalles de usuarios de GitLab por nombres de usuario