Skip to content

Geo sites

Geo replicates a GitLab instance to other sites. These actions manage the sites (list, read, create, edit and delete), repair a site’s OAuth application, and read the replication status of one site or of all of them. They are administrator actions.

  • “List the Geo sites”
  • “What is the replication status of Geo site 2?”
  • “Repair the OAuth application of the secondary site”
  • Dynamic, the default surface: call gitlab_execute_action with action set to the action’s ID, such as geo.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_geo 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_create_geo_site, with its parameters as the arguments.

How many of these actions an instance serves at each tier, out of a total of 8:

  • Free: 0
  • Premium: 8
  • Ultimate: 8

Listed only for a token that carries admin_mode: the server removes the group from every surface for a token whose scopes it knows and that lacks it.

Read-only actions: 4 of 8, 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
geo.creategitlab_create_geo_site
geo.deletegitlab_delete_geo_site
geo.editgitlab_edit_geo_site
geo.getgitlab_get_geo_site
geo.get_statusgitlab_get_status_geo_site
geo.listgitlab_list_geo_sites
geo.list_statusgitlab_list_status_all_geo_sites
geo.repairgitlab_repair_geo_site

Create a new Geo site. Returns: the site with id, name, url, primary/enabled flags, capacities, selective-sync settings, and navigation links. See also: geo.list, geo.get, geo.edit.

  • Meta-tool: gitlab_geo, action create
  • Individual tool: gitlab_create_geo_site
  • Tier: Premium
  • Behavior: writes, not idempotent
ParameterTypeMandatoryDescription
container_repositories_max_capacityintegernoMax number of concurrent container repository syncs
enabledbooleannoWhether the site is enabled
files_max_capacityintegernoMax number of LFS/attachment backfill downloads
internal_urlstringnoInternal URL of the Geo site
minimum_reverification_intervalintegernoMinimum interval (days) before re-verification
namestringnoUnique name of the Geo site
primarybooleannoWhether this is a primary site
repos_max_capacityintegernoMax number of concurrent repository backfill syncs
selective_sync_namespace_idsinteger[]noNamespace IDs to sync (when selective_sync_type=namespaces)
selective_sync_shardsstring[]noStorage shards to sync (when selective_sync_type=shards)
selective_sync_typestringnoSelective sync type: namespaces or shards
sync_object_storagebooleannoWhether to sync object-stored data
urlstringnoExternal URL of the Geo site
verification_max_capacityintegernoMax number of concurrent verification jobs

Delete a Geo site permanently. Returns: a success confirmation naming the site. See also: geo.get, geo.list.

  • Meta-tool: gitlab_geo, action delete
  • Individual tool: gitlab_delete_geo_site
  • Tier: Premium
  • Behavior: writes, destructive (needs confirmation), idempotent
ParameterTypeMandatoryDescription
idintegeryesNumeric ID of the Geo site

Edit a Geo site’s settings. Returns: the updated site with its capacities and selective-sync configuration. See also: geo.get, geo.list, geo.repair.

  • Meta-tool: gitlab_geo, action edit
  • Individual tool: gitlab_edit_geo_site
  • Tier: Premium
  • Behavior: writes, idempotent
ParameterTypeMandatoryDescription
idintegeryesNumeric ID of the Geo site
container_repositories_max_capacityintegernoMax number of concurrent container repository syncs
enabledbooleannoWhether the site is enabled
files_max_capacityintegernoMax number of LFS/attachment backfill downloads
internal_urlstringnoInternal URL of the Geo site
minimum_reverification_intervalintegernoMinimum interval (days) before re-verification
namestringnoUnique name of the Geo site
repos_max_capacityintegernoMax number of concurrent repository backfill syncs
selective_sync_namespace_idsinteger[]noNamespace IDs to sync
selective_sync_shardsstring[]noStorage shards to sync
selective_sync_typestringnoSelective sync type: namespaces or shards
urlstringnoExternal URL of the Geo site
verification_max_capacityintegernoMax number of concurrent verification jobs

Get a single Geo site by id. Returns: the site with name, url, primary/enabled flags, capacities, selective-sync settings, and navigation links. See also: geo.list, geo.edit, geo.get_status.

  • Meta-tool: gitlab_geo, action get
  • Individual tool: gitlab_get_geo_site
  • Tier: Premium
  • Behavior: read-only, idempotent
ParameterTypeMandatoryDescription
idintegeryesNumeric ID of the Geo site

Get replication status for one Geo site. Returns: health, replication lag, and detailed sync/verification/checksum counts and percentages plus navigation links. See also: geo.list_status, geo.get.

  • Meta-tool: gitlab_geo, action get_status
  • Individual tool: gitlab_get_status_geo_site
  • Tier: Premium
  • Behavior: read-only, idempotent
ParameterTypeMandatoryDescription
idintegeryesNumeric ID of the Geo site

List all Geo sites. Returns: each site with id, name, url, primary/enabled flags, capacities, and pagination metadata. See also: geo.get, geo.list_status, geo.create.

  • Meta-tool: gitlab_geo, action list
  • Individual tool: gitlab_list_geo_sites
  • Tier: Premium
  • Behavior: read-only, idempotent
ParameterTypeMandatoryDescription
order_bystringnoColumn to order results by (keyset pagination)
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, desc)

List replication status for all Geo sites. Returns: per-site health, replication lag, and detailed sync/verification/checksum counts and percentages, with pagination metadata. See also: geo.get_status, geo.list.

  • Meta-tool: gitlab_geo, action list_status
  • Individual tool: gitlab_list_status_all_geo_sites
  • Tier: Premium
  • Behavior: read-only, idempotent
ParameterTypeMandatoryDescription
order_bystringnoColumn to order results by (keyset pagination)
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, desc)

Repair a Geo site’s OAuth application. Returns: the repaired site (or a hint to refresh via get when GitLab returns no body). See also: geo.get, geo.get_status.

  • Meta-tool: gitlab_geo, action repair
  • Individual tool: gitlab_repair_geo_site
  • Tier: Premium
  • Behavior: writes, idempotent
ParameterTypeMandatoryDescription
idintegeryesNumeric ID of the Geo site