{"name":"io.github.vish288/mcp-gitlab","slug":"vish288-mcp-gitlab","title":null,"description":"MCP server for GitLab API — projects, MRs, pipelines, CI/CD, approvals, issues, code review.","url":"https://mcp.market/server/vish288-mcp-gitlab","rating":null,"grade":"B","score":83,"certified":false,"status":"active","category":"devtools","tags":["devtools"],"presence":{"score":38,"stars":6,"forks":3,"downloads_week":933,"last_push_at":"2026-09-20T07:21:46.000Z","license":"MIT"},"uptime":null,"claimed":false,"transport":"pypi","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/vish288/mcp-gitlab","website":null,"version":"0.9.7","remotes":[],"packages":[{"registryType":"pypi","identifier":"mcp-gitlab","version":"0.9.7","transport":{"type":"stdio"},"environmentVariables":[{"description":"GitLab personal access token (also accepts GITLAB_PAT, GITLAB_PERSONAL_ACCESS_TOKEN, or GITLAB_API_TOKEN)","isRequired":true,"format":"string","isSecret":true,"name":"GITLAB_TOKEN"},{"description":"GitLab instance URL (e.g. https://gitlab.com)","isRequired":true,"format":"string","name":"GITLAB_URL"},{"description":"Restrict to read-only operations (true/false)","format":"string","name":"GITLAB_READ_ONLY"}]}],"tools":[{"name":"gitlab_add_issue_comment","description":"Post a comment on an issue. Returns the new note's id, body, author, and created_at.","write_action":true,"price_micros":0,"input_schema":null},{"name":"gitlab_add_mr_note","description":"Post a new comment on a merge request.","write_action":true,"price_micros":0,"input_schema":null},{"name":"gitlab_approve_mr","description":"Approve a merge request, optionally gating on a sha so HEAD hasn't changed.","write_action":false,"price_micros":0,"input_schema":null},{"name":"gitlab_award_emoji","description":"Add an emoji reaction to an MR note. Returns the new award's id, name, and user.","write_action":false,"price_micros":0,"input_schema":null},{"name":"gitlab_cancel_job","description":"Cancel a running job. Returns the updated job with status=canceled.","write_action":true,"price_micros":0,"input_schema":null},{"name":"gitlab_cancel_pipeline","description":"Cancel a running pipeline. Returns the updated pipeline with status=canceled.","write_action":true,"price_micros":0,"input_schema":null},{"name":"gitlab_compare","description":"Compare two refs (branch, tag, or sha).","write_action":false,"price_micros":0,"input_schema":null},{"name":"gitlab_create_branch","description":"Create a branch from an existing ref.","write_action":true,"price_micros":0,"input_schema":null},{"name":"gitlab_create_commit","description":"Create a commit applying create/update/delete/move/chmod file actions in one call.","write_action":true,"price_micros":0,"input_schema":null},{"name":"gitlab_create_group_variable","description":"Create a group CI/CD variable.","write_action":true,"price_micros":0,"input_schema":null},{"name":"gitlab_create_issue","description":"Create a new issue.","write_action":true,"price_micros":0,"input_schema":null},{"name":"gitlab_create_mr","description":"Create a merge request.","write_action":true,"price_micros":0,"input_schema":null},{"name":"gitlab_create_mr_approval_rule","description":"Add an approval rule to a merge request.","write_action":true,"price_micros":0,"input_schema":null},{"name":"gitlab_create_mr_discussion","description":"Create a discussion on a merge request.","write_action":true,"price_micros":0,"input_schema":null},{"name":"gitlab_create_pipeline","description":"Trigger a new pipeline on the given ref, optionally with variables.","write_action":true,"price_micros":0,"input_schema":null},{"name":"gitlab_create_project","description":"Create a new project.","write_action":true,"price_micros":0,"input_schema":null},{"name":"gitlab_create_project_approval_rule","description":"Create a project-level approval rule.","write_action":true,"price_micros":0,"input_schema":null},{"name":"gitlab_create_release","description":"Create a release tied to a tag (or a new ref).","write_action":true,"price_micros":0,"input_schema":null},{"name":"gitlab_create_tag","description":"Create a tag on the given ref, optionally with a message.","write_action":true,"price_micros":0,"input_schema":null},{"name":"gitlab_create_variable","description":"Create a project CI/CD variable.","write_action":true,"price_micros":0,"input_schema":null},{"name":"gitlab_delete_branch","description":"Delete a branch from a project. Returns a {status: deleted, branch} confirmation.","write_action":true,"price_micros":0,"input_schema":null},{"name":"gitlab_delete_group_variable","description":"Delete a group CI/CD variable. Returns a {status: deleted, key} confirmation.","write_action":true,"price_micros":0,"input_schema":null},{"name":"gitlab_delete_mr_approval_rule","description":"Delete an approval rule from a merge request.","write_action":true,"price_micros":0,"input_schema":null},{"name":"gitlab_delete_mr_note","description":"Delete a comment from a merge request. Returns a {status: deleted, note_id} confirmation.","write_action":true,"price_micros":0,"input_schema":null},{"name":"gitlab_delete_project","description":"Permanently delete a project. Irreversible.","write_action":true,"price_micros":0,"input_schema":null},{"name":"gitlab_delete_project_approval_rule","description":"Delete a project-level approval rule. Returns a {status: deleted, rule_id} confirmation.","write_action":true,"price_micros":0,"input_schema":null},{"name":"gitlab_delete_release","description":"Delete a release (the underlying tag is preserved).","write_action":true,"price_micros":0,"input_schema":null},{"name":"gitlab_delete_tag","description":"Delete a tag. Returns a {status: deleted, tag} confirmation.","write_action":true,"price_micros":0,"input_schema":null},{"name":"gitlab_delete_variable","description":"Delete a project CI/CD variable. Returns a {status: deleted, key} confirmation.","write_action":true,"price_micros":0,"input_schema":null},{"name":"gitlab_get_commit","description":"Get a single commit, optionally with diff.","write_action":false,"price_micros":0,"input_schema":null},{"name":"gitlab_get_group","description":"Get a group's details.","write_action":false,"price_micros":0,"input_schema":null},{"name":"gitlab_get_issue","description":"Get a single issue.","write_action":false,"price_micros":0,"input_schema":null},{"name":"gitlab_get_job_log","description":"Get a job's log trace, truncated to the last tail_lines lines (default 200).","write_action":false,"price_micros":0,"input_schema":null},{"name":"gitlab_get_mr","description":"Get merge request details.","write_action":false,"price_micros":0,"input_schema":null},{"name":"gitlab_get_mr_approvals","description":"Get the approval state of a merge request.","write_action":false,"price_micros":0,"input_schema":null},{"name":"gitlab_get_pipeline","description":"Get pipeline details, optionally with jobs.","write_action":false,"price_micros":0,"input_schema":null},{"name":"gitlab_get_project","description":"Get a project's details.","write_action":false,"price_micros":0,"input_schema":null},{"name":"gitlab_get_project_approvals","description":"Get project-level approval configuration.","write_action":false,"price_micros":0,"input_schema":null},{"name":"gitlab_get_release","description":"Get a release by tag.","write_action":false,"price_micros":0,"input_schema":null},{"name":"gitlab_get_tag","description":"Get a tag's details. Returns name, message, target commit, and any attached release.","write_action":false,"price_micros":0,"input_schema":null},{"name":"gitlab_list_branches","description":"List branches in a project.","write_action":false,"price_micros":0,"input_schema":null},{"name":"gitlab_list_commits","description":"List commits on a ref (branch, tag, or sha).","write_action":false,"price_micros":0,"input_schema":null},{"name":"gitlab_list_group_variables","description":"List group CI/CD variables.","write_action":false,"price_micros":0,"input_schema":null},{"name":"gitlab_list_groups","description":"List groups visible to the caller.","write_action":false,"price_micros":0,"input_schema":null},{"name":"gitlab_list_issues","description":"List issues in a project, filterable by state/labels/assignee.","write_action":false,"price_micros":0,"input_schema":null},{"name":"gitlab_list_mr_approval_rules","description":"List approval rules attached to a merge request.","write_action":false,"price_micros":0,"input_schema":null},{"name":"gitlab_list_mr_commits","description":"List commits included in a merge request.","write_action":false,"price_micros":0,"input_schema":null},{"name":"gitlab_list_mr_discussions","description":"List discussions on a merge request.","write_action":false,"price_micros":0,"input_schema":null},{"name":"gitlab_list_mr_notes","description":"List notes (comments) on a merge request.","write_action":false,"price_micros":0,"input_schema":null},{"name":"gitlab_list_mr_pipelines","description":"List pipelines associated with a merge request.","write_action":false,"price_micros":0,"input_schema":null},{"name":"gitlab_list_mrs","description":"List merge requests in a project, filterable by state/labels/author.","write_action":false,"price_micros":0,"input_schema":null},{"name":"gitlab_list_pipelines","description":"List pipelines for a project. Returns id, status, ref, source, timing, web_url.","write_action":false,"price_micros":0,"input_schema":null},{"name":"gitlab_list_project_approval_rules","description":"List project-level approval rules.","write_action":false,"price_micros":0,"input_schema":null},{"name":"gitlab_list_releases","description":"List project releases.","write_action":false,"price_micros":0,"input_schema":null},{"name":"gitlab_list_tags","description":"List repository tags.","write_action":false,"price_micros":0,"input_schema":null},{"name":"gitlab_list_variables","description":"List project CI/CD variables.","write_action":false,"price_micros":0,"input_schema":null},{"name":"gitlab_merge_mr","description":"Merge a merge request, optionally only when the pipeline succeeds.","write_action":false,"price_micros":0,"input_schema":null},{"name":"gitlab_merge_mr_sequence","description":"Merge several MRs sequentially, stopping at the first failure.","write_action":false,"price_micros":0,"input_schema":null},{"name":"gitlab_mr_changes","description":"Get file changes of a merge request. Returns list of diffs with old/new paths and content.","write_action":false,"price_micros":0,"input_schema":null},{"name":"gitlab_play_job","description":"Trigger a manual job, optionally with job variables.","write_action":false,"price_micros":0,"input_schema":null},{"name":"gitlab_rebase_mr","description":"Trigger a server-side rebase of an MR onto its target branch.","write_action":false,"price_micros":0,"input_schema":null},{"name":"gitlab_remove_emoji","description":"Remove an emoji reaction from an MR note. Returns a {status: removed} confirmation.","write_action":true,"price_micros":0,"input_schema":null},{"name":"gitlab_reply_to_discussion","description":"Reply to an existing MR discussion thread.","write_action":false,"price_micros":0,"input_schema":null},{"name":"gitlab_resolve_discussion","description":"Mark an MR discussion as resolved or unresolved.","write_action":false,"price_micros":0,"input_schema":null},{"name":"gitlab_retry_job","description":"Retry a failed job. Returns the new job's id, status, name, stage, and web_url.","write_action":false,"price_micros":0,"input_schema":null},{"name":"gitlab_retry_pipeline","description":"Retry all failed or canceled jobs in a pipeline.","write_action":false,"price_micros":0,"input_schema":null},{"name":"gitlab_share_group_with_group","description":"Grant one group access to another group at the given access level.","write_action":false,"price_micros":0,"input_schema":null},{"name":"gitlab_share_project_with_group","description":"Grant a group access to a project at the given access level.","write_action":false,"price_micros":0,"input_schema":null},{"name":"gitlab_subscribe_mr","description":"Subscribe the authenticated user to notifications for a merge request.","write_action":false,"price_micros":0,"input_schema":null},{"name":"gitlab_unapprove_mr","description":"Remove the current user's approval from a merge request.","write_action":true,"price_micros":0,"input_schema":null},{"name":"gitlab_unshare_group_with_group","description":"Revoke a group-to-group share. Returns a {status: unshared} confirmation.","write_action":false,"price_micros":0,"input_schema":null},{"name":"gitlab_unshare_project_with_group","description":"Revoke a group's access to a project.","write_action":false,"price_micros":0,"input_schema":null},{"name":"gitlab_unsubscribe_mr","description":"Unsubscribe the authenticated user from notifications for a merge request.","write_action":false,"price_micros":0,"input_schema":null},{"name":"gitlab_update_group_variable","description":"Update a group CI/CD variable. Returns the updated variable object.","write_action":true,"price_micros":0,"input_schema":null},{"name":"gitlab_update_issue","description":"Update an issue's title, description, labels, assignees, weight, or state event.","write_action":true,"price_micros":0,"input_schema":null},{"name":"gitlab_update_mr","description":"Update an MR's title, description, target branch, labels, squash/draft flags, or state.","write_action":true,"price_micros":0,"input_schema":null},{"name":"gitlab_update_mr_approval_rule","description":"Update a merge-request-level approval rule. Returns the updated rule object.","write_action":true,"price_micros":0,"input_schema":null},{"name":"gitlab_update_mr_note","description":"Edit an existing MR comment's body.","write_action":true,"price_micros":0,"input_schema":null},{"name":"gitlab_update_project_approval_rule","description":"Update a project-level approval rule. Returns the updated rule object.","write_action":true,"price_micros":0,"input_schema":null},{"name":"gitlab_update_project_approvals","description":"Update project-level approval settings. Returns the updated approval configuration.","write_action":true,"price_micros":0,"input_schema":null},{"name":"gitlab_update_project_merge_settings","description":"Update merge-related project settings (squash, fast-forward, pipeline gating).","write_action":true,"price_micros":0,"input_schema":null},{"name":"gitlab_update_release","description":"Update a release's name, description, or release date. Returns the updated release.","write_action":true,"price_micros":0,"input_schema":null},{"name":"gitlab_update_variable","description":"Update a project CI/CD variable. Returns the updated variable object.","write_action":true,"price_micros":0,"input_schema":null}],"scan":{"score":83,"grade":"B","scanned_at":"2026-09-20T11:36:00.305Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-20T11:36:00.245Z","components":{"code":{"score":25,"max":25,"notes":["14 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":6,"max":15,"notes":["static API keys via environment variables"]},"maintenance":{"score":15,"max":15,"notes":["last push 0 days ago"]},"identity":{"score":8,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year"]}},"findings":[],"inputs":{"packages":[{"registryType":"pypi","identifier":"mcp-gitlab","version":"0.9.7","found":true,"weeklyDownloads":933,"license":"MIT","dependencyCount":5,"publishedAt":"2026-09-20T06:25:13.068118Z","repositoryUrl":"https://github.com/vish288/mcp-gitlab"}],"repo":{"found":true,"owner":"vish288","repo":"mcp-gitlab","archived":false,"pushedAt":"2026-09-20T07:21:46Z","stars":6,"forks":3,"openIssues":12,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/7909473?v=4","ownerCreatedAt":"2014-06-17T05:44:31Z","license":"MIT"},"icon":{"url":"https://avatars.githubusercontent.com/u/7909473?v=4&s=128","source":"github"},"presence":{"stars":6,"forks":3,"downloadsWeek":933,"license":"MIT","lastPushAt":"2026-09-20T07:21:46.000Z","score":38}}}},"grade_history":[],"reviews":[]}