mcp-gitlab-crunchtools
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| GITLAB_URL | No | GitLab instance URL | https://gitlab.com |
| GITLAB_TOKEN | Yes | Personal Access Token for GitLab |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": true
} |
| resources | {
"subscribe": false,
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_projects_toolB | List GitLab projects accessible by the API token. |
| get_project_toolB | Get GitLab project details by ID or path. |
| list_project_branches_toolC | List repository branches for a GitLab project. |
| get_project_branch_toolB | Get a single repository branch. |
| list_project_commits_toolB | List repository commits for a GitLab project. |
| create_project_toolC | Create a new GitLab project. |
| delete_project_toolC | Delete a GitLab project permanently. |
| list_groups_toolB | List GitLab groups accessible by the API token. |
| get_group_toolB | Get GitLab group details by ID or path. |
| list_group_projects_toolC | List projects within a GitLab group. |
| list_merge_requests_toolC | List merge requests for a GitLab project. |
| get_merge_request_toolB | Get a single merge request by its IID. |
| create_merge_request_toolC | Create a new merge request. |
| update_merge_request_toolC | Update an existing merge request. |
| list_mr_notes_toolC | List notes (comments) on a merge request. |
| create_mr_note_toolC | Create a note (comment) on a merge request. |
| get_mr_changes_toolC | Get the changes (diff) for a merge request. |
| list_mr_discussions_toolB | List discussions (threaded comments) on a merge request. Discussions include inline code review comments with file position data. |
| create_mr_discussion_toolC | Create a new discussion on a merge request. |
| list_issues_toolC | List issues for a GitLab project. |
| get_issue_toolC | Get a single issue by its IID. |
| create_issue_toolC | Create a new issue in a GitLab project. |
| update_issue_toolC | Update an existing issue. |
| list_issue_notes_toolB | List notes (comments) on an issue. |
| create_issue_note_toolB | Create a note (comment) on an issue. |
| list_pipelines_toolC | List CI/CD pipelines for a GitLab project. |
| get_pipeline_toolB | Get a single CI/CD pipeline by ID. |
| list_pipeline_jobs_toolC | List jobs for a CI/CD pipeline. |
| get_job_log_toolB | Get the log (trace) output of a CI/CD job. |
| create_pipeline_toolC | Create (trigger) a new CI/CD pipeline. |
| retry_pipeline_toolA | Retry all failed jobs in a CI/CD pipeline. |
| cancel_pipeline_toolC | Cancel a running CI/CD pipeline. |
| delete_pipeline_toolB | Delete a CI/CD pipeline and all its jobs permanently. |
| retry_job_toolC | Retry a specific failed CI/CD job. |
| cancel_job_toolC | Cancel a running CI/CD job. |
| delete_job_toolB | Delete a CI/CD job's artifacts and trace log. |
| search_global_toolC | Search across all GitLab resources accessible by the token. |
| search_project_toolC | Search within a specific GitLab project. |
| list_repository_tree_toolC | List repository tree (files and directories). |
| get_file_toolA | Get a file from a GitLab repository. Returns file metadata and content (base64 encoded). |
| create_file_toolC | Create a new file in a GitLab repository. |
| update_file_toolC | Update an existing file in a GitLab repository. |
| create_branch_toolC | Create a new branch in a GitLab repository. |
| delete_branch_toolC | Delete a branch from a GitLab repository. |
| compare_branches_toolB | Compare two branches, tags, or commits. |
| list_labels_toolC | List labels for a GitLab project. |
| create_label_toolC | Create a new label in a GitLab project. |
| update_label_toolC | Update an existing label in a GitLab project. |
| delete_label_toolB | Delete a label from a GitLab project. |
| get_current_user_toolA | Get the currently authenticated GitLab user. |
| list_users_toolC | List GitLab users. |
| get_user_toolB | Get a specific GitLab user by ID. |
| list_releases_toolB | List releases for a GitLab project. |
| get_release_toolA | Get a single release by tag name. |
| create_release_toolC | Create a new release for a GitLab project. |
| list_milestones_toolB | List milestones for a GitLab project. |
| create_milestone_toolC | Create a new milestone in a GitLab project. |
| update_milestone_toolC | Update an existing milestone. |
| list_wiki_pages_toolC | List wiki pages for a GitLab project. |
| get_wiki_page_toolC | Get a single wiki page by slug. |
| create_wiki_page_toolC | Create a new wiki page in a GitLab project. |
| list_snippets_toolB | List snippets for a GitLab project. |
| create_snippet_toolB | Create a new snippet in a GitLab project. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 63 tools
Most tools target a distinct resource and action, and descriptions clearly distinguish closely related operations such as pipeline vs. job retry/cancel/delete. Minor overlap exists between notes and discussions on merge requests, and between current-user and user-listing tools, but an agent can generally select correctly.
Names consistently use snake_case with a verb_noun_tool pattern, making the surface predictable. There are small inconsistencies such as `list_mr_notes_tool` using `mr` while other tools spell out `merge_request`, and occasional noun-first forms like `search_global_tool`.
Sixty-three tools is very heavy for a single MCP server and risks overwhelming an agent's selection process. While GitLab is broad, the set could be better grouped or scoped into narrower servers or workflows.
Coverage is extensive across projects, repositories, issues, merge requests, pipelines, labels, wiki, snippets, releases, and search. Notable gaps remain, especially merging a merge request, deleting files, and full lifecycle operations for wiki pages, snippets, releases, and milestones.