Ir al contenido

Archivos y commits del repositorio

Lo que contiene un repositorio: explorar su árbol, leer un archivo en bruto o con sus metadatos, su blame y su historial, y crear, actualizar o borrar uno; leer blobs; comparar dos referencias y encontrar su base de fusión; descargar un archivo comprimido; listar los colaboradores; generar o añadir un changelog.

Los commits: listarlos, leerlos y crearlos, leer el diff, las referencias, los merge requests y la firma de un commit, hacer cherry-pick y revert de uno, fijar y leer estados de commit, y comentar un commit o mantener una discusión en hilo sobre él. Los submódulos se pueden listar, leer por dentro y actualizar, y el Markdown se puede renderizar como lo renderiza GitLab.

  • “Muestra el árbol de archivos del proyecto 42”
  • “Obtén el contenido de README.md en main”
  • “Compara main y develop”
  • “¿Quién cambió por última vez la línea 120 de src/server.go?”
  • Dinámica, la superficie predeterminada: llama a gitlab_execute_action con action igual al ID de la acción, como repository.archive, y sus parámetros en params. gitlab_find_action encuentra un ID a partir de una descripción de la tarea.
  • Meta (GITLAB_MCP_TOOL_SURFACE=meta): llama a gitlab_repository con action igual al nombre de la acción, como archive, y sus parámetros en params.
  • Individual (GITLAB_MCP_TOOL_SURFACE=individual): llama a la herramienta propia de la acción, como gitlab_repository_archive, pasándole directamente sus parámetros.

Todos los niveles sirven el grupo completo, tanto en instancias autogestionadas como en GitLab.com.

Acciones de solo lectura: 27 de 41, las que conserva un despliegue en modo de solo lectura.

La descripción de cada acción, y la de cada uno de sus parámetros, es el texto que sirve el servidor para ella en la superficie predeterminada, citado tal cual; por eso está en inglés. Una acción destructiva solo se ejecuta una vez confirmada, salvo que GITLAB_MCP_YOLO_MODE (o AUTOPILOT) se salte ese paso: la superficie dinámica necesita confirm: true en gitlab_execute_action, y las otras dos aceptan un parámetro confirm o la pregunta del cliente (Acciones destructivas).

AcciónIndividual
repository.archivegitlab_repository_archive
repository.blobgitlab_repository_blob
repository.changelog_addgitlab_repository_changelog_add
repository.changelog_generategitlab_repository_changelog_generate
repository.commit_cherry_pickgitlab_commit_cherry_pick
repository.commit_comment_creategitlab_commit_comment_create
repository.commit_commentsgitlab_commit_comments
repository.commit_creategitlab_commit_create
repository.commit_diffgitlab_commit_diff
repository.commit_discussion_add_notegitlab_add_commit_discussion_note
repository.commit_discussion_creategitlab_create_commit_discussion
repository.commit_discussion_delete_notegitlab_delete_commit_discussion_note
repository.commit_discussion_getgitlab_get_commit_discussion
repository.commit_discussion_listgitlab_list_commit_discussions
repository.commit_discussion_update_notegitlab_update_commit_discussion_note
repository.commit_getgitlab_commit_get
repository.commit_listgitlab_commit_list
repository.commit_merge_requestsgitlab_commit_merge_requests
repository.commit_refsgitlab_commit_refs
repository.commit_revertgitlab_commit_revert
repository.commit_signaturegitlab_commit_signature
repository.commit_status_setgitlab_commit_status_set
repository.commit_statusesgitlab_commit_statuses
repository.comparegitlab_repository_compare
repository.contributorsgitlab_repository_contributors
repository.file_blamegitlab_file_blame
repository.file_creategitlab_file_create
repository.file_deletegitlab_file_delete
repository.file_getgitlab_file_get
repository.file_historygitlab_commit_list
repository.file_metadatagitlab_file_metadata
repository.file_rawgitlab_file_raw
repository.file_raw_metadatagitlab_file_raw_metadata
repository.file_updategitlab_file_update
repository.list_submodulesgitlab_list_repository_submodules
repository.markdown_rendergitlab_render_markdown
repository.merge_basegitlab_repository_merge_base
repository.raw_blobgitlab_repository_raw_blob
repository.read_submodule_filegitlab_read_repository_submodule_file
repository.treegitlab_repository_tree
repository.update_submodulegitlab_update_repository_submodule

Build the download URL for a repository archive. Returns: the project, ref/SHA, format, the subdirectory when one was asked for, and the archive download URL (binary content is not returned). See also: repository.tree, tag.list.

  • Meta-herramienta: gitlab_repository, acción archive
  • Herramienta individual: gitlab_repository_archive
  • Nivel: Free
  • Comportamiento: solo lectura, idempotente
