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": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_projects_toolA | List GitLab projects accessible by the API token. |
| get_project_toolA | Get GitLab project details by ID or path. |
| list_project_branches_toolA | List repository branches for a GitLab project. |
| get_project_branch_toolA | Get a single repository branch. |
| list_project_commits_toolA | List repository commits for a GitLab project. |
| create_project_toolB | Create a new GitLab project. |
| delete_project_toolA | Delete a GitLab project permanently. |
| list_groups_toolA | List GitLab groups accessible by the API token. |
| get_group_toolA | Get GitLab group details by ID or path. |
| list_group_projects_toolA | List projects within a GitLab group. |
| list_merge_requests_toolB | List merge requests for a GitLab project. |
| get_merge_request_toolA | 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_toolB | Create a note (comment) on a merge request. |
| get_mr_changes_toolB | Get the changes (diff) for a merge request. |
| list_mr_discussions_toolA | List discussions (threaded comments) on a merge request. Discussions include inline code review comments with file position data. |
| create_mr_discussion_toolB | Create a new discussion on a merge request. |
| list_issues_toolA | List issues for a GitLab project. |
| get_issue_toolB | 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_toolC | Create a note (comment) on an issue. |
| list_pipelines_toolA | List CI/CD pipelines for a GitLab project. |
| get_pipeline_toolA | 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_toolA | Create (trigger) a new CI/CD pipeline. |
| retry_pipeline_toolA | Retry all failed jobs in a CI/CD pipeline. |
| cancel_pipeline_toolA | Cancel a running CI/CD pipeline. |
| delete_pipeline_toolA | Delete a CI/CD pipeline and all its jobs permanently. |
| retry_job_toolA | Retry a specific failed CI/CD job. |
| cancel_job_toolB | Cancel a running CI/CD job. |
| delete_job_toolB | Delete a CI/CD job's artifacts and trace log. |
| search_global_toolA | Search across all GitLab resources accessible by the token. |
| search_project_toolC | Search within a specific GitLab project. |
| list_repository_tree_toolB | 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_toolB | Update an existing file in a GitLab repository. |
| create_branch_toolB | Create a new branch in a GitLab repository. |
| delete_branch_toolB | Delete a branch from a GitLab repository. |
| compare_branches_toolC | Compare two branches, tags, or commits. |
| list_labels_toolA | 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. Returns: Current user details including ID, username, email, and permissions |
| list_users_toolC | List GitLab users. |
| get_user_toolA | 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_toolB | Create a new release for a GitLab project. |
| list_milestones_toolB | List milestones for a GitLab project. |
| create_milestone_toolA | Create a new milestone in a GitLab project. |
| update_milestone_toolC | Update an existing milestone. |
| list_wiki_pages_toolB | 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 map to a distinct resource/action pair and the list/get/create/update/delete prefixes make intent clear. The main confusable pair is MR notes vs. MR discussions, since both are comments and only differ by threading; otherwise tools are well-separated.
The dominant verb_noun_tool pattern is consistent across the set, which helps predictability. However, 'mr' is used in some tools while 'merge_request' is used in others, and a few tools omit the project/repository scope that similar tools include.
63 tools is far beyond the recommended MCP surface and falls into the extreme count range. While GitLab is broad, this endpoint-per-resource approach creates a heavy agent selection burden and includes many micro-tools that could be consolidated.
Project, issue, MR, CI/CD, and label workflows are largely covered, but there are clear lifecycle dead-ends: no MR merge/accept, no file delete, no update/delete for releases, wiki pages, or snippets, no milestone deletion, and groups are read-only. These gaps will cause agent failures in realistic GitLab workflows.