gitlab mcp

by zereight
Verified
MIT License
1,270
57
  • Linux
  • Apple

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

Integrations

  • Allows interaction with GitLab repositories including creating/updating files, pushing multiple files, searching repositories, creating repositories, getting file contents, creating issues, creating merge requests, forking repositories, creating branches, getting merge request details and diffs, updating merge requests, and creating notes/comments.

Mejor servidor MCP de GitLab

@zereight/mcp-gitlab

Servidor MCP (Protocolo de Contexto de Modelo) de GitLab. Incluye correcciones de errores y mejoras respecto al servidor MCP de GitLab original.

Uso

Uso con la aplicación Claude, Cline, Roo Code y Cursor

Al utilizar la aplicación Claude, debe configurar su clave API y las URL directamente.

{ "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": "true" } } } }

Variables de entorno

  • GITLAB_PERSONAL_ACCESS_TOKEN : Su token de acceso personal de GitLab.
  • GITLAB_API_URL : La URL de tu API de GitLab. (Predeterminado: https://gitlab.com/api/v4 )
  • GITLAB_READ_ONLY_MODE : Cuando se establece en 'true', restringe el servidor a solo operaciones de lectura. Útil para mayor seguridad o cuando no se requiere acceso de escritura. También es útil para usar con Cursor y su límite de 40 herramientas.

Herramientas 🛠️

  1. create_or_update_file
    • Crea o actualiza un solo archivo en un proyecto de GitLab. 📝
    • Entradas:
      • project_id (cadena): ID del proyecto o espacio de nombres/ruta del proyecto
      • file_path (cadena): Ruta para crear/actualizar el archivo
      • content (cadena): contenido del archivo
      • commit_message (cadena): Mensaje de confirmación
      • branch (cadena): Rama para crear/actualizar el archivo en
      • previous_path (cadena opcional): Ruta del archivo anterior al cambiar el nombre de un archivo
    • Devuelve: Contenido del archivo y detalles de confirmación
  2. push_files
    • Envía varios archivos en una sola confirmación. 📤
    • Entradas:
      • project_id (cadena): ID del proyecto o espacio de nombres/ruta del proyecto
      • branch (cadena): Rama a la que enviar
      • files (matriz): Matriz de archivos para enviar, cada uno con propiedades file_path y content
      • commit_message (cadena): Mensaje de confirmación
    • Devoluciones: Referencia de rama actualizada
  3. search_repositories
    • Busca proyectos en GitLab. 🔍
    • Entradas:
      • search (cadena): consulta de búsqueda
      • page (número opcional): Número de página (predeterminado: 1)
      • per_page (número opcional): Resultados por página (predeterminado: 20, máximo: 100)
    • Devoluciones: Resultados de la búsqueda del proyecto
  4. create_repository
    • Crea un nuevo proyecto de GitLab. ➕
    • Entradas:
      • name (cadena): nombre del proyecto
      • description (cadena opcional): Descripción del proyecto
      • visibility (cadena opcional): Nivel de visibilidad del proyecto (público, privado, interno)
      • initialize_with_readme (booleano opcional): Inicializar con README
    • Devuelve: Detalles del proyecto creado
  5. get_file_contents
    • Obtener el contenido de un archivo o directorio. 📂
    • Entradas:
      • project_id (cadena): ID del proyecto o espacio de nombres/ruta del proyecto
      • file_path (cadena): Ruta al archivo/directorio
      • ref (cadena opcional): Rama, etiqueta o confirmación SHA (valor predeterminado: rama predeterminada)
    • Devuelve: Contenido del archivo/directorio
  6. create_issue
    • Crea un nuevo problema. 🐛
    • Entradas:
      • project_id (cadena): ID del proyecto o espacio de nombres/ruta del proyecto
      • title (cadena): Título del problema
      • description (cadena): Descripción del problema
      • assignee_ids (número opcional[]): Matriz de identificaciones de cesionarios
      • milestone_id (número opcional): ID del hito
      • labels (cadena opcional[]): Matriz de etiquetas
    • Devoluciones: Detalles del problema creado
  7. create_merge_request
    • Crea una nueva solicitud de fusión. 🚀
    • Entradas:
      • project_id (cadena): ID del proyecto o espacio de nombres/ruta del proyecto
      • title (cadena): Título de la solicitud de fusión
      • description (cadena): Descripción de la solicitud de fusión
      • source_branch (cadena): Rama con cambios
      • target_branch (cadena): rama en la que fusionarse
      • allow_collaboration (booleano opcional): permitir que los colaboradores envíen confirmaciones a la rama de origen
      • draft (booleano opcional): crear como una solicitud de fusión de borrador
    • Devoluciones: Detalles de la solicitud de fusión creada
  8. fork_repository
    • Bifurcar un proyecto. 🍴
    • Entradas:
      • project_id (cadena): ID del proyecto o espacio de nombres/ruta del proyecto a bifurcar
      • namespace (cadena opcional): espacio de nombres en el que se bifurcará (predeterminado: espacio de nombres del usuario)
    • Devoluciones: Detalles del proyecto bifurcado
  9. create_branch
    • Crea una nueva rama. 🌿
    • Entradas:
      • project_id (cadena): ID del proyecto o espacio de nombres/ruta del proyecto
      • name (cadena): nombre de la nueva rama
      • ref (cadena opcional): referencia para crear la rama desde (rama, etiqueta, SHA de confirmación, valor predeterminado: rama predeterminada)
    • Devuelve: Referencia de rama creada
  10. get_merge_request
  • Obtenga detalles de una solicitud de fusión. ℹ️
  • Entradas:
    • project_id (cadena): ID del proyecto o espacio de nombres/ruta del proyecto
    • merge_request_iid (número): IID de la solicitud de fusión
  • Devoluciones: Detalles de la solicitud de fusión
  1. get_merge_request_diffs
  • Obtener cambios (diffs) de una solicitud de fusión. diff
  • Entradas:
    • project_id (cadena): ID del proyecto o espacio de nombres/ruta del proyecto
    • merge_request_iid (número): IID de la solicitud de fusión
    • view (cadena opcional): tipo de vista Diff ('en línea' o 'paralela')
  • Devoluciones: Matriz de información de diferencia de solicitud de fusión
  1. update_merge_request
  • Actualizar una solicitud de fusión. 🔄
  • Entradas:
    • project_id (cadena): ID del proyecto o espacio de nombres/ruta del proyecto
    • merge_request_iid (número): IID de la solicitud de fusión
    • title (cadena opcional): Nuevo título
    • description (cadena): Nueva descripción
    • target_branch (cadena opcional): Nueva rama de destino
    • state_event (cadena opcional): evento de cambio de estado de solicitud de fusión ('cerrar', 'reabrir')
    • remove_source_branch (booleano opcional): eliminar la rama de origen después de la fusión
    • allow_collaboration (booleano opcional): permitir que los colaboradores envíen confirmaciones a la rama de origen
  • Devoluciones: Detalles de la solicitud de fusión actualizados
  1. create_note
  • Crea una nueva nota (comentario) para un problema o una solicitud de fusión. 💬
  • Entradas:
    • project_id (cadena): ID del proyecto o espacio de nombres/ruta del proyecto
    • noteable_type (cadena): Tipo de nota destacable ("problema" o "solicitud de fusión")
    • noteable_iid (número): IID del problema o solicitud de fusión
    • body (cadena): contenido de la nota
  • Devuelve: Detalles de la nota creada
  1. list_projects
  • Lista de proyectos accesibles con ricas opciones de filtrado 📊
  • Entradas:
    • Búsqueda/filtrado:
      • search
      • owned
      • membership
      • archived
      • visibility
    • Filtrado de funciones:
      • with_issues_enabled
      • with_merge_requests_enabled
    • Clasificación:
      • order_by
      • sort
    • Control de acceso:
      • min_access_level
    • Paginación:
      • page
      • per_page
      • simple
  • Devoluciones: Matriz de proyectos
  1. list_labels
  • Listado de todas las etiquetas de un proyecto con opciones de filtrado 🏷️
  • Entradas:
    • project_id (cadena): ID del proyecto o ruta
    • with_counts (opcional): incluye recuentos de problemas y solicitudes de fusión
    • include_ancestor_groups (opcional): incluye grupos de ancestros
    • search (opcional): Filtrar etiquetas por palabra clave
  • Devuelve: Matriz de etiquetas
  1. get_label
  • Obtener una sola etiqueta de un proyecto
  • Entradas:
    • project_id (cadena): ID del proyecto o ruta
    • label_id (número/cadena): ID de etiqueta o nombre
    • include_ancestor_groups (opcional): incluye grupos de ancestros
  • Devoluciones: detalles de la etiqueta
  1. create_label
  • Crear una nueva etiqueta en un objeto 🏷️➕
  • Entradas:
    • project_id (cadena): ID del proyecto o ruta
    • name (cadena): nombre de la etiqueta
    • color (cadena): color en formato hexadecimal (por ejemplo, "#FF0000")
    • description (opcional): Descripción de la etiqueta
    • priority (opcional): Prioridad de la etiqueta
  • Devoluciones: Detalles de la etiqueta creada
  1. update_label
  • Actualizar una etiqueta existente en un proyecto 🏷️✏️
  • Entradas:
    • project_id (cadena): ID del proyecto o ruta
    • label_id (número/cadena): ID de etiqueta o nombre
    • new_name (opcional): Nuevo nombre de etiqueta
    • color (opcional): Nuevo color en formato hexadecimal
    • description (opcional): Nueva descripción
    • priority (opcional): Nueva prioridad
  • Devoluciones: Detalles de etiqueta actualizados
  1. delete_label
  • Eliminar una etiqueta de un proyecto 🏷️❌
  • Entradas:
    • project_id (cadena): ID del proyecto o ruta
    • label_id (número/cadena): ID de etiqueta o nombre
  • Devoluciones: Mensaje de éxito
  1. list_group_projects
  • Enumera todos los proyectos en un grupo de GitLab. 📂
  • Entradas:
    • group_id (cadena): ID del proyecto o espacio de nombres/ruta del proyecto
    • Opciones de filtrado:
      • include_subgroups (booleano opcional): incluye proyectos de subgrupos
      • search (cadena opcional): término de búsqueda para filtrar proyectos
      • archived (booleano opcional): filtro para proyectos archivados
      • visibility (cadena opcional): Filtrar por visibilidad del proyecto (pública/interna/privada)
      • with_programming_language (cadena opcional): Filtrar por lenguaje de programación
      • starred (booleano opcional): Filtrar por proyectos destacados
    • Filtrado de funciones:
      • with_issues_enabled (booleano opcional): Filtrar proyectos con la función de problemas habilitada
      • with_merge_requests_enabled (booleano opcional): Filtrar proyectos con la función de solicitudes de fusión habilitada
      • min_access_level (número opcional): Filtrar por nivel de acceso mínimo
    • Paginación:
      • page (número opcional): Número de página
      • per_page (número opcional): Resultados por página
    • Clasificación:
      • order_by (cadena opcional): Campo por el que ordenar
      • sort (cadena opcional): Dirección de ordenamiento (asc/desc)
    • Datos adicionales:
      • statistics (booleano opcional): incluye estadísticas del proyecto
      • with_custom_attributes (booleano opcional): incluye atributos personalizados
      • with_security_reports (booleano opcional): incluye informes de seguridad
  • Devoluciones: Lista de proyectos

Configuración de variables de entorno

Antes de ejecutar el servidor, debe configurar las siguientes variables de entorno:

GITLAB_PERSONAL_ACCESS_TOKEN=your_gitlab_token GITLAB_API_URL=your_gitlab_api_url # Default: https://gitlab.com/api/v4 GITLAB_READ_ONLY_MODE=true # Optional: Enable read-only mode

Licencia

Licencia MIT

ID: 7jwbk4r6d7