ParámetroTipoRequeridoDescripción
project_idstring/integersíProject ID or URL-encoded path
formatstringnoArchive format: tar.gz, tar.bz2, tbz, tbz2, tb2, bz2, tar, zip (default: tar.gz)
pathstringnoSubdirectory path to archive (omit for entire repo)
shastringnoCommit SHA, branch, or tag to archive (default: default branch)

Get a git blob by SHA. Returns: blob SHA, byte size, decoded text content (or image data), and a content category (text/image/binary). See also: repository.raw_blob, repository.tree.

  • Meta-herramienta: gitlab_repository, acción blob
  • Herramienta individual: gitlab_repository_blob
  • Nivel: Free
  • Comportamiento: solo lectura, idempotente
ParámetroTipoRequeridoDescripción
project_idstring/integersíProject ID or URL-encoded path
shastringsíBlob SHA (from tree listing or commit diff)

Add changelog data to a changelog file by committing the generated entries. Returns: a success confirmation with the version. See also: repository.changelog_generate, release.create.

  • Meta-herramienta: gitlab_repository, acción changelog_add
  • Herramienta individual: gitlab_repository_changelog_add
  • Nivel: Free
  • Comportamiento: escribe, no idempotente
ParámetroTipoRequeridoDescripción
project_idstring/integersíProject ID or URL-encoded path
versionstringsíVersion string for the changelog
branchstringnoBranch to commit the changelog to (default: default branch)
config_filestringnoPath to the changelog config file in the project
datestringnoDate and time of the release as an RFC3339 timestamp (default: current time)
filestringnoPath to the changelog file (default: CHANGELOG.md)
fromstringnoStart of the range (commit SHA or tag)
messagestringnoCommit message for the changelog update
tostringnoEnd of the range (commit SHA or tag, default: HEAD)
trailerstringnoGit trailer to use for changelog generation (default: Changelog)

Generate changelog notes for a version range without committing. Returns: the rendered changelog notes (read-only preview). See also: repository.changelog_add, release.create.

  • Meta-herramienta: gitlab_repository, acción changelog_generate
  • Herramienta individual: gitlab_repository_changelog_generate
  • Nivel: Free
  • Comportamiento: solo lectura, idempotente
ParámetroTipoRequeridoDescripción
project_idstring/integersíProject ID or URL-encoded path
versionstringsíVersion string
config_filestringnoPath to the changelog config file
datestringnoDate and time of the release as an RFC3339 timestamp (default: current time)
fromstringnoStart of the range (commit SHA or tag)
tostringnoEnd of the range (commit SHA or tag, default: HEAD)
trailerstringnoGit trailer to use (default: Changelog)

Cherry-pick a commit onto a target branch, optionally as a dry run. Returns: the newly created commit (SHA, title, author, dates, web URL) or a conflict error. See also: repository.commit_get, branch.list, repository.commit_revert.

  • Meta-herramienta: gitlab_repository, acción commit_cherry_pick
  • Herramienta individual: gitlab_commit_cherry_pick
  • Nivel: Free
  • Comportamiento: escribe, no idempotente
ParámetroTipoRequeridoDescripción
branchstringsíTarget branch name
project_idstring/integersíProject ID or URL-encoded path
dry_runbooleannoIf true, does not create the commit but checks for conflicts
messagestringnoCustom commit message (defaults to original)
shastringnoCommit SHA to cherry-pick

Post a comment on a commit, optionally inline on a specific file path and line. Returns: the created comment with note text, author user object, and optional path/line/line_type. See also: repository.commit_comments, repository.commit_diff, repository.commit_get.

  • Meta-herramienta: gitlab_repository, acción commit_comment_create
  • Herramienta individual: gitlab_commit_comment_create
  • Nivel: Free
  • Comportamiento: escribe, no idempotente
ParámetroTipoRequeridoDescripción
notestringsíComment text
project_idstring/integersíProject ID or URL-encoded path
shastringsíCommit SHA
lineintegernoLine number to comment on
line_typestring (new, old)noLine type: new or old (default: new)
pathstringnoFile path to comment on (for inline comments)

List the comments on a commit. Returns: comment entries with note text, author user object, optional file path, line, and line type, plus pagination metadata. See also: repository.commit_comment_create, repository.commit_get, repository.commit_diff.

  • Meta-herramienta: gitlab_repository, acción commit_comments
  • Herramienta individual: gitlab_commit_comments
  • Nivel: Free
  • Comportamiento: solo lectura, idempotente
ParámetroTipoRequeridoDescripción
project_idstring/integersíProject ID or URL-encoded path
shastringsíCommit SHA
order_bystringnoFor keyset pagination, the column to order results by
pageintegernoPage number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward.
page_tokenstringnoKeyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination=‘keyset’.
paginationstringnoPagination method: ‘keyset’ for keyset-based pagination on large ordered result sets, or ‘offset’ (the default). Keyset avoids deep-offset cost.
per_pageintegernoItems per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large.
sortstring (asc, desc)noSort order for keyset pagination: ‘asc’ or ‘desc’

