Project wikis
A project’s wiki: list its pages, read one, create, update and delete one, and upload a file attachment that a page can reference. Group wikis are actions of Groups, served from Premium.
Sample questions
Section titled “Sample questions”- “List the wiki pages of project 42”
- “Show the Home wiki page”
- “Create a wiki page with the release checklist”
How to call it
Section titled “How to call it”- Dynamic, the default surface: call
gitlab_execute_actionwithactionset to the action’s ID, such aswiki.create, and its parameters inparams.gitlab_find_actionfinds an ID from a description of the task. - Meta (
GITLAB_MCP_TOOL_SURFACE=meta): callgitlab_wikiwithactionset to the action’s name, such ascreate, and its parameters inparams. - Individual (
GITLAB_MCP_TOOL_SURFACE=individual): call the action’s own tool, such asgitlab_wiki_create, 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: 2 of 6, 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).
| Action | Individual |
|---|---|
wiki.create | gitlab_wiki_create |
wiki.delete | gitlab_wiki_delete |
wiki.get | gitlab_wiki_get |
wiki.list | gitlab_wiki_list |
wiki.update | gitlab_wiki_update |
wiki.upload_attachment | gitlab_wiki_upload_attachment |
wiki.create
Section titled “wiki.create”Create a new wiki page. Returns: the created page with title, slug, format, content, and encoding. See also:
wiki.get,wiki.update,wiki.list.
- Meta-tool:
gitlab_wiki, actioncreate - Individual tool:
gitlab_wiki_create - Tier: Free
- Behavior: writes, not idempotent
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
content | string | yes | Content of the wiki page (Markdown, RDoc, AsciiDoc, or Org) |
project_id | string/integer | yes | Project ID or URL-encoded path |
title | string | yes | Title of the wiki page |
format | string (markdown, rdoc, asciidoc, org) | no | Content format: markdown (default), rdoc, asciidoc, or org |
wiki.delete
Section titled “wiki.delete”Delete a wiki page permanently. Returns: a success confirmation for the removed page. See also:
wiki.get,wiki.list.
- Meta-tool:
gitlab_wiki, actiondelete - Individual tool:
gitlab_wiki_delete - Tier: Free
- Behavior: writes, destructive (needs confirmation), idempotent
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
project_id | string/integer | yes | Project ID or URL-encoded path |
slug | string | yes | URL-encoded slug of the wiki page to delete |
wiki.get
Section titled “wiki.get”Get a single wiki page by slug. Returns: the page title, slug, format, content, and encoding. See also:
wiki.list,wiki.update,wiki.delete.
- Meta-tool:
gitlab_wiki, actionget - Individual tool:
gitlab_wiki_get - Tier: Free
- Behavior: read-only, idempotent
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
project_id | string/integer | yes | Project ID or URL-encoded path |
slug | string | yes | URL-encoded slug of the wiki page (e.g. ‘my-page’) |
render_html | boolean | no | Return HTML-rendered content instead of raw format |
version | string | no | Wiki page version SHA to retrieve a specific revision |
wiki.list
Section titled “wiki.list”List a project’s wiki pages. Returns: each page’s title, slug, and format (plus content when with_content is set), with hints to read or create pages. See also:
wiki.get,wiki.create.
- Meta-tool:
gitlab_wiki, actionlist - Individual tool:
gitlab_wiki_list - Tier: Free
- Behavior: read-only, idempotent
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
project_id | string/integer | yes | Project ID or URL-encoded path |
with_content | boolean | no | Include page content in the response |
wiki.update
Section titled “wiki.update”Update an existing wiki page by slug. Returns: the updated page with title, slug, format, content, and encoding. See also:
wiki.get,wiki.delete,wiki.list.
- Meta-tool:
gitlab_wiki, actionupdate - Individual tool:
gitlab_wiki_update - Tier: Free
- Behavior: writes, idempotent
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
project_id | string/integer | yes | Project ID or URL-encoded path |
slug | string | yes | URL-encoded slug of the wiki page to update |
content | string | no | New content for the wiki page |
format | string (markdown, rdoc, asciidoc, org) | no | Content format: markdown, rdoc, asciidoc, or org |
title | string | no | New title for the wiki page |
wiki.upload_attachment
Section titled “wiki.upload_attachment”Upload an attachment to the project wiki repository. Returns: the attachment file name, file path, branch, URL, and ready-to-paste Markdown link. See also:
wiki.get,wiki.update.
- Meta-tool:
gitlab_wiki, actionupload_attachment - Individual tool:
gitlab_wiki_upload_attachment - Tier: Free
- Behavior: writes, not idempotent
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
filename | string | yes | Name of the file to upload (e.g. diagram.png) |
project_id | string/integer | yes | Project ID or URL-encoded path |
branch | string | no | Branch to upload the attachment to |
content_base64 | string | no | Base64-encoded file content. Provide either content_base64 or file_path |
file_path | string | no | Absolute path to a local file. Provide either file_path or content_base64 |