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.

Documentación

Better GitLab MCP Server

@zereight/mcp-gitlab

smithery badge

Servidor GitLab MCP (Model Context Protocol). Incluye correcciones de errores y mejoras sobre el servidor GitLab MCP original.

gitlab mcp MCP server

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 🛠️

+

  1. create_or_update_file - Crear o actualizar un solo archivo en un proyecto de GitLab
  2. search_repositories - Buscar proyectos de GitLab
  3. create_repository - Crear un nuevo proyecto de GitLab
  4. get_file_contents - Obtener el contenido de un archivo o directorio de un proyecto de GitLab
  5. push_files - Enviar múltiples archivos a un proyecto de GitLab en un solo commit
  6. create_issue - Crear un nuevo issue en un proyecto de GitLab
  7. create_merge_request - Crear una nueva solicitud de fusión (merge request) en un proyecto de GitLab
  8. fork_repository - Hacer fork de un proyecto de GitLab a tu cuenta o namespace especificado
  9. create_branch - Crear una nueva rama en un proyecto de GitLab
  10. get_merge_request - Obtener detalles de una solicitud de fusión (Se debe proporcionar mergeRequestIid o branchName)
  11. get_merge_request_diffs - Obtener los cambios/diffs de una solicitud de fusión (Se debe proporcionar mergeRequestIid o branchName)
  12. get_branch_diffs - Obtener los cambios/diffs entre dos ramas o commits en un proyecto de GitLab
  13. update_merge_request - Actualizar una solicitud de fusión (Se debe proporcionar mergeRequestIid o branchName)
  14. create_note - Crear una nueva nota (comentario) en un issue o solicitud de fusión
  15. create_merge_request_thread - Crear un nuevo hilo en una solicitud de fusión
  16. mr_discussions - Listar elementos de discusión para una solicitud de fusión
  17. update_merge_request_note - Modificar una nota de hilo existente en una solicitud de fusión
  18. create_merge_request_note - Agregar una nueva nota a un hilo existente de solicitud de fusión
  19. update_issue_note - Modificar una nota de hilo existente en un issue
  20. create_issue_note - Agregar una nueva nota a un hilo existente de issue
  21. list_issues - Listar issues en un proyecto de GitLab con opciones de filtrado
  22. get_issue - Obtener detalles de un issue específico en un proyecto de GitLab
  23. update_issue - Actualizar un issue en un proyecto de GitLab
  24. delete_issue - Eliminar un issue de un proyecto de GitLab
  25. list_issue_links - Listar todos los enlaces de issue para un issue específico
  26. list_issue_discussions - Listar discusiones para un issue en un proyecto de GitLab
  27. get_issue_link - Obtener un enlace de issue específico
  28. create_issue_link - Crear un enlace de issue entre dos issues
  29. delete_issue_link - Eliminar un enlace de issue
  30. list_namespaces - Listar todos los namespaces disponibles para el usuario actual
  31. get_namespace - Obtener detalles de un namespace por ID o ruta
  32. verify_namespace - Verificar si existe una ruta de namespace
  33. get_project - Obtener detalles de un proyecto específico
  34. list_projects - Listar proyectos accesibles por el usuario actual
  35. list_labels - Listar etiquetas para un proyecto
  36. get_label - Obtener una sola etiqueta de un proyecto
  37. create_label - Crear una nueva etiqueta en un proyecto
  38. update_label - Actualizar una etiqueta existente en un proyecto
  39. delete_label - Eliminar una etiqueta de un proyecto
  40. list_group_projects - Listar proyectos en un grupo de GitLab con opciones de filtrado
  41. list_wiki_pages - Listar páginas wiki en un proyecto de GitLab
  42. get_wiki_page - Obtener detalles de una página wiki específica
  43. create_wiki_page - Crear una nueva página wiki en un proyecto de GitLab
  44. update_wiki_page - Actualizar una página wiki existente en un proyecto de GitLab
  45. delete_wiki_page - Eliminar una página wiki de un proyecto de GitLab
  46. get_repository_tree - Obtener el árbol del repositorio para un proyecto de GitLab (listar archivos y directorios)
  47. list_pipelines - Listar pipelines en un proyecto de GitLab con opciones de filtrado
  48. get_pipeline - Obtener detalles de un pipeline específico en un proyecto de GitLab
  49. list_pipeline_jobs - Listar todos los jobs en un pipeline específico
  50. get_pipeline_job - Obtener detalles de un número de job de pipeline de GitLab
  51. get_pipeline_job_output - Obtener la salida/trace de un número de job de pipeline de GitLab
  52. create_pipeline - Crear un nuevo pipeline para una rama o tag
  53. retry_pipeline - Reintentar un pipeline fallido o cancelado
  54. cancel_pipeline - Cancelar un pipeline en ejecución
  55. list_merge_requests - Listar solicitudes de fusión en un proyecto de GitLab con opciones de filtrado
  56. list_milestones - Listar hitos en un proyecto de GitLab con opciones de filtrado
  57. get_milestone - Obtener detalles de un hito específico
  58. create_milestone - Crear un nuevo hito en un proyecto de GitLab
  59. edit_milestone - Editar un hito existente en un proyecto de GitLab
  60. delete_milestone - Eliminar un hito de un proyecto de GitLab
  61. get_milestone_issue - Obtener issues asociados con un hito específico
  62. get_milestone_merge_requests - Obtener solicitudes de fusión asociadas con un hito específico
  63. promote_milestone - Promover un hito a la siguiente etapa
  64. get_milestone_burndown_events - Obtener eventos de burndown para un hito específico
  65. get_users - Obtener detalles de usuarios de GitLab por nombres de usuario