Create a commit with multiple file actions (create/update/delete/move/chmod) on a branch in one call. Returns: the created commit with SHA, title, author/committer, dates, parent IDs, stats, trailers, and web URL. See also: branch.list, repository.tree, repository.commit_get.

  • Meta-herramienta: gitlab_repository, acción commit_create
  • Herramienta individual: gitlab_commit_create
  • Nivel: Free
  • Comportamiento: escribe, no idempotente
ParámetroTipoRequeridoDescripción
actionsobject[]síList of file actions (create, update, delete, move, chmod)
branchstringsíTarget branch name
commit_messagestringsíCommit message
project_idstring/integersíProject ID or URL-encoded path
author_emailstringnoCustom author email
author_namestringnoCustom author name
forcebooleannoWhen true, force-overwrite the target branch even if a conflict exists
start_branchstringnoBranch to start from if target branch does not exist
start_projectstringnoProject ID or path of the source project to start the branch from (for cross-project commits)
start_shastringnoSHA to start from if target branch does not exist (alternative to start_branch)
statsbooleannoInclude commit stats (additions, deletions, total) in the response

Get the file diffs of a single commit, optionally in unified-diff format. Returns: per-file diffs (old/new path, diff body, new/renamed/deleted flags, file modes) with pagination metadata. See also: repository.commit_get, repository.file_history, repository.commit_comments.

  • Meta-herramienta: gitlab_repository, acción commit_diff
  • Herramienta individual: gitlab_commit_diff
  • Nivel: Free
  • Comportamiento: solo lectura, idempotente
ParámetroTipoRequeridoDescripción
project_idstring/integersíProject ID or URL-encoded path
shastringsíCommit SHA hash to get diffs for
order_bystringnoFor keyset pagination, the column to order results by
pageintegernoPage number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward.
page_tokenstringnoKeyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination=‘keyset’.
paginationstringnoPagination method: ‘keyset’ for keyset-based pagination on large ordered result sets, or ‘offset’ (the default). Keyset avoids deep-offset cost.
per_pageintegernoItems per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large.
sortstring (asc, desc)noSort order for keyset pagination: ‘asc’ or ‘desc’
unidiffbooleannoReturn diffs in unified diff format

Add a reply note to an existing commit discussion thread. Returns: the created note (author, body, timestamps, resolvable state). See also: repository.commit_discussion_create, repository.commit_discussion_get, repository.commit_discussion_update_note.

  • Meta-herramienta: gitlab_repository, acción commit_discussion_add_note
  • Herramienta individual: gitlab_add_commit_discussion_note
  • Nivel: Free
  • Comportamiento: escribe, no idempotente
ParámetroTipoRequeridoDescripción
bodystringsíNote body (Markdown supported)
commit_shastringsíCommit SHA
discussion_idstringsíDiscussion ID to reply to
project_idstring/integersíProject ID or URL-encoded path
created_atstringnoBackdate the note creation time (ISO 8601, e.g. 2025-01-01T00:00:00Z). Requires admin or owner rights

Create a new discussion thread on a commit, optionally as an inline diff comment. Returns: the created thread with its first note (author, body, resolvable state, diff position). See also: repository.commit_discussion_add_note, repository.commit_discussion_list, repository.commit_diff.

  • Meta-herramienta: gitlab_repository, acción commit_discussion_create
  • Herramienta individual: gitlab_create_commit_discussion
  • Nivel: Free
  • Comportamiento: escribe, no idempotente
ParámetroTipoRequeridoDescripción
bodystringsíDiscussion body (Markdown supported)
commit_shastringsíCommit SHA
project_idstring/integersíProject ID or URL-encoded path
created_atstringnoBackdate the discussion creation time (ISO 8601, e.g. 2025-01-01T00:00:00Z). Requires admin or owner rights
positionobjectnoPosition for inline diff comments

Delete a note from a commit discussion thread (destructive). Returns: a deletion confirmation message. See also: repository.commit_discussion_update_note, repository.commit_discussion_get, repository.commit_discussion_list.

  • Meta-herramienta: gitlab_repository, acción commit_discussion_delete_note
  • Herramienta individual: gitlab_delete_commit_discussion_note
  • Nivel: Free
  • Comportamiento: escribe, destructiva (necesita confirmación), idempotente
ParámetroTipoRequeridoDescripción
commit_shastringsíCommit SHA
discussion_idstringsíDiscussion ID
note_idintegersíNote ID to delete
project_idstring/integersíProject ID or URL-encoded path

Get a single commit discussion thread by its discussion id. Returns: the thread with every note (author, body, system flag, resolvable/resolved state, diff position). See also: repository.commit_discussion_list, repository.commit_discussion_add_note, repository.commit_get.

  • Meta-herramienta: gitlab_repository, acción commit_discussion_get
  • Herramienta individual: gitlab_get_commit_discussion
  • Nivel: Free
  • Comportamiento: solo lectura, idempotente
