Snippets
Snippets are pieces of code or text kept outside a repository. Personal snippets belong to the user: list, read, create, update and delete them, read their content or one file of it, list every snippet of the instance (an administrator’s), and browse the public ones. Project snippets are the snippet.project_* actions. Threaded discussions and notes on a project snippet, and award emoji on a snippet and on its notes, are actions of this group too.
Sample questions
Section titled “Sample questions”- “List my snippets”
- “Create a snippet with this script”
- “Show the discussions on snippet 10 of project 42”
How to call it
Section titled “How to call it”- Dynamic, the default surface: call
gitlab_execute_actionwithactionset to the action’s ID, such assnippet.content, and its parameters inparams.gitlab_find_actionfinds an ID from a description of the task. - Meta (
GITLAB_MCP_TOOL_SURFACE=meta): callgitlab_snippetwithactionset to the action’s name, such ascontent, and its parameters inparams. - Individual (
GITLAB_MCP_TOOL_SURFACE=individual): call the action’s own tool, such asgitlab_snippet_content, with its parameters as the arguments.
Availability
Section titled “Availability”Every tier serves the whole group, on self-managed instances and on GitLab.com alike.
Read-only actions: 17 of 34, the ones a deployment in read-only mode keeps.
Actions
Section titled “Actions”The description of each action, and of each of its parameters, is the text the server serves for it on the default surface, quoted as served. A destructive action runs only once confirmed, unless GITLAB_MCP_YOLO_MODE (or AUTOPILOT) skips that step: the dynamic surface needs confirm: true on gitlab_execute_action, and the other two take a confirm parameter or the client’s prompt (Destructive actions). A parameter followed by a tier in parentheses is served only from that tier on.
| Action | Individual |
|---|---|
snippet.content | gitlab_snippet_content |
snippet.create | gitlab_snippet_create |
snippet.delete | gitlab_snippet_delete |
snippet.discussion_add_note | gitlab_add_snippet_discussion_note |
snippet.discussion_create | gitlab_create_snippet_discussion |
snippet.discussion_delete_note | gitlab_delete_snippet_discussion_note |
snippet.discussion_get | gitlab_get_snippet_discussion |
snippet.discussion_list | gitlab_list_snippet_discussions |
snippet.discussion_update_note | gitlab_update_snippet_discussion_note |
snippet.emoji_snippet_create | gitlab_snippet_emoji_create |
snippet.emoji_snippet_delete | gitlab_snippet_emoji_delete |
snippet.emoji_snippet_get | gitlab_snippet_emoji_get |
snippet.emoji_snippet_list | gitlab_snippet_emoji_list |
snippet.emoji_snippet_note_create | gitlab_snippet_note_emoji_create |
snippet.emoji_snippet_note_delete | gitlab_snippet_note_emoji_delete |
snippet.emoji_snippet_note_get | gitlab_snippet_note_emoji_get |
snippet.emoji_snippet_note_list | gitlab_snippet_note_emoji_list |
snippet.explore | gitlab_snippet_explore |
snippet.file_content | gitlab_snippet_file_content |
snippet.get | gitlab_snippet_get |
snippet.list | gitlab_snippet_list |
snippet.list_all | gitlab_snippet_list_all |
snippet.note_create | gitlab_snippet_note_create |
snippet.note_delete | gitlab_snippet_note_delete |
snippet.note_get | gitlab_snippet_note_get |
snippet.note_list | gitlab_snippet_note_list |
snippet.note_update | gitlab_snippet_note_update |
snippet.project_content | gitlab_project_snippet_content |
snippet.project_create | gitlab_project_snippet_create |
snippet.project_delete | gitlab_project_snippet_delete |
snippet.project_get | gitlab_project_snippet_get |
snippet.project_list | gitlab_project_snippet_list |
snippet.project_update | gitlab_project_snippet_update |
snippet.update | gitlab_snippet_update |
snippet.content
Section titled “snippet.content”Read a personal snippet’s raw content. Returns: the snippet ID and raw text content. See also:
snippet.get,snippet.file_content.
- Meta-tool:
gitlab_snippet, actioncontent - Individual tool:
gitlab_snippet_content - Tier: Free
- Behavior: read-only, idempotent
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
snippet_id | integer | yes | Snippet ID |
snippet.create
Section titled “snippet.create”Create a personal snippet. Returns: the created snippet with ID, visibility, author, files, and web URL. See also:
snippet.get,snippet.update,snippet.list.
- Meta-tool:
gitlab_snippet, actioncreate - Individual tool:
gitlab_snippet_create - Tier: Free
- Behavior: writes, not idempotent
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
title | string | yes | Snippet title |
content | string | no | Snippet content (single-file, deprecated in favor of files) |
description | string | no | Snippet description |
file_name | string | no | File name (single-file snippet, deprecated in favor of files) |
files | object[] | no | Files to include in the snippet |
visibility | string (private, internal, public) | no | Visibility: private, internal, or public. Defaults to private when omitted |
Also needs at least one of: file_name and content; files.
snippet.delete
Section titled “snippet.delete”Delete a personal snippet permanently. Returns: a success confirmation. See also:
snippet.get,snippet.list.
- Meta-tool:
gitlab_snippet, actiondelete - Individual tool:
gitlab_snippet_delete - Tier: Free
- Behavior: writes, destructive (needs confirmation), idempotent
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
snippet_id | integer | yes | Snippet ID |
snippet.discussion_add_note
Section titled “snippet.discussion_add_note”Add a reply note to an existing snippet discussion thread. Returns: the created note (author, body, timestamps). See also:
snippet.discussion_create,snippet.discussion_get,snippet.discussion_update_note.
- Meta-tool:
gitlab_snippet, actiondiscussion_add_note - Individual tool:
gitlab_add_snippet_discussion_note - Tier: Free
- Behavior: writes, not idempotent
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
body | string | yes | Note body (Markdown supported) |
discussion_id | string | yes | Discussion ID to reply to |
project_id | string/integer | yes | Project ID or URL-encoded path |
snippet_id | integer | yes | Snippet ID |
created_at | string | no | Backdate the note creation time (ISO 8601, e.g. 2025-01-01T00:00:00Z). Requires admin or owner rights |
snippet.discussion_create
Section titled “snippet.discussion_create”Create a new discussion thread on a project snippet with an initial note. Returns: the created thread with its first note. See also:
snippet.discussion_add_note,snippet.discussion_list,snippet.note_create.
- Meta-tool:
gitlab_snippet, actiondiscussion_create - Individual tool:
gitlab_create_snippet_discussion - Tier: Free
- Behavior: writes, not idempotent
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
body | string | yes | Discussion body (Markdown supported) |
project_id | string/integer | yes | Project ID or URL-encoded path |
snippet_id | integer | yes | Snippet ID |
created_at | string | no | Backdate the discussion creation time (ISO 8601, e.g. 2025-01-01T00:00:00Z). Requires admin or owner rights |
snippet.discussion_delete_note
Section titled “snippet.discussion_delete_note”Delete a note from a snippet discussion thread (destructive). Returns: a deletion confirmation message. See also:
snippet.discussion_update_note,snippet.discussion_get,snippet.discussion_list.
- Meta-tool:
gitlab_snippet, actiondiscussion_delete_note - Individual tool:
gitlab_delete_snippet_discussion_note - Tier: Free
- Behavior: writes, destructive (needs confirmation), idempotent
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
discussion_id | string | yes | Discussion ID |
note_id | integer | yes | Note ID to delete |
project_id | string/integer | yes | Project ID or URL-encoded path |
snippet_id | integer | yes | Snippet ID |
snippet.discussion_get
Section titled “snippet.discussion_get”Get a single snippet discussion thread by its discussion id. Returns: the thread with every note (author, body, system flag, resolvable/resolved state). See also:
snippet.discussion_list,snippet.discussion_add_note,snippet.project_get.
- Meta-tool:
gitlab_snippet, actiondiscussion_get - Individual tool:
gitlab_get_snippet_discussion - Tier: Free
- Behavior: read-only, idempotent
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
discussion_id | string | yes | Discussion ID |
project_id | string/integer | yes | Project ID or URL-encoded path |
snippet_id | integer | yes | Snippet ID |
snippet.discussion_list
Section titled “snippet.discussion_list”List discussion threads on a project snippet with ordering and keyset pagination. Returns: discussion threads with their notes (author, body, system flag, resolvable state) and pagination metadata. See also:
snippet.discussion_get,snippet.discussion_create,snippet.project_get,snippet.note_list.
- Meta-tool:
gitlab_snippet, actiondiscussion_list - Individual tool:
gitlab_list_snippet_discussions - Tier: Free
- Behavior: read-only, idempotent
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
project_id | string/integer | yes | Project ID or URL-encoded path |
snippet_id | integer | yes | Snippet ID |
order_by | string | no | Column to order keyset-paginated results by (e.g. created_at, updated_at) |
page | integer | no | Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. |
page_token | string | no | Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination=‘keyset’. |
pagination | string | no | Pagination method: ‘keyset’ for keyset-based pagination on large ordered result sets, or ‘offset’ (the default). Keyset avoids deep-offset cost. |
per_page | integer | no | Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. |
sort | string (asc, desc) | no | Sort direction (asc or desc) |
snippet.discussion_update_note
Section titled “snippet.discussion_update_note”Update the body of a note in a snippet discussion thread. Returns: the updated note. See also:
snippet.discussion_add_note,snippet.discussion_delete_note,snippet.discussion_get.
- Meta-tool:
gitlab_snippet, actiondiscussion_update_note - Individual tool:
gitlab_update_snippet_discussion_note - Tier: Free
- Behavior: writes, idempotent
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
body | string | yes | Updated note body |
discussion_id | string | yes | Discussion ID |
note_id | integer | yes | Note ID to update |
project_id | string/integer | yes | Project ID or URL-encoded path |
snippet_id | integer | yes | Snippet ID |
created_at | string | no | Override the note creation time (ISO 8601, e.g. 2025-01-01T00:00:00Z). Requires admin or owner rights |
snippet.emoji_snippet_create
Section titled “snippet.emoji_snippet_create”Add an emoji reaction to a project snippet. Returns: the created award with its emoji name, awarding user object, timestamps, and awardable id/type. See also:
snippet.emoji_snippet_list,snippet.emoji_snippet_delete.
- Meta-tool:
gitlab_snippet, actionemoji_snippet_create - Individual tool:
gitlab_snippet_emoji_create - Tier: Free
- Behavior: writes, not idempotent
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
name | string | yes | Emoji name without colons (e.g. thumbsup) |
project_id | string/integer | yes | Project ID or URL-encoded path |
snippet_id | integer | yes | Snippet ID |
snippet.emoji_snippet_delete
Section titled “snippet.emoji_snippet_delete”Remove an emoji reaction from a project snippet by award id. Returns: a success confirmation naming the award emoji. See also:
snippet.emoji_snippet_list,snippet.emoji_snippet_get.
- Meta-tool:
gitlab_snippet, actionemoji_snippet_delete - Individual tool:
gitlab_snippet_emoji_delete - Tier: Free
- Behavior: writes, destructive (needs confirmation), idempotent
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
award_id | integer | yes | Award emoji ID |
project_id | string/integer | yes | Project ID or URL-encoded path |
snippet_id | integer | yes | Snippet ID |
snippet.emoji_snippet_get
Section titled “snippet.emoji_snippet_get”Get a single emoji reaction on a project snippet by award id. Returns: the award with its emoji name, awarding user object, timestamps, and awardable id/type. See also:
snippet.emoji_snippet_list,snippet.emoji_snippet_delete.
- Meta-tool:
gitlab_snippet, actionemoji_snippet_get - Individual tool:
gitlab_snippet_emoji_get - Tier: Free
- Behavior: read-only, idempotent
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
award_id | integer | yes | Award emoji ID |
project_id | string/integer | yes | Project ID or URL-encoded path |
snippet_id | integer | yes | Snippet ID |
snippet.emoji_snippet_list
Section titled “snippet.emoji_snippet_list”List all emoji reactions on a project snippet. Returns: each award with its emoji name, the awarding user object, awardable id/type, and pagination metadata. See also:
snippet.emoji_snippet_get,snippet.emoji_snippet_create,snippet.project_get.
- Meta-tool:
gitlab_snippet, actionemoji_snippet_list - Individual tool:
gitlab_snippet_emoji_list - Tier: Free
- Behavior: read-only, idempotent
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
project_id | string/integer | yes | Project ID or URL-encoded path |
snippet_id | integer | yes | Snippet ID |
order_by | string | no | Column to order results by (e.g. created_at, updated_at, id). Used with keyset pagination. |
page | integer | no | Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. |
page_token | string | no | Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination=‘keyset’. |
pagination | string | no | Pagination method: ‘keyset’ for keyset-based pagination on large ordered result sets, or ‘offset’ (the default). Keyset avoids deep-offset cost. |
per_page | integer | no | Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. |
sort | string (asc, desc) | no | Sort order: ‘asc’ or ‘desc’. |
snippet.emoji_snippet_note_create
Section titled “snippet.emoji_snippet_note_create”Add an emoji reaction to a project snippet note. Returns: the created award with its emoji name, awarding user object, timestamps, and awardable id/type. See also:
snippet.emoji_snippet_note_list,snippet.emoji_snippet_note_delete.
- Meta-tool:
gitlab_snippet, actionemoji_snippet_note_create - Individual tool:
gitlab_snippet_note_emoji_create - Tier: Free
- Behavior: writes, not idempotent
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
name | string | yes | Emoji name without colons (e.g. thumbsup) |
note_id | integer | yes | Note ID |
project_id | string/integer | yes | Project ID or URL-encoded path |
snippet_id | integer | yes | Snippet ID |
snippet.emoji_snippet_note_delete
Section titled “snippet.emoji_snippet_note_delete”Remove an emoji reaction from a project snippet note by award id. Returns: a success confirmation naming the award emoji. See also:
snippet.emoji_snippet_note_list,snippet.emoji_snippet_note_get.
- Meta-tool:
gitlab_snippet, actionemoji_snippet_note_delete - Individual tool:
gitlab_snippet_note_emoji_delete - Tier: Free
- Behavior: writes, destructive (needs confirmation), idempotent
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
award_id | integer | yes | Award emoji ID |
note_id | integer | yes | Note ID |
project_id | string/integer | yes | Project ID or URL-encoded path |
snippet_id | integer | yes | Snippet ID |
snippet.emoji_snippet_note_get
Section titled “snippet.emoji_snippet_note_get”Get a single emoji reaction on a project snippet note by award id. Returns: the award with its emoji name, awarding user object, timestamps, and awardable id/type. See also:
snippet.emoji_snippet_note_list,snippet.emoji_snippet_note_delete.
- Meta-tool:
gitlab_snippet, actionemoji_snippet_note_get - Individual tool:
gitlab_snippet_note_emoji_get - Tier: Free
- Behavior: read-only, idempotent
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
award_id | integer | yes | Award emoji ID |
note_id | integer | yes | Note ID |
project_id | string/integer | yes | Project ID or URL-encoded path |
snippet_id | integer | yes | Snippet ID |
snippet.emoji_snippet_note_list
Section titled “snippet.emoji_snippet_note_list”List all emoji reactions on a project snippet note (comment). Returns: each award with its emoji name, the awarding user object, awardable id/type, and pagination metadata. See also:
snippet.emoji_snippet_note_get,snippet.emoji_snippet_note_create,snippet.note_get.
- Meta-tool:
gitlab_snippet, actionemoji_snippet_note_list - Individual tool:
gitlab_snippet_note_emoji_list - Tier: Free
- Behavior: read-only, idempotent
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
note_id | integer | yes | Note ID |
project_id | string/integer | yes | Project ID or URL-encoded path |
snippet_id | integer | yes | Snippet ID |
order_by | string | no | Column to order results by (e.g. created_at, updated_at, id). Used with keyset pagination. |
page | integer | no | Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. |
page_token | string | no | Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination=‘keyset’. |
pagination | string | no | Pagination method: ‘keyset’ for keyset-based pagination on large ordered result sets, or ‘offset’ (the default). Keyset avoids deep-offset cost. |
per_page | integer | no | Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. |
sort | string (asc, desc) | no | Sort order: ‘asc’ or ‘desc’. |
snippet.explore
Section titled “snippet.explore”List public snippets across the instance. Returns: public snippets with author, visibility, and pagination metadata. See also:
snippet.list,snippet.get.
- Meta-tool:
gitlab_snippet, actionexplore - Individual tool:
gitlab_snippet_explore - Tier: Free
- Behavior: read-only, idempotent
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
order_by | string | no | Column to order results by for keyset pagination (e.g. id, created_at, updated_at) |
page | integer | no | Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. |
page_token | string | no | Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination=‘keyset’. |
pagination | string | no | Pagination method: ‘keyset’ for keyset-based pagination on large ordered result sets, or ‘offset’ (the default). Keyset avoids deep-offset cost. |
per_page | integer | no | Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. |
sort | string (asc, desc) | no | Sort direction (asc, desc) |
snippet.file_content
Section titled “snippet.file_content”Read one file from a multi-file personal snippet at a ref. Returns: the snippet ID, ref, file name, and raw content. See also:
snippet.content,snippet.get.
- Meta-tool:
gitlab_snippet, actionfile_content - Individual tool:
gitlab_snippet_file_content - Tier: Free
- Behavior: read-only, idempotent
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
file_name | string | yes | File name to retrieve |
ref | string | yes | Git ref (branch, tag, or commit SHA) |
snippet_id | integer | yes | Snippet ID |
snippet.get
Section titled “snippet.get”Get a single personal snippet by ID. Returns: snippet metadata, visibility, author, files, and web URL. See also:
snippet.list,snippet.content,snippet.update,snippet.delete.
- Meta-tool:
gitlab_snippet, actionget - Individual tool:
gitlab_snippet_get - Tier: Free
- Behavior: read-only, idempotent
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
snippet_id | integer | yes | Snippet ID |
snippet.list
Section titled “snippet.list”List snippets owned by the authenticated user. Returns: snippets with title, visibility, author, files, and pagination metadata. See also:
snippet.get,snippet.create,snippet.explore.
- Meta-tool:
gitlab_snippet, actionlist - Individual tool:
gitlab_snippet_list - Tier: Free
- Behavior: read-only, idempotent
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
order_by | string | no | Column to order results by for keyset pagination (e.g. id, created_at, updated_at) |
page | integer | no | Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. |
page_token | string | no | Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination=‘keyset’. |
pagination | string | no | Pagination method: ‘keyset’ for keyset-based pagination on large ordered result sets, or ‘offset’ (the default). Keyset avoids deep-offset cost. |
per_page | integer | no | Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. |
sort | string (asc, desc) | no | Sort direction (asc, desc) |
snippet.list_all
Section titled “snippet.list_all”List all snippets on the instance (admin). Returns: snippets with author, visibility, repository storage, and pagination metadata. See also:
snippet.list,snippet.explore,snippet.get.
- Meta-tool:
gitlab_snippet, actionlist_all - Individual tool:
gitlab_snippet_list_all - Tier: Free
- Behavior: read-only, idempotent
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
created_after | string | no | Filter snippets created after (ISO 8601) |
created_before | string | no | Filter snippets created before (ISO 8601) |
order_by | string | no | Column to order results by for keyset pagination (e.g. id, created_at, updated_at) |
page | integer | no | Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. |
page_token | string | no | Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination=‘keyset’. |
pagination | string | no | Pagination method: ‘keyset’ for keyset-based pagination on large ordered result sets, or ‘offset’ (the default). Keyset avoids deep-offset cost. |
per_page | integer | no | Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. |
repository_storage (Premium) | string | no | Filter by repository storage name (admin only) |
sort | string (asc, desc) | no | Sort direction (asc, desc) |
snippet.note_create
Section titled “snippet.note_create”Add a comment (note) to a project snippet. Returns: the created note with id, author, body, and timestamps. See also:
snippet.note_list,snippet.note_get,snippet.project_get.
- Meta-tool:
gitlab_snippet, actionnote_create - Individual tool:
gitlab_snippet_note_create - Tier: Free
- Behavior: writes, not idempotent
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
body | string | yes | Note body (Markdown supported) |
project_id | string/integer | yes | Project ID or URL-encoded path |
snippet_id | integer | yes | Snippet ID |
created_at | string | no | Backdate the note to this RFC 3339 timestamp (e.g. 2026-01-15T10:00:00Z). Requires administrator or project/group owner permissions. Ignored otherwise. |
snippet.note_delete
Section titled “snippet.note_delete”Delete a snippet note permanently. Returns: a success confirmation naming the note, snippet, and project. See also:
snippet.note_get,snippet.note_list.
- Meta-tool:
gitlab_snippet, actionnote_delete - Individual tool:
gitlab_snippet_note_delete - Tier: Free
- Behavior: writes, destructive (needs confirmation), idempotent
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
note_id | integer | yes | ID of the note to delete |
project_id | string/integer | yes | Project ID or URL-encoded path |
snippet_id | integer | yes | Snippet ID |
snippet.note_get
Section titled “snippet.note_get”Get a single snippet note by its ID. Returns: the note with author, body, timestamps, and position. See also:
snippet.note_list,snippet.note_update,snippet.note_delete.
- Meta-tool:
gitlab_snippet, actionnote_get - Individual tool:
gitlab_snippet_note_get - Tier: Free
- Behavior: read-only, idempotent
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
note_id | integer | yes | ID of the note to retrieve |
project_id | string/integer | yes | Project ID or URL-encoded path |
snippet_id | integer | yes | Snippet ID |
snippet.note_list
Section titled “snippet.note_list”List all notes (comments) on a project snippet. Returns: notes with author, body, system flag, and pagination metadata. See also:
snippet.note_get,snippet.note_create,snippet.project_get.
- Meta-tool:
gitlab_snippet, actionnote_list - Individual tool:
gitlab_snippet_note_list - Tier: Free
- Behavior: read-only, idempotent
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
project_id | string/integer | yes | Project ID or URL-encoded path |
snippet_id | integer | yes | Snippet ID |
order_by | string (created_at, updated_at) | no | Order by field (created_at, updated_at) |
page | integer | no | Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. |
page_token | string | no | Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination=‘keyset’. |
pagination | string | no | Pagination method: ‘keyset’ for keyset-based pagination on large ordered result sets, or ‘offset’ (the default). Keyset avoids deep-offset cost. |
per_page | integer | no | Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. |
sort | string (asc, desc) | no | Sort direction (asc, desc) |
snippet.note_update
Section titled “snippet.note_update”Update a snippet note’s body. Returns: the updated note with new body and updated_at timestamp. See also:
snippet.note_get,snippet.note_list,snippet.note_delete.
- Meta-tool:
gitlab_snippet, actionnote_update - Individual tool:
gitlab_snippet_note_update - Tier: Free
- Behavior: writes, idempotent
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
body | string | yes | Updated note body (Markdown supported) |
note_id | integer | yes | ID of the note to update |
project_id | string/integer | yes | Project ID or URL-encoded path |
snippet_id | integer | yes | Snippet ID |
snippet.project_content
Section titled “snippet.project_content”Read a project snippet’s raw content. Returns: the snippet ID and raw text content. See also:
snippet.project_get,snippet.project_list.
- Meta-tool:
gitlab_snippet, actionproject_content - Individual tool:
gitlab_project_snippet_content - Tier: Free
- Behavior: read-only, idempotent
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
project_id | string/integer | yes | Project ID or path |
snippet_id | integer | yes | Snippet ID |
snippet.project_create
Section titled “snippet.project_create”Create a project snippet. Returns: the created snippet with ID, visibility, author, files, and web URL. See also:
snippet.project_get,snippet.project_update,snippet.project_list.
- Meta-tool:
gitlab_snippet, actionproject_create - Individual tool:
gitlab_project_snippet_create - Tier: Free
- Behavior: writes, not idempotent
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
project_id | string | yes | Project ID or path |
title | string | yes | Snippet title |
content | string | no | Content (single-file, deprecated in favor of files) |
description | string | no | Snippet description |
file_name | string | no | File name (single-file, deprecated in favor of files) |
files | object[] | no | Files to include in the snippet |
visibility | string (private, internal, public) | no | Visibility: private, internal, or public. Defaults to private when omitted |
Also needs at least one of: file_name and content; files.
snippet.project_delete
Section titled “snippet.project_delete”Delete a project snippet permanently. Returns: a success confirmation. See also:
snippet.project_get,snippet.project_list.
- Meta-tool:
gitlab_snippet, actionproject_delete - Individual tool:
gitlab_project_snippet_delete - Tier: Free
- Behavior: writes, destructive (needs confirmation), idempotent
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
project_id | string/integer | yes | Project ID or path |
snippet_id | integer | yes | Snippet ID |
snippet.project_get
Section titled “snippet.project_get”Get a single project snippet. Returns: snippet metadata, visibility, author, files, and web URL. See also:
snippet.project_list,snippet.project_content,snippet.project_update,snippet.project_delete.
- Meta-tool:
gitlab_snippet, actionproject_get - Individual tool:
gitlab_project_snippet_get - Tier: Free
- Behavior: read-only, idempotent
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
project_id | string/integer | yes | Project ID or path |
snippet_id | integer | yes | Snippet ID |
snippet.project_list
Section titled “snippet.project_list”List a project’s snippets. Returns: snippets with title, visibility, author, files, and pagination metadata. See also:
snippet.project_get,snippet.project_create,snippet.list.
- Meta-tool:
gitlab_snippet, actionproject_list - Individual tool:
gitlab_project_snippet_list - Tier: Free
- Behavior: read-only, idempotent
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
project_id | string/integer | yes | Project ID or path |
order_by | string | no | Column to order results by for keyset pagination (e.g. id, created_at, updated_at) |
page | integer | no | Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. |
page_token | string | no | Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination=‘keyset’. |
pagination | string | no | Pagination method: ‘keyset’ for keyset-based pagination on large ordered result sets, or ‘offset’ (the default). Keyset avoids deep-offset cost. |
per_page | integer | no | Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. |
sort | string (asc, desc) | no | Sort direction (asc, desc) |
snippet.project_update
Section titled “snippet.project_update”Update a project snippet. Returns: the updated snippet with metadata, files, and web URL. See also:
snippet.project_get,snippet.project_delete,snippet.project_list.
- Meta-tool:
gitlab_snippet, actionproject_update - Individual tool:
gitlab_project_snippet_update - Tier: Free
- Behavior: writes, idempotent
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
project_id | string/integer | yes | Project ID or path |
snippet_id | integer | yes | Snippet ID |
content | string | no | New content (single-file, deprecated in favor of files) |
description | string | no | New description |
file_name | string | no | New file name (single-file, deprecated in favor of files) |
files | object[] | no | File operations to apply |
title | string | no | New title |
visibility | string (private, internal, public) | no | New visibility: private, internal, or public |
snippet.update
Section titled “snippet.update”Update a personal snippet. Returns: the updated snippet with metadata, files, and web URL. See also:
snippet.get,snippet.delete,snippet.list.
- Meta-tool:
gitlab_snippet, actionupdate - Individual tool:
gitlab_snippet_update - Tier: Free
- Behavior: writes, idempotent
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
snippet_id | integer | yes | Snippet ID |
content | string | no | New content (single-file, deprecated in favor of files) |
description | string | no | New description |
file_name | string | no | New file name (single-file, deprecated in favor of files) |
files | object[] | no | File operations to apply |
title | string | no | New title |
visibility | string (private, internal, public) | no | New visibility: private, internal, or public |