Back to Gitlabhq

Outils du serveur MCP GitLab

doc-locale/fr-fr/user/model_context_protocol/mcp_server_tools.md

19.3.026.4 KB
Original Source

{{< details >}}

  • Édition : Gratuite, GitLab Premium, GitLab Ultimate
  • Offre : GitLab.com, GitLab Self-Managed, GitLab Dedicated
  • Statut : version bêta

{{< /details >}}

[!warning] Pour donner votre avis sur cette fonctionnalité, laissez un commentaire sur l'ticket 561564.

Le serveur MCP GitLab fournit un ensemble d'outils qui s'intègrent à vos workflows GitLab existants. Vous pouvez utiliser ces outils pour interagir directement avec GitLab et effectuer des opérations GitLab courantes.

get_mcp_server_version {#get_mcp_server_version}

{{< history >}}

{{< /history >}}

Retourne la version actuelle du serveur MCP GitLab.

Exemple :

plaintext
What version of the GitLab MCP server am I connected to?

create_issue {#create_issue}

{{< history >}}

{{< /history >}}

Crée un nouveau ticket dans un projet GitLab.

ParamètreTypeObligatoireDescription
idchaîneOuiID ou chemin encodé en URL du projet.
titlechaîneOuiTitre du ticket.
descriptionchaîneNonDescription du ticket.
assignee_idsarray of integersNonTableau des ID des utilisateurs assignés.
milestone_idintegerNonID du jalon.
labelsarray of stringsNonTableau des noms de label.
confidentialbooléenNonDéfinit le ticket comme confidentiel. La valeur par défaut est false.
epic_idintegerNonID de l'epic lié.

Exemple :

plaintext
Create a new issue titled "Fix login bug" in project 123 with description
"Users cannot log in with special characters in password"

get_issue {#get_issue}

{{< history >}}

{{< /history >}}

Récupère des informations détaillées sur un ticket GitLab spécifique.

ParamètreTypeObligatoireDescription
idchaîneOuiID ou chemin encodé en URL du projet.
issue_iidintegerOuiID interne du ticket.

Exemple :

plaintext
Get details for issue 42 in project 123

create_merge_request {#create_merge_request}

{{< history >}}

  • Introduction dans GitLab 18.5.
  • assignee_ids, reviewer_ids, description, labels et milestone_id ajoutés dans GitLab 18.8.

{{< /history >}}

Crée une merge request dans un projet GitLab.

ParamètreTypeObligatoireDescription
idchaîneOuiID ou chemin encodé en URL du projet.
titlechaîneOuiTitre de la merge request.
source_branchchaîneOuiNom de la branche source.
target_branchchaîneOuiNom de la branche cible.
target_project_idintegerNonID du projet cible.
assignee_idsarray of integersNonTableau des ID des assignés de la merge request. Définir sur 0 ou une valeur vide pour retirer tous les assignés.
reviewer_idsarray of integersNonTableau des ID des relecteurs de la merge request. Définir sur 0 ou une valeur vide pour retirer tous les relecteurs.
descriptionchaîneNonDescription de la merge request.
labelsarray of stringsNonTableau des noms de label. Définir sur une chaîne vide pour retirer tous les labels.
milestone_idintegerNonID du jalon.

Exemple :

plaintext
Create a merge request in project gitlab-org/gitlab titled "Bug fix broken specs"
from branch "fix/specs-broken" into "master" and enable squash

get_merge_request {#get_merge_request}

{{< history >}}

{{< /history >}}

Récupère des informations détaillées sur une merge request GitLab spécifique.

ParamètreTypeObligatoireDescription
idchaîneOuiID ou chemin encodé en URL du projet.
merge_request_iidintegerOuiID interne de la merge request.

Exemple :

plaintext
Get details for merge request 15 in project gitlab-org/gitlab

get_merge_request_commits {#get_merge_request_commits}

{{< history >}}

{{< /history >}}

Récupère la liste des commits d'une merge request GitLab spécifique.

ParamètreTypeObligatoireDescription
idchaîneOuiID ou chemin encodé en URL du projet.
merge_request_iidintegerOuiID interne de la merge request.
per_pageintegerNonNombre de commits par page.
pageintegerNonNuméro de page actuel.

Exemple :

plaintext
Show me all commits in merge request 42 from project 123

get_merge_request_diffs {#get_merge_request_diffs}

{{< history >}}

{{< /history >}}

Récupère les diffs d'une merge request GitLab spécifique.

ParamètreTypeObligatoireDescription
idchaîneOuiID ou chemin encodé en URL du projet.
merge_request_iidintegerOuiID interne de la merge request.
per_pageintegerNonNombre de diffs par page.
pageintegerNonNuméro de page actuel.

Exemple :

plaintext
What files were changed in merge request 25 in the gitlab project?

get_merge_request_pipelines {#get_merge_request_pipelines}

{{< history >}}

{{< /history >}}

Récupère les pipelines d'une merge request GitLab spécifique.

ParamètreTypeObligatoireDescription
idchaîneOuiID ou chemin encodé en URL du projet.
merge_request_iidintegerOuiID interne de la merge request.

Exemple :

plaintext
Show me all pipelines for merge request 42 in project gitlab-org/gitlab

create_merge_request_note {#create_merge_request_note}

{{< history >}}

{{< /history >}}

Ajoute un commentaire ou une réponse à une discussion sur une merge request GitLab en tant qu'utilisateur authentifié.

ParamètreTypeObligatoireDescription
urlchaîneNonURL de la merge request GitLab. Obligatoire si project_id et merge_request_iid sont manquants.
project_idchaîneNonID ou chemin encodé en URL du projet. Obligatoire si url est manquant.
merge_request_iidintegerNonID interne de la merge request. Obligatoire si url est manquant.
bodychaîneOuiContenu de la note. Les lignes ne peuvent pas commencer par / pour éviter de déclencher des actions rapides (par exemple, /merge).
discussion_idchaîneNonID global de la discussion à laquelle répondre (au format gid://gitlab/Discussion/<id>). Si absent, crée une nouvelle note de niveau supérieur.

Exemple :

plaintext
Reply "Thanks, fixed in the latest push" to merge request 42 in project gitlab-org/gitlab

get_merge_request_notes {#get_merge_request_notes}

{{< history >}}

{{< /history >}}

Récupère les notes (commentaires et notes système) d'une merge request GitLab spécifique.

ParamètreTypeObligatoireDescription
urlchaîneNonURL de la merge request GitLab. Obligatoire si project_id et merge_request_iid sont manquants.
project_idchaîneNonID ou chemin encodé en URL du projet. Obligatoire si url est manquant.
merge_request_iidintegerNonID interne de la merge request. Obligatoire si url est manquant.
afterchaîneNonCurseur pour la pagination vers l'avant.
beforechaîneNonCurseur pour la pagination vers l'arrière.
firstintegerNonNombre de notes à retourner pour la pagination vers l'avant.
lastintegerNonNombre de notes à retourner pour la pagination vers l'arrière.

Chaque note retournée inclut son ID de discussion, ce qui permet de regrouper les notes associées en fils de discussion.

Exemple :

plaintext
Show me all comments on merge request 5 in project gitlab-org/gitlab

get_pipeline_jobs {#get_pipeline_jobs}

{{< history >}}

{{< /history >}}

Récupère les jobs d'un pipeline CI/CD GitLab spécifique.

ParamètreTypeObligatoireDescription
idchaîneOuiID ou chemin encodé en URL du projet.
pipeline_idintegerOuiID du pipeline.
per_pageintegerNonNombre de jobs par page.
pageintegerNonNuméro de page actuel.

Exemple :

plaintext
Show me all jobs in pipeline 12345 for project gitlab-org/gitlab

get_job_log {#get_job_log}

Récupère la trace (sortie du journal) d'un job CI/CD spécifique.

ParamètreTypeObligatoireDescription
idchaîneOuiID ou chemin encodé en URL du projet.
job_idintegerOuiID du job.

Exemple :

plaintext
Show me the log output for job 88 in project gitlab-org/gitlab

manage_pipeline {#manage_pipeline}

{{< history >}}

{{< /history >}}

Gère les pipelines CI/CD dans un projet GitLab.

ParamètreTypeObligatoireDescription
idchaîneOuiID ou chemin encodé en URL du projet.
listbooléenNonSi true, liste tous les pipelines d'un projet.
refchaîneNonNom de la branche ou du tag. Si défini, crée un nouveau pipeline sur une branche ou un tag. Facultatif pour le filtrage des listes.
pipeline_idintegerNonID du pipeline. Si seul ce paramètre est défini, supprime un pipeline et toutes les données associées.
retrybooléenNonSi true et pipeline_id sont définis, relance les jobs du pipeline échoués ou annulés.
cancelbooléenNonSi true et pipeline_id sont définis, annule tous les jobs d'un pipeline en cours d'exécution.
namechaîneNonNom du pipeline. Si ce paramètre et pipeline_id sont définis, met à jour les métadonnées du pipeline.
variablesarrayNonVariables du pipeline au format tableau ([{key, value, variable_type}]).
inputshashNonParamètres d'entrée du pipeline sous forme de paires clé-valeur.
pageintegerNonNuméro de page actuel. La valeur par défaut est 1.
per_pageintegerNonNombre d'éléments par page. La valeur par défaut est 20.

Exemples :

  • Lister les pipelines :

    plaintext
    List all pipelines for project gitlab-org/gitlab
    
  • Créer un pipeline :

    plaintext
    Create a pipeline on the main branch for project gitlab-org/gitlab
    
  • Mettre à jour un pipeline :

    plaintext
    Rename pipeline 12345 to "My deploy pipeline" in project gitlab-org/gitlab
    
  • Relancer un pipeline :

    plaintext
    Retry failed jobs in pipeline 12345 for project gitlab-org/gitlab
    
  • Annuler un pipeline :

    plaintext
    Cancel pipeline 12345 in project gitlab-org/gitlab
    
  • Supprimer un pipeline :

    plaintext
    Delete pipeline 12345 in project gitlab-org/gitlab
    

create_workitem_note {#create_workitem_note}

{{< history >}}

{{< /history >}}

Crée une nouvelle note (commentaire) sur un élément de travail GitLab.

ParamètreTypeObligatoireDescription
bodychaîneOuiContenu de la note.
urlchaîneNonURL de l'élément de travail. Obligatoire si group_id ou project_id et work_item_iid sont manquants.
group_idchaîneNonID ou chemin du groupe. Obligatoire si url et project_id sont manquants.
project_idchaîneNonID ou chemin du projet. Obligatoire si url et group_id sont manquants.
work_item_iidintegerNonID interne de l'élément de travail. Obligatoire si url est manquant.
internalbooléenNonMarque la note comme interne (visible uniquement par les utilisateurs ayant le rôle Reporter, Developer, Maintainer ou Owner pour le projet). La valeur par défaut est false.
discussion_idchaîneNonID global de la discussion à laquelle répondre (au format gid://gitlab/Discussion/<id>).

Exemple :

plaintext
Add a comment "This looks good to me" to work item 42 in project gitlab-org/gitlab

get_workitem_notes {#get_workitem_notes}

{{< history >}}

{{< /history >}}

Récupère toutes les notes (commentaires) d'un élément de travail GitLab spécifique.

ParamètreTypeObligatoireDescription
urlchaîneNonURL de l'élément de travail. Obligatoire si group_id ou project_id et work_item_iid sont manquants.
group_idchaîneNonID ou chemin du groupe. Obligatoire si url et project_id sont manquants.
project_idchaîneNonID ou chemin du projet. Obligatoire si url et group_id sont manquants.
work_item_iidintegerNonID interne de l'élément de travail. Obligatoire si url est manquant.
afterchaîneNonCurseur pour la pagination vers l'avant.
beforechaîneNonCurseur pour la pagination vers l'arrière.
firstintegerNonNombre de notes à retourner pour la pagination vers l'avant.
lastintegerNonNombre de notes à retourner pour la pagination vers l'arrière.

Exemple :

plaintext
Show me all comments on work item 42 in project gitlab-org/gitlab

{{< history >}}

{{< /history >}}

Lie un élément de travail à un ou plusieurs autres éléments de travail avec un type de relation.

ParamètreTypeObligatoireDescription
work_items_idsarray of stringsOuiID globaux des éléments de travail à lier (au format gid://gitlab/WorkItem/<id>). Maximum 10 éléments.
urlchaîneNonURL de l'élément de travail source. Obligatoire si group_id ou project_id et work_item_iid sont manquants.
group_idchaîneNonID ou chemin du groupe. Obligatoire si url et project_id sont manquants.
project_idchaîneNonID ou chemin du projet. Obligatoire si url et group_id sont manquants.
work_item_iidintegerNonID interne de l'élément de travail source. Obligatoire si url est manquant.
link_typechaîneNonType de relation. L'un des types suivants : relates_to, blocks ou blocked_by. La valeur par défaut est relates_to. Les types blocks et blocked_by nécessitent GitLab Premium ou GitLab Ultimate.

Exemple :

plaintext
Mark work item 42 in project gitlab-org/gitlab as blocked by work item 40

get_saved_view_work_items {#get_saved_view_work_items}

{{< history >}}

{{< /history >}}

Récupère une vue enregistrée et sa liste d'éléments de travail depuis un espace de nommage. L'outil applique les filtres et l'ordre de tri de la vue enregistrée aux éléments de travail retournés.

ParamètreTypeObligatoireDescription
saved_view_idchaîneOuiID global de la vue enregistrée (au format gid://gitlab/WorkItems::SavedViews::SavedView/<id>).
urlchaîneNonURL de l'espace de nommage (projet ou groupe). Obligatoire si group_id ou project_id est manquant.
group_idchaîneNonID ou chemin du groupe. Obligatoire si url et project_id sont manquants.
project_idchaîneNonID ou chemin du projet. Obligatoire si url et group_id sont manquants.
afterchaîneNonCurseur pour la pagination vers l'avant.
firstintegerNonNombre d'éléments de travail à retourner. Maximum 100.

Exemple :

plaintext
Show me the work items in this saved view: <URL>

search {#search}

{{< history >}}

  • Introduction dans GitLab 18.4.
  • Recherche de groupes et de projets et tri et classement des résultats ajoutés dans GitLab 18.6.
  • Renommé de gitlab_search en search dans GitLab 18.8.

{{< /history >}}

Recherche un terme dans l'ensemble de l'instance GitLab avec l'API de recherche. Cet outil est disponible pour la recherche globale, par groupe et par projet. Les portées disponibles dépendent du type de recherche.

ParamètreTypeObligatoireDescription
scopechaîneOuiPortée de la recherche (par exemple, issues, merge_requests ou projects).
searchchaîneOuiTerme de recherche.
group_idchaîneNonID ou chemin encodé en URL du groupe dans lequel vous souhaitez effectuer la recherche.
project_idchaîneNonID ou chemin encodé en URL du projet dans lequel vous souhaitez effectuer la recherche.
statechaîneNonÉtat des résultats de recherche (pour issues et merge_requests).
confidentialbooléenNonFiltre les résultats par confidentialité (pour issues). La valeur par défaut est false.
fieldsarray of stringsNonTableau des champs dans lesquels vous souhaitez effectuer la recherche (pour issues et merge_requests).
order_bychaîneNonAttribut selon lequel classer les résultats. La valeur par défaut est created_at pour la recherche de base et la pertinence pour la recherche avancée.
sortchaîneNonSens du tri des résultats. La valeur par défaut est desc.
per_pageintegerNonNombre de résultats par page. La valeur par défaut est 20.
pageintegerNonNuméro de page actuel. La valeur par défaut est 1.

Exemple :

plaintext
Search issues for "flaky test" across GitLab

search_labels {#search_labels}

{{< history >}}

{{< /history >}}

Recherche des labels dans un projet ou un groupe GitLab.

ParamètreTypeObligatoireDescription
full_pathchaîneOuiChemin complet du projet ou du groupe (par exemple, group/project).
is_projectbooléenOuiIndique si la recherche doit être effectuée dans un projet (true) ou un groupe (false).
searchchaîneNonTerme de recherche pour filtrer les labels par titre.

Lorsque vous recherchez des labels de groupe, les résultats incluent les labels des groupes ancêtres et descendants.

Exemple :

plaintext
Show me all labels in project gitlab-org/gitlab

semantic_code_search {#semantic_code_search}

{{< details >}}

  • Module complémentaire : GitLab Duo Core, GitLab Duo Pro ou GitLab Duo Enterprise
  • Offre : GitLab.com, GitLab Self-Managed

{{< /details >}}

{{< history >}}

{{< /history >}}

[!flag] Un feature flag contrôle la disponibilité de cette fonctionnalité. Pour plus d'informations, consultez l'historique.

Recherche des extraits de code pertinents dans un projet GitLab. Pour plus d'informations, notamment sur la configuration et l'activation, consultez la recherche sémantique de code.

ParamètreTypeObligatoireDescription
semantic_querychaîneOuiRequête de recherche pour le code.
project_idchaîneOuiID ou chemin du projet.
directory_pathchaîneNonChemin du répertoire (par exemple, app/services/).
knnintegerNonNombre de voisins les plus proches utilisés pour trouver des extraits de code similaires. La valeur par défaut est 64.
limitintegerNonNombre maximum de résultats à retourner. La valeur par défaut est 20.

Pour de meilleurs résultats, décrivez la fonctionnalité ou le comportement qui vous intéresse plutôt que d'utiliser des mots-clés génériques ou des noms de fonction ou de variable spécifiques.

Exemple :

plaintext
How are authorizations managed in this project?

attach_scan_profile {#attach_scan_profile}

{{< history >}}

{{< /history >}}

Associe le profil d'analyse de sécurité donné aux projets spécifiés, ou à tous les projets appartenant aux groupes spécifiés.

ParamètreTypeObligatoireDescription
security_scan_profile_idchaîneOuiID global du profil d'analyse de sécurité (par exemple, gid://gitlab/Security::ScanProfile/1).
project_idsarray of stringsNonTableau des ID globaux des projets (par exemple, [gid://gitlab/Project/1]). Ce paramètre est obligatoire sauf si group_ids est fourni.
group_idsarray of stringsNonTableau des ID globaux des groupes (par exemple, [gid://gitlab/Group/1]). Ce paramètre est obligatoire sauf si project_ids est fourni.

Exemple :

plaintext
Attach `gid://gitlab/Security::ScanProfile/1` to all projects under `gid://gitlab/Group/1`.