ParámetroTipoRequeridoDescripción
commit_shastringsíCommit SHA
discussion_idstringsíDiscussion ID
project_idstring/integersíProject ID or URL-encoded path

List discussion threads on a commit with ordering and keyset pagination. Returns: discussion threads with their notes (author, body, system flag, resolvable state, diff position) and pagination metadata. See also: repository.commit_discussion_get, repository.commit_discussion_create, repository.commit_get.

  • Meta-herramienta: gitlab_repository, acción commit_discussion_list
  • Herramienta individual: gitlab_list_commit_discussions
  • Nivel: Free
  • Comportamiento: solo lectura, idempotente
ParámetroTipoRequeridoDescripción
commit_shastringsíCommit SHA
project_idstring/integersíProject ID or URL-encoded path
order_bystringnoColumn to order keyset-paginated results by (e.g. created_at, updated_at)
pageintegernoPage number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward.
page_tokenstringnoKeyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination=‘keyset’.
paginationstringnoPagination method: ‘keyset’ for keyset-based pagination on large ordered result sets, or ‘offset’ (the default). Keyset avoids deep-offset cost.
per_pageintegernoItems per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large.
sortstring (asc, desc)noSort direction (asc or desc)

Update the body of a note in a commit discussion thread. Returns: the updated note (author, body, timestamps). See also: repository.commit_discussion_add_note, repository.commit_discussion_delete_note, repository.commit_discussion_get.

  • Meta-herramienta: gitlab_repository, acción commit_discussion_update_note
  • Herramienta individual: gitlab_update_commit_discussion_note
  • Nivel: Free
  • Comportamiento: escribe, idempotente
ParámetroTipoRequeridoDescripción
bodystringsíUpdated note body
commit_shastringsíCommit SHA
discussion_idstringsíDiscussion ID
note_idintegersíNote ID to update
project_idstring/integersíProject ID or URL-encoded path
created_atstringnoOverride the note creation time (ISO 8601, e.g. 2025-01-01T00:00:00Z). Requires admin or owner rights

Get a single commit from a project by SHA (full, short, branch, or tag). Returns: full commit metadata, message, parent IDs, author/committer, dates, stats, trailers, project ID, and last pipeline. See also: repository.file_history, repository.commit_diff, repository.commit_refs, repository.commit_statuses.

  • Meta-herramienta: gitlab_repository, acción commit_get
  • Herramienta individual: gitlab_commit_get
  • Nivel: Free
  • Comportamiento: solo lectura, idempotente
ParámetroTipoRequeridoDescripción
project_idstring/integersíProject ID or URL-encoded path
shastringsíCommit SHA hash to retrieve
statsbooleannoInclude commit stats (additions, deletions, total). Defaults to true on GitLab

List repository commits for a project, optionally filtered by ref_name, since/until, path, or author. Returns: commit summaries (SHA, title, author, dates, parent IDs, stats, trailers, last pipeline) with pagination metadata. See also: repository.commit_get, repository.commit_diff, repository.commit_statuses, branch.list.

  • Meta-herramienta: gitlab_repository, acción commit_list
  • Herramienta individual: gitlab_commit_list
  • Nivel: Free
  • Comportamiento: solo lectura, idempotente
ParámetroTipoRequeridoDescripción
project_idstring/integersíProject ID or URL-encoded path
allbooleannoRetrieve every commit from the whole repository (across all branches)
authorstringnoFilter by commit author name or email
first_parentbooleannoFollow only the first parent commit upon seeing a merge commit
order_bystringnoFor keyset pagination, the column to order results by
pageintegernoPage number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward.
page_tokenstringnoKeyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination=‘keyset’.
paginationstringnoPagination method: ‘keyset’ for keyset-based pagination on large ordered result sets, or ‘offset’ (the default). Keyset avoids deep-offset cost.
pathstringnoFile path to filter commits by (only commits touching this path)
per_pageintegernoItems per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large.
ref_namestringnoBranch name, tag, or commit SHA to list commits from (default: default branch)
sincestringnoReturn commits after this date (ISO 8601 format, e.g. 2025-01-01T00:00:00Z)
sortstring (asc, desc)noSort order for keyset pagination: ‘asc’ or ‘desc’
trailersbooleannoParse and include Git trailers for every commit
untilstringnoReturn commits before this date (ISO 8601 format, e.g. 2025-12-31T23:59:59Z)
with_statsbooleannoInclude commit stats (additions, deletions, total)

List merge requests associated with a commit. Returns: compact MR rows with IID, project, title, state, draft flag, source/target branches, merge commit SHA, labels, author, web URL, and created, updated, merged and closed times, with pagination metadata. See also: repository.commit_get, merge_request.get, mr_review.changes_get.

  • Meta-herramienta: gitlab_repository, acción commit_merge_requests
  • Herramienta individual: gitlab_commit_merge_requests
  • Nivel: Free
  • Comportamiento: solo lectura, idempotente
