mcp-gitlab-workflow
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| GITLAB_TOKEN | Yes | GitLab API access token used by the server and all GitLab operations | |
| WORKFLOW_LABEL | No | Default issue title prefix and fallback label | |
| GITLAB_API_BASE_URL | No | Base URL for the GitLab API | https://gitlab.com/api/v4 |
| WORKFLOW_BASE_BRANCH | No | Default base branch used before creating a new delivery branch | develop |
| WORKFLOW_TARGET_BRANCH | No | Default merge request target branch | develop |
| WORKFLOW_ISSUE_LOG_PATH | No | Path of the local issue log file | issue-log.md |
| WORKFLOW_CODE_PROJECT_ID | No | Default target project ID for repository, branch, commit, and MR tools | |
| WORKFLOW_DELIVERY_METHOD | No | Default delivery mode, supports local_git and remote_api | local_git |
| WORKFLOW_ISSUE_PROJECT_ID | No | Default target project ID for issue-related tools | |
| WORKFLOW_UPDATE_ISSUE_LOG | No | Whether delivery workflows update the local issue log by default | true |
| WORKFLOW_ASSIGNEE_USERNAME | No | Default assignee username for issues and merge requests | |
| WORKFLOW_CODE_PROJECT_PATH | No | Default code project path used in templates, logs, and output | |
| WORKFLOW_LOCAL_REMOTE_NAME | No | Default git remote used by local git workflows | origin |
| WORKFLOW_ISSUE_PROJECT_PATH | No | Default issue project path used in templates and references | |
| WORKFLOW_LOCK_CODE_PROJECT_ID | No | Restrict code and MR operations to a fixed code project ID | |
| WORKFLOW_CHECKOUT_LOCAL_BRANCH | No | Whether remote_api delivery should sync and checkout the created branch locally | false |
| WORKFLOW_LOCK_ISSUE_PROJECT_ID | No | Restrict issue operations to a fixed issue project ID |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| workflow_requirement_to_issueA | Use when requirement text should only create a GitLab issue and stop there. Do not combine this with workflow_requirement_to_delivery for the same user request. If the issue is already created, continue with workflow_issue_to_delivery instead of calling this tool again. |
| workflow_issue_log_appendA | Use when only local issue log markdown should be appended. This tool does not create MR or commit. |
| workflow_review_mr_post_commentA | Two-step MR review workflow. Step 1: call with prepare_review_context=true to fetch review_prompt + diffs for LLM review. Step 2: let the LLM inspect that context, then call again with review_comment_body to post the final review comment (optional approval). |
| workflow_prepare_delivery_workspaceA | Use before delivery workflows. Pass the explicit local repo_path for the target project. This tool verifies a clean local repo, refreshes the latest base branch, and returns a preparation_key that workflow_issue_to_delivery/workflow_requirement_to_delivery must provide. When delivery_method=local_git, it also creates and checks out the local working branch where code changes should be made. |
| workflow_sync_local_branchA | Use when local repository should fetch/pull and switch to a target branch. Local git operations only. |
| workflow_issue_to_deliveryA | Use when an existing issue_iid should be delivered end-to-end: branch, commit, MR, issue comment, local sync, and issue log. Before composing commit_actions, first call workflow_prepare_delivery_workspace and use its preparation_key here. Then inspect the issue text and any screenshots. If the issue may contain image references, call gitlab_get_issue_images(project_id, issue_iid, include_base64=true) first and review the returned image blocks. Do not call this twice for the same issue or same user request. If the issue and MR may already exist, inspect GitLab first before retrying. |
| workflow_requirement_to_deliveryA | Use when requirement text should run the full chain once: create issue, then continue in the same workflow through branch, commit, MR, issue comment, local sync, and issue log. Before composing commit_actions, first call workflow_prepare_delivery_workspace and use its preparation_key here. Do not combine this with workflow_requirement_to_issue or workflow_issue_to_delivery for the same user request. |
| gitlab_get_current_userA | Get current authenticated GitLab user (/user). |
| gitlab_list_labelsB | List labels of a GitLab project (/projects/:id/labels). |
| gitlab_create_labelB | Create a project label (/projects/:id/labels). |
| gitlab_update_labelB | Update a project label (/projects/:id/labels). |
| gitlab_delete_labelB | Delete a project label (/projects/:id/labels/:label_id). |
| gitlab_create_issueB | Create an issue with GitLab REST API /projects/:id/issues. |
| gitlab_get_merge_requestB | Get merge request detail (/projects/:id/merge_requests/:mr_iid). |
| gitlab_get_mr_notesC | Get merge request notes/comments (/projects/:id/merge_requests/:mr_iid/notes). |
| gitlab_get_issueB | Get one issue by project_id + issue_iid. |
| gitlab_upload_project_fileB | Upload binary file to project markdown uploads and return markdown/url metadata. |
| gitlab_get_issue_imagesA | Extract image references from issue description/notes. When include_base64=true, download each image, return base64 metadata, and attach MCP image content blocks so the model can inspect the image itself. |
| gitlab_get_issue_notesB | Get issue notes/comments by project_id + issue_iid. |
| gitlab_add_issue_commentA | Create issue note/comment. Supports direct body or auto-generation from MR changed files (by MR IID or source branch). |
| gitlab_create_branchB | Create repository branch by GitLab REST API. |
| gitlab_get_fileB | Get repository file by GitLab REST API /repository/files/:file_path. |
| gitlab_commit_filesB | Create one commit with multiple file actions via GitLab commits API. |
| gitlab_create_merge_requestB | Create merge request by GitLab REST API /projects/:id/merge_requests. |
| gitlab_create_mr_noteC | Create merge-request note/comment. |
| gitlab_get_mr_changesB | Get merge request changes/diff metadata. |
| gitlab_approve_mrB | Approve merge request by GitLab approval API. |
| gitlab_unapprove_mrB | Remove approval from merge request. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/chntif/mcp-gitlab-workflow'
If you have feedback or need assistance with the MCP directory API, please join our Discord server