4d8482979987324af39d0a070942e53a9dd6ed06source_git · drboria/md-gitlab-mcp · current release
Observed 2026-08-25T12:22:41.328Z using mcpSecurity-inventory. Status: succeeded. Negotiated protocol: 2025-06-18.
{
"tools": {}
}| Tool | Category | Annotations | Risk |
|---|---|---|---|
add_issue_commentAdd a comment to an existing issueInput schema{
"type": "object",
"properties": {
"owner": {
"type": "string",
"description": "Project namespace/path (e.g. 'pro/portal/frontends') or numeric Project ID"
},
"repo": {
"type": "string",
"description": "Project path/name (e.g. 'pro-portal-onboarding-and-retention')"
},
"issueIid": {
"type": "number",
"description": "The IID of the issue to comment on"
},
"body": {
"type": "string",
"description": "The comment body text"
}
},
"required": [
"owner",
"repo",
"issueIid",
"body"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
} | — | — · — | — |
create_branchCreate a new branch in a GitLab repositoryInput schema{
"type": "object",
"properties": {
"owner": {
"type": "string",
"description": "Project namespace/path (e.g. 'pro/portal/frontends') or numeric Project ID"
},
"repo": {
"type": "string",
"description": "Project path/name (e.g. 'pro-portal-onboarding-and-retention')"
},
"branch": {
"type": "string",
"description": "Name for the new branch"
},
"fromBranch": {
"type": "string",
"description": "Optional: source branch to create from (defaults to the repository's default branch)"
}
},
"required": [
"owner",
"repo",
"branch"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
} | — | — · — | — |
create_issueCreate a new issue in a GitLab repositoryInput schema{
"type": "object",
"properties": {
"owner": {
"type": "string",
"description": "Project namespace/path (e.g. 'pro/portal/frontends') or numeric Project ID"
},
"repo": {
"type": "string",
"description": "Project path/name (e.g. 'pro-portal-onboarding-and-retention')"
},
"title": {
"type": "string",
"description": "Issue title"
},
"body": {
"type": "string",
"description": "Issue description/body"
},
"assignees": {
"type": "array",
"items": {
"type": "string"
},
"description": "Array of usernames to assign"
},
"milestone": {
"type": "string",
"description": "Milestone ID or title"
},
"labels": {
"type": "array",
"items": {
"type": "string"
},
"description": "Array of label names"
}
},
"required": [
"owner",
"repo",
"title"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
} | — | — · — | — |
create_merge_requestCreate a new merge request in a GitLab repositoryInput schema{
"type": "object",
"properties": {
"owner": {
"type": "string",
"description": "Project namespace/path (e.g. 'pro/portal/frontends') or numeric Project ID"
},
"repo": {
"type": "string",
"description": "Project path/name (e.g. 'pro-portal-onboarding-and-retention')"
},
"title": {
"type": "string",
"description": "Merge request title"
},
"body": {
"type": "string",
"description": "Merge request body/description"
},
"head": {
"type": "string",
"description": "The name of the source branch where your changes are implemented"
},
"base": {
"type": "string",
"description": "The name of the target branch you want the changes pulled into"
},
"draft": {
"type": "boolean",
"description": "Whether to create the merge request as a draft"
}
},
"required": [
"owner",
"repo",
"title",
"head",
"base"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
} | — | — · — | — |
create_merge_request_reviewCreate a review/approval on a merge requestInput schema{
"type": "object",
"properties": {
"owner": {
"type": "string",
"description": "Project namespace/path (e.g. 'pro/portal/frontends') or numeric Project ID"
},
"repo": {
"type": "string",
"description": "Project path/name (e.g. 'pro-portal-onboarding-and-retention')"
},
"mergeRequestIid": {
"type": "number",
"description": "The IID of the merge request"
},
"body": {
"type": "string",
"description": "The body text of the review or comment"
},
"event": {
"type": "string",
"description": "The review action to perform (e.g. APPROVE, COMMENT)"
}
},
"required": [
"owner",
"repo",
"mergeRequestIid",
"body",
"event"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
} | — | — · — | — |
create_repositoryCreate a new GitLab project in your namespaceInput schema{
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Repository name"
},
"description": {
"type": "string",
"description": "Repository description"
},
"isPrivate": {
"type": "boolean",
"description": "Whether the repository should be private"
},
"autoInit": {
"type": "boolean",
"description": "Initialize with README.md"
}
},
"required": [
"name"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
} | — | — · — | — |
fork_repositoryFork a GitLab project to your account or specified namespaceInput schema{
"type": "object",
"properties": {
"owner": {
"type": "string",
"description": "Project namespace/path (e.g. 'pro/portal/frontends') or numeric Project ID"
},
"repo": {
"type": "string",
"description": "Project path/name (e.g. 'pro-portal-onboarding-and-retention')"
},
"organization": {
"type": "string",
"description": "Optional: organization to fork to (defaults to your personal account)"
}
},
"required": [
"owner",
"repo"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
} | — | — · — | — |
get_file_contentsGet the contents of a file or directory from a GitLab repositoryInput schema{
"type": "object",
"properties": {
"owner": {
"type": "string",
"description": "Project namespace/path (e.g. 'pro/portal/frontends') or numeric Project ID"
},
"repo": {
"type": "string",
"description": "Project path/name (e.g. 'pro-portal-onboarding-and-retention')"
},
"path": {
"type": "string",
"description": "Path to the file or directory"
},
"branch": {
"type": "string",
"description": "Branch to get contents from"
}
},
"required": [
"owner",
"repo",
"path"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
} | — | — · — | — |
get_issueGet details of a specific issue in a GitLab repositoryInput schema{
"type": "object",
"properties": {
"owner": {
"type": "string",
"description": "Project namespace/path (e.g. 'pro/portal/frontends') or numeric Project ID"
},
"repo": {
"type": "string",
"description": "Project path/name (e.g. 'pro-portal-onboarding-and-retention')"
},
"issueIid": {
"type": "number",
"description": "The IID of the issue to retrieve"
}
},
"required": [
"owner",
"repo",
"issueIid"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
} | — | — · — | — |
get_merge_requestGet details of a specific merge requestInput schema{
"type": "object",
"properties": {
"owner": {
"type": "string",
"description": "Project namespace/path (e.g. 'pro/portal/frontends') or numeric Project ID"
},
"repo": {
"type": "string",
"description": "Project path/name (e.g. 'pro-portal-onboarding-and-retention')"
},
"mergeRequestIid": {
"type": "number",
"description": "The IID of the merge request to retrieve"
}
},
"required": [
"owner",
"repo",
"mergeRequestIid"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
} | — | — · — | — |
get_merge_request_by_urlFetch merge request details using a full URLInput schema{
"type": "object",
"properties": {
"url": {
"type": "string",
"description": "Full GitLab Merge Request URL (e.g. 'https://gitlab.com/owner/repo/-/merge_requests/123'). Use this if you have the URL."
}
},
"required": [
"url"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
} | — | — · — | — |
get_merge_request_commentsGet the review comments/notes on a merge requestInput schema{
"type": "object",
"properties": {
"owner": {
"type": "string",
"description": "Project namespace/path (e.g. 'pro/portal/frontends') or numeric Project ID"
},
"repo": {
"type": "string",
"description": "Project path/name (e.g. 'pro-portal-onboarding-and-retention')"
},
"mergeRequestIid": {
"type": "number",
"description": "The IID of the merge request"
}
},
"required": [
"owner",
"repo",
"mergeRequestIid"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
} | — | — · — | — |
get_merge_request_comments_by_urlFetch merge request comments using a full URLInput schema{
"type": "object",
"properties": {
"url": {
"type": "string",
"description": "Full GitLab Merge Request URL (e.g. 'https://gitlab.com/owner/repo/-/merge_requests/123'). Use this to fetch comments if you have the URL."
}
},
"required": [
"url"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
} | — | — · — | — |
get_merge_request_filesGet the list of files changed in a merge requestInput schema{
"type": "object",
"properties": {
"owner": {
"type": "string",
"description": "Project namespace/path (e.g. 'pro/portal/frontends') or numeric Project ID"
},
"repo": {
"type": "string",
"description": "Project path/name (e.g. 'pro-portal-onboarding-and-retention')"
},
"mergeRequestIid": {
"type": "number",
"description": "The IID of the merge request"
}
},
"required": [
"owner",
"repo",
"mergeRequestIid"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
} | — | — · — | — |
get_merge_request_reviewsGet the reviews/approvals on a merge requestInput schema{
"type": "object",
"properties": {
"owner": {
"type": "string",
"description": "Project namespace/path (e.g. 'pro/portal/frontends') or numeric Project ID"
},
"repo": {
"type": "string",
"description": "Project path/name (e.g. 'pro-portal-onboarding-and-retention')"
},
"mergeRequestIid": {
"type": "number",
"description": "The IID of the merge request"
}
},
"required": [
"owner",
"repo",
"mergeRequestIid"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
} | — | — · — | — |
get_merge_request_statusGet the combined status of all status checks (pipelines) for a merge requestInput schema{
"type": "object",
"properties": {
"owner": {
"type": "string",
"description": "Project namespace/path (e.g. 'pro/portal/frontends') or numeric Project ID"
},
"repo": {
"type": "string",
"description": "Project path/name (e.g. 'pro-portal-onboarding-and-retention')"
},
"mergeRequestIid": {
"type": "number",
"description": "The IID of the merge request"
}
},
"required": [
"owner",
"repo",
"mergeRequestIid"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
} | — | — · — | — |
list_commitsGet list of commits of a branch in a GitLab repositoryInput schema{
"type": "object",
"properties": {
"owner": {
"type": "string",
"description": "Project namespace/path (e.g. 'pro/portal/frontends') or numeric Project ID"
},
"repo": {
"type": "string",
"description": "Project path/name (e.g. 'pro-portal-onboarding-and-retention')"
},
"sha": {
"type": "string",
"description": "Branch name or commit SHA"
},
"page": {
"type": "number",
"description": "Page number for pagination"
},
"perPage": {
"type": "number",
"description": "Number of results per page"
}
},
"required": [
"owner",
"repo"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
} | — | — · — | — |
list_issuesList issues in a GitLab repository with filtering optionsInput schema{
"type": "object",
"properties": {
"owner": {
"type": "string",
"description": "Project namespace/path (e.g. 'pro/portal/frontends') or numeric Project ID"
},
"repo": {
"type": "string",
"description": "Project path/name (e.g. 'pro-portal-onboarding-and-retention')"
},
"state": {
"type": "string",
"description": "State of issues to return (e.g., opened, closed, all)"
},
"labels": {
"type": "array",
"items": {
"type": "string"
},
"description": "Filter by labels"
},
"page": {
"type": "number",
"description": "Page number of the results"
},
"perPage": {
"type": "number",
"description": "Results per page"
}
},
"required": [
"owner",
"repo"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
} | — | — · — | — |
list_merge_requestsList and filter repository merge requestsInput schema{
"type": "object",
"properties": {
"owner": {
"type": "string",
"description": "Project namespace/path (e.g. 'pro/portal/frontends') or numeric Project ID"
},
"repo": {
"type": "string",
"description": "Project path/name (e.g. 'pro-portal-onboarding-and-retention')"
},
"state": {
"type": "string",
"description": "State of merge requests (e.g., opened, closed, merged, all)"
},
"page": {
"type": "number",
"description": "Page number"
},
"perPage": {
"type": "number",
"description": "Results per page"
}
},
"required": [
"owner",
"repo"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
} | — | — · — | — |
merge_merge_requestMerge a merge requestInput schema{
"type": "object",
"properties": {
"owner": {
"type": "string",
"description": "Project namespace/path (e.g. 'pro/portal/frontends') or numeric Project ID"
},
"repo": {
"type": "string",
"description": "Project path/name (e.g. 'pro-portal-onboarding-and-retention')"
},
"mergeRequestIid": {
"type": "number",
"description": "The IID of the merge request to merge"
},
"commitMessage": {
"type": "string",
"description": "Optional detail to append to the automatic commit message"
}
},
"required": [
"owner",
"repo",
"mergeRequestIid"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
} | — | — · — | — |
push_filesPush multiple files to a GitLab repository in a single commitInput schema{
"type": "object",
"properties": {
"owner": {
"type": "string",
"description": "Project namespace/path (e.g. 'pro/portal/frontends') or numeric Project ID"
},
"repo": {
"type": "string",
"description": "Project path/name (e.g. 'pro-portal-onboarding-and-retention')"
},
"branch": {
"type": "string",
"description": "Branch to push to (e.g., 'main' or 'master')"
},
"files": {
"type": "array",
"items": {
"type": "object",
"properties": {
"file_path": {
"type": "string",
"description": "Path of the file to create or update"
},
"content": {
"type": "string",
"description": "Content of the file"
}
},
"required": [
"file_path",
"content"
],
"additionalProperties": false
},
"description": "Array of files to push"
},
"message": {
"type": "string",
"description": "Commit message"
}
},
"required": [
"owner",
"repo",
"branch",
"files",
"message"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
} | — | — · — | — |
search_codeSearch for code across GitLab repositoriesInput schema{
"type": "object",
"properties": {
"q": {
"type": "string",
"description": "Search query (see GitLab code search syntax)"
},
"page": {
"type": "number",
"description": "Page number"
},
"perPage": {
"type": "number",
"description": "Results per page"
}
},
"required": [
"q"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
} | — | — · — | — |
search_issuesSearch for issues and merge requests across GitLab repositoriesInput schema{
"type": "object",
"properties": {
"q": {
"type": "string",
"description": "Search query for issues/merge requests"
},
"page": {
"type": "number",
"description": "Page number"
},
"perPage": {
"type": "number",
"description": "Results per page"
}
},
"required": [
"q"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
} | — | — · — | — |
search_repositoriesSearch for GitLab projectsInput schema{
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Search query (see GitLab search syntax)"
},
"page": {
"type": "number",
"description": "Page number for pagination (default: 1)"
},
"perPage": {
"type": "number",
"description": "Number of results per page (default: 30, max: 100)"
}
},
"required": [
"query"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
} | — | — · — | — |
search_usersSearch for users on GitLabInput schema{
"type": "object",
"properties": {
"q": {
"type": "string",
"description": "Search query for users"
},
"page": {
"type": "number",
"description": "Page number"
},
"perPage": {
"type": "number",
"description": "Results per page"
}
},
"required": [
"q"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
} | — | — · — | — |
update_issueUpdate an existing issue in a GitLab repositoryInput schema{
"type": "object",
"properties": {
"owner": {
"type": "string",
"description": "Project namespace/path (e.g. 'pro/portal/frontends') or numeric Project ID"
},
"repo": {
"type": "string",
"description": "Project path/name (e.g. 'pro-portal-onboarding-and-retention')"
},
"issueIid": {
"type": "number",
"description": "The IID (Internal ID) of the issue"
},
"title": {
"type": "string",
"description": "New title for the issue"
},
"body": {
"type": "string",
"description": "New description/body for the issue"
},
"state": {
"type": "string",
"description": "State to update the issue to (opened or closed)"
},
"labels": {
"type": "array",
"items": {
"type": "string"
},
"description": "Array of labels to set"
}
},
"required": [
"owner",
"repo",
"issueIid"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
} | — | — · — | — |
update_merge_request_branchUpdate a merge request branch with the latest changes from the target branch (rebase)Input schema{
"type": "object",
"properties": {
"owner": {
"type": "string",
"description": "Project namespace/path (e.g. 'pro/portal/frontends') or numeric Project ID"
},
"repo": {
"type": "string",
"description": "Project path/name (e.g. 'pro-portal-onboarding-and-retention')"
},
"mergeRequestIid": {
"type": "number",
"description": "The IID of the merge request"
}
},
"required": [
"owner",
"repo",
"mergeRequestIid"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
} | — | — · — | — |