ParámetroTipoRequeridoDescripción
project_idstring/integersíProject ID or URL-encoded path
shastringsíCommit SHA
pageintegernoPage number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward.
per_pageintegernoItems per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large.

List branches and tags that reference (contain) a commit, optionally filtered by ref type. Returns: ref entries with type and name plus pagination metadata. See also: repository.commit_get, branch.list, tag.list.

  • Meta-herramienta: gitlab_repository, acción commit_refs
  • Herramienta individual: gitlab_commit_refs
  • Nivel: Free
  • Comportamiento: solo lectura, idempotente
ParámetroTipoRequeridoDescripción
project_idstring/integersíProject ID or URL-encoded path
shastringsíCommit SHA to look up
order_bystringnoFor keyset pagination, the column to order results by
pageintegernoPage number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward.
page_tokenstringnoKeyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination=‘keyset’.
paginationstringnoPagination method: ‘keyset’ for keyset-based pagination on large ordered result sets, or ‘offset’ (the default). Keyset avoids deep-offset cost.
per_pageintegernoItems per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large.
sortstring (asc, desc)noSort order for keyset pagination: ‘asc’ or ‘desc’
typestring (branch, tag, all)noFilter by ref type: branch, tag, or all (default: all)

Revert a commit on a target branch, creating a new commit that undoes it. Returns: the newly created revert commit (SHA, title, author, dates, web URL) or a conflict error. See also: repository.commit_get, branch.list, repository.commit_cherry_pick.

  • Meta-herramienta: gitlab_repository, acción commit_revert
  • Herramienta individual: gitlab_commit_revert
  • Nivel: Free
  • Comportamiento: escribe, no idempotente
ParámetroTipoRequeridoDescripción
branchstringsíTarget branch name
project_idstring/integersíProject ID or URL-encoded path
shastringnoCommit SHA to revert

Get the signature (GPG/X.509/SSH) of a commit for authenticity verification. Returns: the signing key ID, primary key ID, signer name/email, verification status, and optional subkey ID. See also: repository.commit_get, repository.file_history.

  • Meta-herramienta: gitlab_repository, acción commit_signature
  • Herramienta individual: gitlab_commit_signature
  • Nivel: Free
  • Comportamiento: solo lectura, idempotente
ParámetroTipoRequeridoDescripción
project_idstring/integersíProject ID or URL-encoded path
shastringsíCommit SHA

Set or update the pipeline status of a commit (used by external CI/reporting integrations). Returns: the resulting status with state, name, ref, coverage, pipeline ID, timestamps, and author user object. See also: repository.commit_statuses, repository.commit_get, pipeline.list.

  • Meta-herramienta: gitlab_repository, acción commit_status_set
  • Herramienta individual: gitlab_commit_status_set
  • Nivel: Free
  • Comportamiento: escribe, idempotente
ParámetroTipoRequeridoDescripción
project_idstring/integersíProject ID or URL-encoded path
shastringsíCommit SHA
statestring (pending, running, success, failed, canceled, skipped)síStatus state: pending, running, success, failed, canceled
contextstringnoStatus context label (overrides name)
coveragenumbernoCode coverage percentage
descriptionstringnoShort description of the status
namestringnoStatus name / context
pipeline_idintegernoPipeline ID to associate the status with
refstringnoBranch or tag name
target_urlstringnoURL to link from the status

List the statuses of a commit (CI jobs and external integrations), filtered by ref, stage, name, or pipeline. Returns: status entries with state, name, ref, coverage, pipeline ID, timestamps, and author user object, plus pagination metadata. See also: repository.commit_status_set, repository.commit_get, pipeline.list.

  • Meta-herramienta: gitlab_repository, acción commit_statuses
  • Herramienta individual: gitlab_commit_statuses
  • Nivel: Free
  • Comportamiento: solo lectura, idempotente
ParámetroTipoRequeridoDescripción
project_idstring/integersíProject ID or URL-encoded path
shastringsíCommit SHA
allbooleannoReturn all statuses including retries
namestringnoStatus name filter
order_bystringnoFor keyset pagination, the column to order results by
pageintegernoPage number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward.
page_tokenstringnoKeyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination=‘keyset’.
paginationstringnoPagination method: ‘keyset’ for keyset-based pagination on large ordered result sets, or ‘offset’ (the default). Keyset avoids deep-offset cost.
per_pageintegernoItems per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large.
pipeline_idintegernoPipeline ID filter
refstringnoBranch or tag name filter
sortstring (asc, desc)noSort order for keyset pagination: ‘asc’ or ‘desc’
stagestringnoStage name filter

