GitLab Automation via Rube MCP
Automate GitLab operations including project management, issue tracking, merge request workflows, CI/CD pipeline monitoring, branch management, and user administration through Composio's GitLab toolkit.
Toolkit docs: composio.dev/toolkits/gitlab
Prerequisites
- •Rube MCP must be connected (RUBE_SEARCH_TOOLS available)
- •Active GitLab connection via
RUBE_MANAGE_CONNECTIONSwith toolkitgitlab - •Always call
RUBE_SEARCH_TOOLSfirst to get current tool schemas
Setup
Get Rube MCP: Add https://rube.app/mcp as an MCP server in your client configuration. No API keys needed — just add the endpoint and it works.
- •Verify Rube MCP is available by confirming
RUBE_SEARCH_TOOLSresponds - •Call
RUBE_MANAGE_CONNECTIONSwith toolkitgitlab - •If connection is not ACTIVE, follow the returned auth link to complete GitLab OAuth
- •Confirm connection status shows ACTIVE before running any workflows
Core Workflows
1. Manage Issues
When to use: User wants to create, update, list, or search issues in a GitLab project
Tool sequence:
- •
GITLAB_GET_PROJECTS- Find the target project and get its ID [Prerequisite] - •
GITLAB_LIST_PROJECT_ISSUES- List and filter issues for a project [Required] - •
GITLAB_CREATE_PROJECT_ISSUE- Create a new issue [Required for create] - •
GITLAB_UPDATE_PROJECT_ISSUE- Update an existing issue (title, labels, state, assignees) [Required for update] - •
GITLAB_LIST_PROJECT_USERS- Find user IDs for assignment [Optional]
Key parameters:
- •
id: Project ID (integer) or URL-encoded path (e.g.,"my-group/my-project") - •
title: Issue title (required for creation) - •
description: Issue body text (max 1,048,576 characters) - •
labels: Comma-separated label names (e.g.,"bug,critical") - •
add_labels/remove_labels: Add or remove labels without replacing all - •
state: Filter by"all","opened", or"closed" - •
state_event:"close"or"reopen"to change issue state - •
assignee_ids: Array of user IDs; use[0]to unassign all - •
issue_iid: Internal issue ID within the project (required for updates) - •
milestone: Filter by milestone title - •
search: Search in title and description - •
scope:"created_by_me","assigned_to_me", or"all" - •
page/per_page: Pagination (default per_page: 20)
Pitfalls:
- •
idaccepts either integer project ID or URL-encoded path; wrong IDs yield 4xx errors - •
issue_iidis the project-internal ID (shown as #42), different from the global issue ID - •Labels in
labelsfield replace ALL existing labels; useadd_labels/remove_labelsfor incremental changes - •Setting
assignee_idsto empty array does NOT unassign; use[0]instead - •
updated_atfield requires administrator or project/group owner rights
2. Manage Merge Requests
When to use: User wants to list, filter, or review merge requests in a project
Tool sequence:
- •
GITLAB_GET_PROJECT- Get project details and verify access [Prerequisite] - •
GITLAB_GET_PROJECT_MERGE_REQUESTS- List and filter merge requests [Required] - •
GITLAB_GET_REPOSITORY_BRANCHES- Verify source/target branches [Optional] - •
GITLAB_LIST_ALL_PROJECT_MEMBERS- Find reviewers/assignees [Optional]
Key parameters:
- •
id: Project ID or URL-encoded path - •
state:"opened","closed","locked","merged", or"all" - •
scope:"created_by_me"(default),"assigned_to_me", or"all" - •
source_branch/target_branch: Filter by branch names - •
author_id/author_username: Filter by MR author - •
assignee_id: Filter by assignee (useNonefor unassigned,Anyfor assigned) - •
reviewer_id/reviewer_username: Filter by reviewer - •
labels: Comma-separated label filter - •
search: Search in title and description - •
wip:"yes"for draft MRs,"no"for non-draft - •
order_by:"created_at"(default),"title","merged_at","updated_at" - •
view:"simple"for minimal fields - •
iids[]: Filter by specific MR internal IDs
Pitfalls:
- •Default
scopeis"created_by_me"which limits results; use"all"for complete listings - •
author_idandauthor_usernameare mutually exclusive - •
reviewer_idandreviewer_usernameare mutually exclusive - •
approvedfilter requires themr_approved_filterfeature flag (disabled by default) - •Large MR histories can be noisy; use filters and moderate
per_pagevalues
3. Manage Projects and Repositories
When to use: User wants to list projects, create new projects, or manage branches
Tool sequence:
- •
GITLAB_GET_PROJECTS- List all accessible projects with filters [Required] - •
GITLAB_GET_PROJECT- Get detailed info for a specific project [Optional] - •
GITLAB_LIST_USER_PROJECTS- List projects owned by a specific user [Optional] - •
GITLAB_CREATE_PROJECT- Create a new project [Required for create] - •
GITLAB_GET_REPOSITORY_BRANCHES- List branches in a project [Require