35 tools for working with GitLab. Your AI assistant uses these automatically when you ask questions.
| Tool | What It Does | Key Parameters |
|---|---|---|
Issues & Merge Requests (16) | ||
| gitlab_search read-only | Search across GitLab resource types: issues, merge requests, projects, code blobs, wikis, commits, milestones, snippet titles, notes, and users. Scopes: 'issues',…more | query |
| gitlab_list_issues read-only | List issues with filtering by state, labels, assignee, author, milestone, or full-text search. Omit project_path for global search across all projects. Labels support '-' prefix…more | — |
| gitlab_get_issue read-only | Get full issue details: description, labels, assignees, milestone, due date, and comment thread. Returns mixed TextContent + ImageContent blocks — images are inlined…more | project_path, issue_iid |
| gitlab_list_merge_requests read-only | List merge requests with filtering by state, reviewer, author, assignee, labels, milestone, or full-text search. Omit project_path for global search. Use reviewer_username='me'…more | — |
| gitlab_get_merge_request read-only | Get full MR details: description, state, reviewers, approvals, branches, merge status. Returns mixed TextContent + ImageContent blocks — images inlined automatically. Includes…more | project_path, mr_iid |
| gitlab_create_issue | Create a new issue. Supports labels, assignees, milestone, weight, due date, and confidential flag. | project_path, title |
| gitlab_update_issue | Update an existing issue: title, description, state, labels, assignees, milestone, weight, due date. Only provide fields to change. To close: state_event='close'. To reopen:…more | project_path, issue_iid |
| gitlab_add_issue_note | Post a comment on a GitLab issue. Use internal=True for project-member-only comments. To attach a file, use upload_file first, then embed the returned markdown in body. | project_path, issue_iid, body |
| gitlab_add_merge_request_note | Post a comment on a GitLab merge request. Use internal=True for project-member-only comments. To attach a file, use upload_file first, then embed the returned markdown in body. | project_path, mr_iid, body |
| gitlab_update_issue_note | Edit an existing issue comment. Requires project_path, issue_iid, note_id, and new body. | project_path, issue_iid, note_id, body |
| gitlab_update_merge_request_note | Edit an existing MR comment. Requires project_path, mr_iid, note_id, and new body. | project_path, mr_iid, note_id, body |
| gitlab_delete_issue_note destructive | Permanently delete an issue comment. Requires project_path, issue_iid, and note_id. | project_path, issue_iid, note_id |
| gitlab_delete_merge_request_note destructive | Permanently delete an MR comment. Requires project_path, mr_iid, and note_id. | project_path, mr_iid, note_id |
| gitlab_create_merge_request | Create a new merge request. Source branch must already exist. Supports labels, assignees, reviewers, milestone, and remove_source_branch. | project_path, source_branch, target_branch, title |
| gitlab_update_merge_request | Update an existing MR: title, description, state, labels, assignees, reviewers, milestone, target branch. Only provide fields to change. To close: state_event='close'. To reopen:…more | project_path, mr_iid |
| gitlab_merge_merge_request | Merge an existing MR. MR must be mergeable (CI passing, no conflicts). Set squash=True to squash all commits into one. | project_path, mr_iid |
Code & Branches (13) | ||
| gitlab_list_pipelines read-only | List CI/CD pipelines. Filter by branch (ref), status, or source (push, merge_request_event, web, pipeline, schedules, triggers). | project_path |
| gitlab_get_pipeline_jobs read-only | Get job details for a pipeline: status, stage, duration, failure reasons. Set include_logs=True for last 10000 chars of job output. Filter by job status with the status parameter. | project_path, pipeline_id |
| gitlab_create_or_update_file idempotent | Create or update a single file. Commits directly to the specified branch. Use only for small, targeted changes. For bulk operations, use get_project_access_token for local git…more | project_path, file_path, branch, content, commit_message |
| gitlab_delete_file | Delete a file from a GitLab repository. Commits directly to the specified branch. | project_path, file_path, branch, commit_message |
| gitlab_create_branch | Create a new branch from an existing branch, tag, or commit SHA. Call this before pushing local changes, since project access tokens are Developer-level and cannot push to…more | project_path, branch, ref |
| gitlab_delete_branch destructive | Delete a branch. Cannot delete protected branches. | project_path, branch_name |
| gitlab_get_file_contents read-only | Read file content from a GitLab repository. Returns decoded content with line number prefixes in the format `{line_num}: {content}`. Use offset (1-indexed, default 1) and limit…more | project_path, file_path, ref |
| gitlab_list_projects read-only | List projects accessible to the current user. Filter by visibility, ownership, starred, membership, or full-text search. Sort by 'last_activity_at', 'repository_size',…more | — |
| gitlab_get_project read-only | Get full project details: description, visibility, default branch, topics, URLs, star/fork counts. | project_path |
| gitlab_list_commits read-only | List commits for a branch or ref. Filter by path (file history), author, date range, or message search. | project_path |
| gitlab_list_branches read-only | List branches in a GitLab project. Filter by name search. | project_path |
| gitlab_list_directory read-only | List directory contents in a GitLab repository. Returns files and subdirectories. Use path='' for repository root. Requires project_path, path, and ref. | project_path, path, ref |
| gitlab_upload_file | Upload a file to a GitLab project for embedding in Markdown. Returns a reusable upload_token and curl command. Run the curl command to upload, then reuse the same upload_token for…more | project_path |
Projects & Repositories (6) | ||
| gitlab_create_project sensitive | Create a new project or import from an external Git URL. Creates a Developer-level project access token for git operations when possible. operations after creation, use the…more | — |
| gitlab_fork_project | Fork a project to the current user's namespace or a specified group. Use the name parameter to rename the fork and avoid conflicts. | project_path |
| gitlab_update_project idempotent | Update project settings: name, description, visibility, topics, default branch, archive state. Only provide fields to change. topics replaces all existing. Set archived=True/False…more | project_path |
| gitlab_get_project_access_token read-only sensitive | Get a project-scoped access token for git clone/push. Reuses existing token if available, otherwise creates a new one. Developer-level with read_repository + write_repository…more | project_path |
| gitlab_get_namespace read-only | Get namespace details: ID, name, path, kind, member/project count. Accepts path or numeric ID. Useful for finding namespace_id for create_project. | namespace_path |
| gitlab_whoami read-only | Get current authenticated user info: id, name, username, email. | — |