Compare two refs (branches, tags, or commits) in a project. Use from_project_id for cross-project comparison. Returns: commits, diffs, and comparison metadata. See also: repository.tree, branch.list.

  • Meta-herramienta: gitlab_repository, acción compare
  • Herramienta individual: gitlab_repository_compare
  • Nivel: Free
  • Comportamiento: solo lectura, idempotente
ParámetroTipoRequeridoDescripción
fromstringsíBranch name, tag, or commit SHA to compare from
project_idstring/integersíProject ID or URL-encoded path
tostringsíBranch name, tag, or commit SHA to compare to
from_project_idintegernoSource project ID for cross-project comparison, minimum=1
straightbooleannoUse straight comparison (from..to) instead of merge-base (from…to)
unidiffbooleannoReturn diffs in unified diff format

List repository contributors. Returns: each contributor’s name, email, commit count, additions, deletions, and pagination metadata. See also: repository.tree, repository.file_history.

  • Meta-herramienta: gitlab_repository, acción contributors
  • Herramienta individual: gitlab_repository_contributors
  • Nivel: Free
  • Comportamiento: solo lectura, idempotente
ParámetroTipoRequeridoDescripción
project_idstring/integersíProject ID or URL-encoded path
order_bystring (name, email, commits)noOrder by: name, email, or commits (number of commits). Contributors are ordered by commit date when omitted
pageintegernoPage number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward.
page_tokenstringnoKeyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination=‘keyset’.
paginationstringnoPagination method: ‘keyset’ for keyset-based pagination on large ordered result sets, or ‘offset’ (the default). Keyset avoids deep-offset cost.
per_pageintegernoItems per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large.
sortstring (asc, desc)noSort direction: asc or desc (default: asc)

Get blame information for a file, optionally for a line range. Returns: file_path and blame ranges, each with commit id, message, author name/email, authored and committed dates, and the covered lines. See also: repository.file_get, repository.file_history.

  • Meta-herramienta: gitlab_repository, acción file_blame
  • Herramienta individual: gitlab_file_blame
  • Nivel: Free
  • Comportamiento: solo lectura, idempotente
ParámetroTipoRequeridoDescripción
file_pathstringsíURL-encoded full path of the file
project_idstring/integersíProject ID or URL-encoded path
range_endintegernoEnd line number for blame range
range_startintegernoStart line number for blame range
refstringnoBranch, tag, or commit SHA (defaults to default branch)

Create a new file in a repository in a single commit. Returns: file_path, branch, commit_id, and last_commit_id. See also: repository.file_update, repository.file_get, repository.file_delete.

  • Meta-herramienta: gitlab_repository, acción file_create
  • Herramienta individual: gitlab_file_create
  • Nivel: Free
  • Comportamiento: escribe, no idempotente
ParámetroTipoRequeridoDescripción
branchstringsíBranch to create the file on
commit_messagestringsíCommit message
contentstringsíFile content
file_pathstringsíURL-encoded full path of the new file
project_idstring/integersíProject ID or URL-encoded path
author_emailstringnoCommit author email
author_namestringnoCommit author name
encodingstring (text, base64)noContent encoding: text or base64 (default: text)
execute_filemodebooleannoEnable execute permission on the file
start_branchstringnoBranch to start from (creates new branch if different from branch)

Delete a file from a repository in a single commit. Returns: a success confirmation naming the file and project. See also: repository.file_get, repository.file_update.

  • Meta-herramienta: gitlab_repository, acción file_delete
  • Herramienta individual: gitlab_file_delete
  • Nivel: Free
  • Comportamiento: escribe, destructiva (necesita confirmación), idempotente
ParámetroTipoRequeridoDescripción
branchstringsíBranch to delete the file from
commit_messagestringsíCommit message
file_pathstringsíURL-encoded full path of the file to delete
project_idstring/integersíProject ID or URL-encoded path
author_emailstringnoCommit author email
author_namestringnoCommit author name
last_commit_idstringnoLast known commit ID for optimistic locking
start_branchstringnoBranch to start from

Get a single file’s decoded content and metadata from a repository. Returns: file_name, file_path, size, encoding, content, content_sha256, ref, blob_id, commit_id, last_commit_id, and execute_filemode. See also: repository.file_raw, repository.file_metadata, repository.file_blame, repository.tree.

  • Meta-herramienta: gitlab_repository, acción file_get
  • Herramienta individual: gitlab_file_get
  • Nivel: Free
  • Comportamiento: solo lectura, idempotente
ParámetroTipoRequeridoDescripción
file_pathstringsíURL-encoded full path of the file (e.g. src%2Fmain.go or src/main.go)
project_idstring/integersíProject ID or URL-encoded path
refstringnoBranch name, tag, or commit SHA (defaults to default branch)

List repository commits for a project, optionally filtered by ref_name, since/until, path, or author. Returns: commit summaries (SHA, title, author, dates, parent IDs, stats, trailers, last pipeline) with pagination metadata. See also: repository.commit_get, repository.commit_diff, repository.commit_statuses, branch.list.

  • Meta-herramienta: gitlab_repository, acción file_history
  • Herramienta individual: gitlab_commit_list
  • Nivel: Free
  • Comportamiento: solo lectura, idempotente
