gitlab_add_mr_inline_commentCreates a review thread on a specific diff line (file + new_line or old_line). Requires write permissions.Input schema{
"type": "object",
"properties": {
"project_id": {
"type": "string",
"description": "Numeric ID or group/repo path on GitLab."
},
"repo_path": {
"type": "string",
"description": "Absolute local clone path; resolves project and MR from current branch."
},
"merge_request_iid": {
"type": "integer",
"exclusiveMinimum": 0,
"description": "Merge request IID. Omit with repo_path to resolve from current branch."
},
"body": {
"type": "string",
"minLength": 1,
"description": "Comment text."
},
"file_path": {
"type": "string",
"description": "File path in the diff (e.g. src/app.ts)."
},
"new_line": {
"type": "integer",
"exclusiveMinimum": 0,
"description": "Line in the new file (additions/changes)."
},
"old_line": {
"type": "integer",
"exclusiveMinimum": 0,
"description": "Line in the old file (deletions)."
},
"old_path": {
"type": "string",
"description": "Old path if the file was renamed; default=file_path."
},
"new_path": {
"type": "string",
"description": "New path if the file was renamed; default=file_path."
}
},
"required": [
"body",
"file_path"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Annotations{
"readOnlyHint": false,
"destructiveHint": false,
"openWorldHint": true
} | — | WritesNon-destructiveOpen world | — |
gitlab_compareDiff between two refs (branches, tags, or SHAs). Returns commits and file diffs.Input schema{
"type": "object",
"properties": {
"project_id": {
"type": "string",
"description": "Numeric ID or group/repo path on GitLab."
},
"repo_path": {
"type": "string",
"description": "Absolute local clone path; resolves project and MR from current branch."
},
"from": {
"type": "string",
"description": "Source ref (branch, tag, or SHA)."
},
"to": {
"type": "string",
"description": "Target ref (branch, tag, or SHA)."
},
"straight": {
"type": "boolean",
"default": false,
"description": "When true, direct comparison without merge-base."
}
},
"required": [
"from",
"to"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Annotations{
"readOnlyHint": true,
"destructiveHint": false,
"openWorldHint": true
} | — | Read onlyNon-destructiveOpen world | — |
gitlab_control_pipelineLists jobs, plays manual jobs, retries job/pipeline, or cancels pipeline.Input schema{
"type": "object",
"properties": {
"project_id": {
"type": "string",
"description": "Numeric ID or group/repo path on GitLab."
},
"repo_path": {
"type": "string",
"description": "Absolute local clone path; resolves project and MR from current branch."
},
"action": {
"type": "string",
"enum": [
"list_jobs",
"play",
"retry_job",
"retry_pipeline",
"cancel_pipeline"
]
},
"pipeline_id": {
"type": "integer",
"exclusiveMinimum": 0
},
"job_id": {
"type": "integer",
"exclusiveMinimum": 0
},
"merge_request_iid": {
"type": "integer",
"exclusiveMinimum": 0,
"description": "Merge request IID. Omit with repo_path to resolve from current branch."
}
},
"required": [
"action"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Annotations{
"readOnlyHint": false,
"destructiveHint": false,
"openWorldHint": true
} | — | WritesNon-destructiveOpen world | — |
gitlab_get_fileReturns file content at a ref (branch, tag, or commit SHA). Useful for .gitlab-ci.yml or configs without a local clone.Input schema{
"type": "object",
"properties": {
"project_id": {
"type": "string",
"description": "Numeric ID or group/repo path on GitLab."
},
"repo_path": {
"type": "string",
"description": "Absolute local clone path; resolves project and MR from current branch."
},
"file_path": {
"type": "string",
"description": "File path in the repo (e.g. .gitlab-ci.yml, src/main.ts)."
},
"ref": {
"type": "string",
"description": "Branch, tag, or SHA. Default: project default_branch."
},
"max_chars": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 500000,
"default": 100000
}
},
"required": [
"file_path"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Annotations{
"readOnlyHint": true,
"destructiveHint": false,
"openWorldHint": true
} | — | Read onlyNon-destructiveOpen world | — |
gitlab_get_job_traceReturns the trace (full or truncated log) for a job by job_id.Input schema{
"type": "object",
"properties": {
"project_id": {
"type": "string",
"description": "Numeric ID or group/repo path on GitLab."
},
"repo_path": {
"type": "string",
"description": "Absolute local clone path; resolves project and MR from current branch."
},
"job_id": {
"type": "integer",
"exclusiveMinimum": 0,
"description": "Job ID (not to be confused with pipeline_id)."
},
"max_chars": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 500000,
"default": 48000
}
},
"required": [
"job_id"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Annotations{
"readOnlyHint": true,
"destructiveHint": false,
"openWorldHint": true
} | — | Read onlyNon-destructiveOpen world | — |
gitlab_get_merge_requestReturns MR metadata: title, state, branches, reviewers, labels, head pipeline, approvals, and URL.Input schema{
"type": "object",
"properties": {
"project_id": {
"type": "string",
"description": "Numeric ID or group/repo path on GitLab."
},
"repo_path": {
"type": "string",
"description": "Absolute local clone path; resolves project and MR from current branch."
},
"merge_request_iid": {
"type": "integer",
"exclusiveMinimum": 0,
"description": "Merge request IID. Omit with repo_path to resolve from current branch."
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Annotations{
"readOnlyHint": true,
"destructiveHint": false,
"openWorldHint": true
} | — | Read onlyNon-destructiveOpen world | — |
gitlab_get_mr_contextReturns MR changes/diff and optionally failed job traces and review discussions.Input schema{
"type": "object",
"properties": {
"project_id": {
"type": "string",
"description": "Numeric ID or group/repo path on GitLab."
},
"repo_path": {
"type": "string",
"description": "Absolute local clone path; resolves project and MR from current branch."
},
"merge_request_iid": {
"type": "integer",
"exclusiveMinimum": 0,
"description": "Merge request IID. Omit with repo_path to resolve from current branch."
},
"include_failed_jobs_trace": {
"type": "boolean",
"default": false,
"description": "When true, attaches logs from failed jobs on head_pipeline."
},
"include_discussions": {
"type": "boolean",
"default": false,
"description": "When true, includes discussion threads and inline comments."
},
"trace_max_chars": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 500000,
"default": 24000
},
"discussions_per_page": {
"type": "integer",
"minimum": 1,
"maximum": 50,
"default": 20
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Annotations{
"readOnlyHint": true,
"destructiveHint": false,
"openWorldHint": true
} | — | Read onlyNon-destructiveOpen world | — |
gitlab_get_mr_discussionsLists review threads, inline comments, and general MR notes.Input schema{
"type": "object",
"properties": {
"project_id": {
"type": "string",
"description": "Numeric ID or group/repo path on GitLab."
},
"repo_path": {
"type": "string",
"description": "Absolute local clone path; resolves project and MR from current branch."
},
"merge_request_iid": {
"type": "integer",
"exclusiveMinimum": 0,
"description": "Merge request IID. Omit with repo_path to resolve from current branch."
},
"per_page": {
"type": "integer",
"minimum": 1,
"maximum": 100,
"default": 20
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Annotations{
"readOnlyHint": true,
"destructiveHint": false,
"openWorldHint": true
} | — | Read onlyNon-destructiveOpen world | — |
gitlab_get_mr_merge_statusSummarizes whether the MR can be merged: conflicts, draft, pipeline, approvals, blocking discussions, and actionable blockers.Input schema{
"type": "object",
"properties": {
"project_id": {
"type": "string",
"description": "Numeric ID or group/repo path on GitLab."
},
"repo_path": {
"type": "string",
"description": "Absolute local clone path; resolves project and MR from current branch."
},
"merge_request_iid": {
"type": "integer",
"exclusiveMinimum": 0,
"description": "Merge request IID. Omit with repo_path to resolve from current branch."
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Annotations{
"readOnlyHint": true,
"destructiveHint": false,
"openWorldHint": true
} | — | Read onlyNon-destructiveOpen world | — |
gitlab_get_pipelineReturns pipeline state and job list with summary (name, stage, status, duration).Input schema{
"type": "object",
"properties": {
"project_id": {
"type": "string",
"description": "Numeric ID or group/repo path on GitLab."
},
"repo_path": {
"type": "string",
"description": "Absolute local clone path; resolves project and MR from current branch."
},
"pipeline_id": {
"type": "integer",
"exclusiveMinimum": 0
},
"merge_request_iid": {
"type": "integer",
"exclusiveMinimum": 0,
"description": "Merge request IID. Omit with repo_path to resolve from current branch."
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Annotations{
"readOnlyHint": true,
"destructiveHint": false,
"openWorldHint": true
} | — | Read onlyNon-destructiveOpen world | — |
gitlab_list_pipelinesLists recent project pipelines, filtering by ref (branch/tag), MR, or status.Input schema{
"type": "object",
"properties": {
"project_id": {
"type": "string",
"description": "Numeric ID or group/repo path on GitLab."
},
"repo_path": {
"type": "string",
"description": "Absolute local clone path; resolves project and MR from current branch."
},
"ref": {
"type": "string",
"description": "Branch ou tag (ex.: main, feature/foo)."
},
"merge_request_iid": {
"type": "integer",
"exclusiveMinimum": 0,
"description": "Merge request IID. Omit with repo_path to resolve from current branch."
},
"status": {
"type": "string",
"enum": [
"created",
"waiting_for_resource",
"preparing",
"pending",
"running",
"success",
"failed",
"canceled",
"skipped",
"manual",
"scheduled"
],
"description": "Filter by pipeline status."
},
"per_page": {
"type": "integer",
"minimum": 1,
"maximum": 100,
"default": 20
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Annotations{
"readOnlyHint": true,
"destructiveHint": false,
"openWorldHint": true
} | — | Read onlyNon-destructiveOpen world | — |
gitlab_manage_merge_requestsList, create, update, approve, merge, close, reopen, draft/ready, or comment on merge requests.Input schema{
"type": "object",
"properties": {
"project_id": {
"type": "string",
"description": "Numeric ID or group/repo path on GitLab."
},
"repo_path": {
"type": "string",
"description": "Absolute local clone path; resolves project and MR from current branch."
},
"action": {
"type": "string",
"enum": [
"list",
"get",
"create",
"update",
"approve",
"unapprove",
"comment",
"merge",
"close",
"reopen",
"mark_draft",
"mark_ready"
]
},
"merge_request_iid": {
"type": "integer",
"exclusiveMinimum": 0,
"description": "Merge request IID. Omit with repo_path to resolve from current branch."
},
"state": {
"type": "string",
"enum": [
"opened",
"closed",
"merged",
"all"
],
"description": "Filter for list action."
},
"source_branch": {
"type": "string",
"description": "Filter for list or branch for create."
},
"target_branch": {
"type": "string",
"description": "Target branch for create (default: project default_branch)."
},
"title": {
"type": "string",
"description": "Title (create/update)."
},
"description": {
"type": "string",
"description": "Description (create/update)."
},
"labels": {
"type": "string",
"description": "Comma-separated labels (create/update)."
},
"remove_source_branch": {
"type": "boolean",
"description": "Remove branch after merge (create/update/merge)."
},
"comment": {
"type": "string",
"description": "Comment body (comment action)."
},
"squash": {
"type": "boolean",
"description": "Squash commits when merging."
},
"merge_commit_message": {
"type": "string",
"description": "Merge commit message."
},
"squash_commit_message": {
"type": "string",
"description": "Squash commit message."
},
"merge_when_pipeline_succeeds": {
"type": "boolean",
"description": "Schedule merge when pipeline succeeds."
},
"sha": {
"type": "string",
"description": "Expected source branch SHA (GitLab merge validation)."
},
"list_per_page": {
"type": "integer",
"minimum": 1,
"maximum": 100,
"default": 20
}
},
"required": [
"action"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Annotations{
"readOnlyHint": false,
"destructiveHint": false,
"openWorldHint": true
} | — | WritesNon-destructiveOpen world | — |
gitlab_prepare_reviewCreates a worktree from local repo (repo_path) or shallow HTTPS clone with token. Runs npm ci or composer install by default.Input schema{
"type": "object",
"properties": {
"project_id": {
"type": "string",
"description": "Numeric ID or group/repo path on GitLab."
},
"repo_path": {
"type": "string",
"description": "Absolute local clone path; resolves project and MR from current branch."
},
"merge_request_iid": {
"type": "integer",
"exclusiveMinimum": 0,
"description": "Merge request IID. Omit with repo_path to resolve from current branch."
},
"install_command": {
"type": "string",
"description": "Shell command at worktree root (e.g. npm ci). Omit to auto-detect."
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Annotations{
"readOnlyHint": false,
"destructiveHint": false,
"openWorldHint": true
} | — | WritesNon-destructiveOpen world | — |
gitlab_resolve_contextDiscovers project_id, current branch, and merge_request_iid from repo_path. Use before other tools when working in a local clone.Input schema{
"type": "object",
"properties": {
"repo_path": {
"type": "string",
"description": "Absolute path to local clone."
}
},
"required": [
"repo_path"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Annotations{
"readOnlyHint": true,
"destructiveHint": false,
"openWorldHint": true
} | — | Read onlyNon-destructiveOpen world | — |
gitlab_search_projectsLists projects accessible by the token, with optional name or path filter.Input schema{
"type": "object",
"properties": {
"search": {
"type": "string",
"description": "Search term (name or path)."
},
"membership": {
"type": "boolean",
"default": true,
"description": "When true, only projects where the user is a member."
},
"per_page": {
"type": "integer",
"minimum": 1,
"maximum": 100,
"default": 20
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Annotations{
"readOnlyHint": true,
"destructiveHint": false,
"openWorldHint": true
} | — | Read onlyNon-destructiveOpen world | — |