Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
GITLAB_TOKENYesGitLab Personal Access Token
GITLAB_BASE_URLNoGitLab instance URL (default: https://gitlab.com)https://gitlab.com
GITLAB_READ_ONLYNoSet to true to block all write operationsfalse

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
list_epicsA

Lister les epics d'un groupe GitLab. Filtrer par etat, recherche textuelle ou labels.

get_epicA

Obtenir les details complets d'un epic par son numero (IID).

create_epicA

Creer un nouvel epic dans un groupe GitLab. Par defaut dry_run=true : retourne un apercu sans creer. Passer dry_run=false apres confirmation.

update_epicA

Mettre a jour un epic existant. Par defaut dry_run=true : retourne un apercu sans modifier. Passer dry_run=false apres confirmation.

close_epicA

Fermer un epic. Par defaut dry_run=true : retourne un apercu sans fermer. Passer dry_run=false apres confirmation.

reopen_epicA

Reopen a closed epic. dry_run=true by default.

list_epic_issuesB

Lister les issues rattachees a un epic. Affiche l'ID global et le IID projet de chaque issue.

add_issue_to_epicA

Link an issue to an epic. dry_run=true by default. Requires project_id and issue_iid (not the global issue ID).

list_epic_notesA

Lister les commentaires d'un epic.

add_epic_noteA

Ajouter un commentaire sur un epic. Par defaut dry_run=true.

update_epic_noteA

Edit the body of an existing epic note. Get note_id from list_epic_notes. dry_run=true by default.

delete_epic_noteA

Delete an existing epic note. This is destructive and cannot be undone. dry_run=true by default.

get_epic_widgetsA

Get Work Item widgets for an epic: health status, progress, milestone, iteration, and linked items.

set_epic_milestoneA

Associate a milestone with an epic (uses Work Items API). dry_run=true by default.

set_epic_health_statusA

Set the health status of an epic (onTrack, needsAttention, atRisk, or null to clear). dry_run=true by default.

set_issue_health_statusB

Set the health status of an issue (onTrack, needsAttention, atRisk, or null to clear). dry_run=true by default.

set_epic_iterationB

Associate an iteration (sprint) with an epic (uses Work Items API). dry_run=true by default.

get_work_item_idA

Resolve the WorkItem global ID (gid://gitlab/WorkItem/N) for an epic or issue. Required as parent_work_item_id / child_work_item_ids on link_work_items and unlink_work_items.

link_work_itemsA

Attach one or more work items (issues or epics) as children of a parent work item (epic). Uses the Work Items hierarchy widget — the canonical GitLab 17+ replacement for add_issue_to_epic. Idempotent: existing children of the parent are preserved. Resolve GIDs via get_work_item_id. dry_run=true by default.

unlink_work_itemsA

Detach one or more work items from their current parent. Per-child operation: each child is unset from whatever parent it currently has (parent_work_item_id is accepted for symmetry but the unlink does not assert it). dry_run=true by default.

add_linked_itemA

Create a link between two work items (epics or issues). Link types: RELATED, BLOCKS, BLOCKED_BY. dry_run=true by default.

list_issuesA

Lister les issues d'un groupe GitLab. Filtrer par etat, recherche, labels, milestone ou assignee.

get_issueA

Obtenir les details d'une issue par son projet et son numero (IID).

create_issueA

Creer une nouvelle issue dans un projet. Par defaut dry_run=true : retourne un apercu sans creer. Passer dry_run=false apres confirmation.

update_issueA

Mettre a jour une issue existante. Par defaut dry_run=true : retourne un apercu sans modifier. Passer dry_run=false apres confirmation.

close_issueA

Fermer une issue. Par defaut dry_run=true : retourne un apercu sans fermer. Passer dry_run=false apres confirmation.

reopen_issueA

Reopen a closed issue. dry_run=true by default.

list_project_issuesA

List issues for a specific project (not group). Filter by state, labels, milestone, assignee, iteration.

list_issue_notesB

Lister les commentaires d'une issue.

add_issue_noteA

Ajouter un commentaire sur une issue. Par defaut dry_run=true.

update_issue_noteA

Edit the body of an existing issue note. Get note_id from list_issue_notes. dry_run=true by default.

delete_issue_noteA

Delete an existing issue note. This is destructive and cannot be undone. dry_run=true by default.

list_milestonesA

Lister les milestones d'un groupe GitLab. Filtrer par etat ou recherche textuelle.

get_milestoneA

Obtenir les details d'un milestone par son ID.

create_milestoneA

Creer un nouveau milestone. Par defaut dry_run=true : retourne un apercu sans creer. Passer dry_run=false apres confirmation.

update_milestoneA

Mettre a jour un milestone existant. Par defaut dry_run=true.

close_milestoneA

Fermer un milestone. Par defaut dry_run=true.

list_project_milestonesA

List milestones at the project level. On GitLab CE/Free, milestones are project-scoped and this is the only way to list them.

get_project_milestoneB

Get details of a project-level milestone.

create_project_milestoneA

Create a milestone on a project. dry_run=true by default.

update_project_milestoneB

Update a project-level milestone. dry_run=true by default.

close_project_milestoneB

Close a project-level milestone. dry_run=true by default.

list_merge_requestsA

Lister les merge requests d'un groupe GitLab. Filtrer par etat, auteur, reviewer, labels ou milestone.

get_merge_requestB

Obtenir les details d'une merge request par son projet et son numero (IID).

create_merge_requestA

Create a new merge request. dry_run=true by default.

update_merge_requestA

Update a merge request (title, description, labels, assignees, reviewers). dry_run=true by default.

merge_merge_requestB

Merge a merge request. dry_run=true by default.

approve_merge_requestA

Approve a merge request. dry_run=true by default.

rebase_merge_requestA

Trigger an asynchronous rebase of the MR's source branch on top of the target branch. Useful when CI requires a linear history before merge. dry_run=true by default.

list_mr_notesC

List comments on a merge request.

add_mr_noteA

Add a comment to a merge request. dry_run=true by default.

update_mr_noteA

Edit the body of an existing MR note. Get note_id from list_mr_notes. dry_run=true by default.

delete_mr_noteA

Delete an existing MR note. This is destructive and cannot be undone. dry_run=true by default.

get_mr_diffA

Get the file changes (diff summary) of a merge request. Returns diff_refs (base_sha/head_sha/start_sha) needed to create line-positioned discussions via create_mr_discussion.

list_mr_approval_rulesA

List the project-level MR approval rules: who must approve, how many approvals are required, applies-to-which-branches.

create_mr_approval_ruleA

Create a project-level MR approval rule. dry_run=true by default.

update_mr_approval_ruleB

Update an existing project-level MR approval rule. dry_run=true by default.

delete_mr_approval_ruleA

Delete a project-level MR approval rule. dry_run=true by default. This is destructive.

create_mr_discussionA

Create a code-review comment on a specific line in an MR's diff (a 'discussion' in GitLab terminology). Requires the diff_refs (base_sha, head_sha, start_sha) returned by get_mr_diff. Provide exactly one of new_line / old_line. dry_run=true by default.

resolve_mr_discussionA

Mark an MR discussion as resolved (or unresolved). dry_run=true by default.

list_pipelinesA

List recent pipelines for a project. Filter by branch (ref) or status (running, pending, success, failed, canceled).

get_pipelineA

Get details of a specific pipeline (status, duration, jobs).

get_job_logA

Get the log output of a CI job (last 2000 chars).

retry_pipelineA

Retry a failed pipeline. dry_run=true by default.

cancel_pipelineA

Cancel a running pipeline. dry_run=true by default.

list_branchesC

List branches of a project. Filter by search term.

create_branchA

Create a new branch from a ref. dry_run=true by default.

list_repository_treeC

List files and directories in a project repository.

get_fileA

Get the content of a file from the repository.

list_protected_branchesA

List protected branches for a project, with their push/merge/unprotect access levels.

protect_branchA

Protect a branch with given push/merge/unprotect access levels. Access levels: 0=NoAccess, 30=Developer, 40=Maintainer, 60=Admin. dry_run=true by default.

unprotect_branchA

Remove branch protection rules from a branch. dry_run=true by default.

create_fileA

Create a new file in a repository. Rejects if the file already exists. dry_run=true by default.

update_fileA

Update an existing file in a repository. Supports optimistic concurrency via last_commit_id. dry_run=true by default.

delete_fileA

Delete a file from a repository. dry_run=true by default. This is destructive on the branch.

commit_filesA

Atomically commit multiple file actions (create/update/delete/move/chmod) in a single commit. dry_run=true by default.

list_commitsA

List recent commits for a project. Filter by branch or file path.

list_groupsA

Lister les groupes GitLab accessibles. IMPORTANT : appelez ce tool en premier quand l'utilisateur mentionne un groupe par son nom, pour obtenir le group_id (ID ou full_path) a passer aux autres tools.

list_projectsA

Lister les projets d'un groupe GitLab. Filtrer par recherche ou statut d'archivage.

list_group_membersA

Lister les membres d'un groupe GitLab avec leur niveau d'acces.

list_labelsA

Lister les labels d'un groupe GitLab avec le nombre d'issues et MRs associees.

list_boardsA

Lister les boards (tableaux kanban) d'un groupe GitLab avec leurs colonnes.

list_iterationsA

List iterations (sprints) for a GitLab group. Filter by state (upcoming, current, closed) or search by title. Requires GitLab Premium/Ultimate.

create_iterationA

Create a new iteration (sprint) in a group. start_date and due_date are required (YYYY-MM-DD). dry_run=true by default.

update_iterationA

Update an existing iteration (sprint). The REST path uses iteration_iid (per-group), not the global id. dry_run=true by default.

get_work_item_type_idA

Discover the global ID of a Work Item type (e.g. EPIC, ISSUE, TASK) for a given namespace. Required as workItemTypeId on workItemCreate. IDs vary per GitLab instance and version, so call this once per (namespace, type) and cache the result.

list_workitem_statusesA

List allowed Status widget values for a Work Item type in a group (GitLab 17+). Returns global IDs to pass as status_id to update_issue / update_epic.

create_labelA

Create a label in a group. dry_run=true by default.

update_labelB

Update a label in a group. dry_run=true by default.

delete_labelA

Delete a label from a group. dry_run=true by default. This is destructive and cannot be undone.

add_group_memberA

Add a user to a group with a given access level. dry_run=true by default.

add_project_memberA

Add a user to a project with a given access level. dry_run=true by default.

update_member_access_levelA

Change a member's access level on a group or project. dry_run=true by default.

remove_memberA

Remove a user from a group or project. dry_run=true by default. This is destructive.

search_issuesB

Search issues by full-text query within a project or group. Maps to GET /:scope/:id/search?scope=issues.

search_merge_requestsB

Search merge requests by full-text query within a project or group. Maps to GET /:scope/:id/search?scope=merge_requests.

search_blobsA

Search code/file contents by full-text query within a project or group. Returns matching blobs with line context. Maps to GET /:scope/:id/search?scope=blobs.

upload_fileA

Upload a file to a project so it can be embedded in an issue, MR, or epic description. Returns the Markdown snippet GitLab expects (e.g. alt). Provide exactly one of file_path (read from local disk) or file_base64 (inline data). dry_run=true by default.

search_usersA

Search for GitLab users globally by name or username.

get_current_userA

Obtenir les informations de l'utilisateur connecte (verifie que le token fonctionne).

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/wanadev/gitlab-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server