ParámetroTipoRequeridoDescripción
project_idstring/integersíProject ID or URL-encoded path
allbooleannoRetrieve every commit from the whole repository (across all branches)
authorstringnoFilter by commit author name or email
first_parentbooleannoFollow only the first parent commit upon seeing a merge commit
order_bystringnoFor keyset pagination, the column to order results by
pageintegernoPage number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward.
page_tokenstringnoKeyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination=‘keyset’.
paginationstringnoPagination method: ‘keyset’ for keyset-based pagination on large ordered result sets, or ‘offset’ (the default). Keyset avoids deep-offset cost.
pathstringnoFile path to filter commits by (only commits touching this path)
per_pageintegernoItems per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large.
ref_namestringnoBranch name, tag, or commit SHA to list commits from (default: default branch)
sincestringnoReturn commits after this date (ISO 8601 format, e.g. 2025-01-01T00:00:00Z)
sortstring (asc, desc)noSort order for keyset pagination: ‘asc’ or ‘desc’
trailersbooleannoParse and include Git trailers for every commit
untilstringnoReturn commits before this date (ISO 8601 format, e.g. 2025-12-31T23:59:59Z)
with_statsbooleannoInclude commit stats (additions, deletions, total)

Get a file’s metadata without content (HEAD request). Returns: file_name, file_path, size, encoding, ref, blob_id, commit_id, last_commit_id, execute_filemode, and content_sha256. See also: repository.file_get, repository.file_raw_metadata.

  • Meta-herramienta: gitlab_repository, acción file_metadata
  • Herramienta individual: gitlab_file_metadata
  • Nivel: Free
  • Comportamiento: solo lectura, idempotente
ParámetroTipoRequeridoDescripción
file_pathstringsíURL-encoded full path of the file
project_idstring/integersíProject ID or URL-encoded path
refstringnoBranch, tag, or commit SHA (defaults to default branch)

Get the raw content of a file from a repository. Returns: file_path, size, content, and content_category. See also: repository.file_get, repository.file_raw_metadata.

  • Meta-herramienta: gitlab_repository, acción file_raw
  • Herramienta individual: gitlab_file_raw
  • Nivel: Free
  • Comportamiento: solo lectura, idempotente
ParámetroTipoRequeridoDescripción
file_pathstringsíURL-encoded full path of the file
project_idstring/integersíProject ID or URL-encoded path
lfsbooleannoFetch the target of an LFS pointer instead of the pointer file itself
refstringnoBranch, tag, or commit SHA (defaults to default branch)

Get raw file metadata without content (HEAD request to the raw endpoint). Returns: file_name, file_path, size, encoding, ref, blob_id, commit_id, last_commit_id, execute_filemode, and content_sha256. See also: repository.file_raw, repository.file_metadata.

  • Meta-herramienta: gitlab_repository, acción file_raw_metadata
  • Herramienta individual: gitlab_file_raw_metadata
  • Nivel: Free
  • Comportamiento: solo lectura, idempotente
ParámetroTipoRequeridoDescripción
file_pathstringsíURL-encoded full path of the file
project_idstring/integersíProject ID or URL-encoded path
lfsbooleannoFetch the target of an LFS pointer instead of the pointer file itself
refstringnoBranch, tag, or commit SHA (defaults to default branch)

Update an existing file in a repository in a single commit. Returns: file_path, branch, commit_id, and last_commit_id. See also: repository.file_create, repository.file_get, repository.file_delete.

  • Meta-herramienta: gitlab_repository, acción file_update
  • Herramienta individual: gitlab_file_update
  • Nivel: Free
  • Comportamiento: escribe, idempotente
ParámetroTipoRequeridoDescripción
branchstringsíBranch to update the file on
commit_messagestringsíCommit message
contentstringsíNew file content
file_pathstringsíURL-encoded full path of the file to update
project_idstring/integersíProject ID or URL-encoded path
author_emailstringnoCommit author email
author_namestringnoCommit author name
encodingstring (text, base64)noContent encoding: text or base64 (default: text)
execute_filemodebooleannoEnable execute permission on the file
last_commit_idstringnoLast known commit ID for optimistic locking
start_branchstringnoBranch to start from

List the Git submodules defined in a repository’s .gitmodules. Returns: each submodule’s name, path, remote url, resolved_project, and pinned commit_sha, plus a count. See also: repository.read_submodule_file, repository.update_submodule, repository.tree.

  • Meta-herramienta: gitlab_repository, acción list_submodules
  • Herramienta individual: gitlab_list_repository_submodules
  • Nivel: Free
  • Comportamiento: solo lectura, idempotente
