Skip to content

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.

  • “List the wiki pages of project 42”
  • “Show the Home wiki page”
  • “Create a wiki page with the release checklist”
  • Dynamic, the default surface: call gitlab_execute_action with action set to the action’s ID, such as wiki.create, and its parameters in params. gitlab_find_action finds an ID from a description of the task.
  • Meta (GITLAB_MCP_TOOL_SURFACE=meta): call gitlab_wiki with action set to the action’s name, such as create, and its parameters in params.
  • Individual (GITLAB_MCP_TOOL_SURFACE=individual): call the action’s own tool, such as gitlab_wiki_create, with its parameters as the arguments.

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.

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).

ActionIndividual
wiki.creategitlab_wiki_create
wiki.deletegitlab_wiki_delete
wiki.getgitlab_wiki_get
wiki.listgitlab_wiki_list
wiki.updategitlab_wiki_update
wiki.upload_attachmentgitlab_wiki_upload_attachment

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, action create
  • Individual tool: gitlab_wiki_create
  • Tier: Free
  • Behavior: writes, not idempotent
ParameterTypeMandatoryDescription
contentstringyesContent of the wiki page (Markdown, RDoc, AsciiDoc, or Org)
project_idstring/integeryesProject ID or URL-encoded path
titlestringyesTitle of the wiki page
formatstring (markdown, rdoc, asciidoc, org)noContent format: markdown (default), rdoc, asciidoc, or org

Delete a wiki page permanently. Returns: a success confirmation for the removed page. See also: wiki.get, wiki.list.

  • Meta-tool: gitlab_wiki, action delete
  • Individual tool: gitlab_wiki_delete
  • Tier: Free
  • Behavior: writes, destructive (needs confirmation), idempotent
ParameterTypeMandatoryDescription
project_idstring/integeryesProject ID or URL-encoded path
slugstringyesURL-encoded slug of the wiki page to delete

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, action get
  • Individual tool: gitlab_wiki_get
  • Tier: Free
  • Behavior: read-only, idempotent
ParameterTypeMandatoryDescription
project_idstring/integeryesProject ID or URL-encoded path
slugstringyesURL-encoded slug of the wiki page (e.g. ‘my-page’)
render_htmlbooleannoReturn HTML-rendered content instead of raw format
versionstringnoWiki page version SHA to retrieve a specific revision

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, action list
  • Individual tool: gitlab_wiki_list
  • Tier: Free
  • Behavior: read-only, idempotent
ParameterTypeMandatoryDescription
project_idstring/integeryesProject ID or URL-encoded path
with_contentbooleannoInclude page content in the response

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, action update
  • Individual tool: gitlab_wiki_update
  • Tier: Free
  • Behavior: writes, idempotent
ParameterTypeMandatoryDescription
project_idstring/integeryesProject ID or URL-encoded path
slugstringyesURL-encoded slug of the wiki page to update
contentstringnoNew content for the wiki page
formatstring (markdown, rdoc, asciidoc, org)noContent format: markdown, rdoc, asciidoc, or org
titlestringnoNew title for the wiki page

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, action upload_attachment
  • Individual tool: gitlab_wiki_upload_attachment
  • Tier: Free
  • Behavior: writes, not idempotent
ParameterTypeMandatoryDescription
filenamestringyesName of the file to upload (e.g. diagram.png)
project_idstring/integeryesProject ID or URL-encoded path
branchstringnoBranch to upload the attachment to
content_base64stringnoBase64-encoded file content. Provide either content_base64 or file_path
file_pathstringnoAbsolute path to a local file. Provide either file_path or content_base64