Available Tools

35 tools for working with GitLab. Your AI assistant uses these automatically when you ask questions.

What Can I Ask?

Questions About Work
"What issues are assigned to me?"
"Show me open merge requests"
"What's the discussion on issue #42?"
CI/CD & Code
"Is the pipeline passing?"
"Show me failed jobs"
"What changed in the latest commit?"
Actions
"Create a new issue"
"Make a feature branch and fix the bug"
"Open a merge request"

Tool Reference

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',…morequery
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…moreproject_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…moreproject_path, mr_iid
gitlab_create_issueCreate a new issue. Supports labels, assignees, milestone, weight, due date, and confidential flag.project_path, title
gitlab_update_issueUpdate an existing issue: title, description, state, labels, assignees, milestone, weight, due date. Only provide fields to change. To close: state_event='close'. To reopen:…moreproject_path, issue_iid
gitlab_add_issue_notePost 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_notePost 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_noteEdit 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_noteEdit 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_requestCreate 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_requestUpdate an existing MR: title, description, state, labels, assignees, reviewers, milestone, target branch. Only provide fields to change. To close: state_event='close'. To reopen:…moreproject_path, mr_iid
gitlab_merge_merge_requestMerge 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…moreproject_path, file_path, branch, content, commit_message
gitlab_delete_fileDelete a file from a GitLab repository. Commits directly to the specified branch.project_path, file_path, branch, commit_message
gitlab_create_branchCreate 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…moreproject_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…moreproject_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_fileUpload 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…moreproject_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_projectFork 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…moreproject_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…moreproject_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.