ParámetroTipoRequeridoDescripción
project_idstring/integersíProject ID or URL-encoded path
refstringnoBranch name, tag, or commit SHA (defaults to default branch)

Render arbitrary Markdown text to HTML using the GitLab Markdown API. Optionally apply GitLab Flavored Markdown and resolve references within a project’s context. Returns: the rendered HTML string. See also: repository.file_get, wiki.get.

  • Meta-herramienta: gitlab_repository, acción markdown_render
  • Herramienta individual: gitlab_render_markdown
  • Nivel: Free
  • Comportamiento: solo lectura, idempotente
ParámetroTipoRequeridoDescripción
textstringsíMarkdown text to render
gfmbooleannoUse GitLab Flavored Markdown (default false)
projectstringnoProject path for resolving references (e.g. group/project)

Find the common ancestor (merge base) of two or more refs. Returns: the merge-base commit with metadata and web URL. See also: repository.compare, branch.list.

  • Meta-herramienta: gitlab_repository, acción merge_base
  • Herramienta individual: gitlab_repository_merge_base
  • Nivel: Free
  • Comportamiento: solo lectura, idempotente
ParámetroTipoRequeridoDescripción
project_idstring/integersíProject ID or URL-encoded path
refsstring[]síTwo or more branch names, tags, or commit SHAs to find the merge base of

Get the raw content of a git blob by SHA. Returns: blob SHA, byte size, decoded text content (or image data), and a content category (text/image/binary). See also: repository.blob, repository.tree.

  • Meta-herramienta: gitlab_repository, acción raw_blob
  • Herramienta individual: gitlab_repository_raw_blob
  • Nivel: Free
  • Comportamiento: solo lectura, idempotente
ParámetroTipoRequeridoDescripción
project_idstring/integersíProject ID or URL-encoded path
shastringsíBlob SHA (from tree listing or commit diff)

Read a file from inside a submodule at the parent-pinned commit. Returns: file_name, file_path, submodule_path, resolved_project, commit_sha, size, decoded content, and encoding. See also: repository.list_submodules, repository.file_get, repository.update_submodule.

  • Meta-herramienta: gitlab_repository, acción read_submodule_file
  • Herramienta individual: gitlab_read_repository_submodule_file
  • Nivel: Free
  • Comportamiento: solo lectura, idempotente
ParámetroTipoRequeridoDescripción
file_pathstringsíPath of the file inside the submodule (e.g. src/main.c)
project_idstring/integersíProject ID or URL-encoded path of the parent repository
submodule_pathstringsíPath to the submodule as defined in .gitmodules (e.g. libs/core-module)
refstringnoBranch/tag/SHA in the parent repository (defaults to default branch)

List repository tree items. Returns: paths, object IDs, entry types (blob/tree/commit), modes, each entry’s last commit when with_last_commit is set, and pagination metadata. See also: repository.blob, repository.raw_blob, branch.list.

  • Meta-herramienta: gitlab_repository, acción tree
  • Herramienta individual: gitlab_repository_tree
  • Nivel: Free
  • Comportamiento: solo lectura, idempotente
ParámetroTipoRequeridoDescripción
project_idstring/integersíProject ID or URL-encoded path
order_bystringnoColumn to order keyset-paginated results by: ‘id’, ‘name’, ‘path’, or ‘type’ (only used with pagination=‘keyset’)
pageintegernoPage number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward.
page_tokenstringnoKeyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination=‘keyset’.
paginationstringnoPagination method: ‘keyset’ for keyset-based pagination on large ordered result sets, or ‘offset’ (the default). Keyset avoids deep-offset cost.
pathstringnoPath inside the repository to list (default: root)
per_pageintegernoItems per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large.
recursivebooleannoList files recursively through subdirectories. Cannot be combined with with_last_commit
refstringnoBranch name, tag, or commit SHA (default: default branch)
sortstring (asc, desc)noSort direction for keyset pagination: ‘asc’ or ‘desc’ (only used with pagination=‘keyset’)
with_last_commitbooleannoInclude, as last_commit, the most recent commit that changed each entry (GitLab 19.3 or later, and an older instance ignores it). Cannot be combined with recursive

Update a submodule pointer to a new commit SHA on a branch. Returns: the created commit with id, short_id, title, author and committer details, dates, parent_ids, message, status, project_id, trailers, last_pipeline, and web_url. See also: repository.list_submodules, repository.read_submodule_file, repository.commit_get.

  • Meta-herramienta: gitlab_repository, acción update_submodule
  • Herramienta individual: gitlab_update_repository_submodule
  • Nivel: Free
  • Comportamiento: escribe, idempotente
ParámetroTipoRequeridoDescripción
branchstringsíBranch name to commit the update to
commit_shastringsíFull commit SHA to update the submodule to
project_idstring/integersíProject ID or URL-encoded path
submodulestringsíURL-encoded full path to the submodule
commit_messagestringnoCustom commit message (optional)