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.
Sample questions
Section titled “Sample questions”- “List the Geo sites”
- “What is the replication status of Geo site 2?”
- “Repair the OAuth application of the secondary site”
How to call it
Section titled “How to call it”- Dynamic, the default surface: call
gitlab_execute_actionwithactionset to the action’s ID, such asgeo.create, and its parameters inparams.gitlab_find_actionfinds an ID from a description of the task. - Meta (
GITLAB_MCP_TOOL_SURFACE=meta): callgitlab_geowithactionset 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_create_geo_site, with its parameters as the arguments.
Availability
Section titled “Availability”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.
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 |
|---|---|
geo.create | gitlab_create_geo_site |
geo.delete | gitlab_delete_geo_site |
geo.edit | gitlab_edit_geo_site |
geo.get | gitlab_get_geo_site |
geo.get_status | gitlab_get_status_geo_site |
geo.list | gitlab_list_geo_sites |
geo.list_status | gitlab_list_status_all_geo_sites |
geo.repair | gitlab_repair_geo_site |
geo.create
Section titled “geo.create”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, actioncreate - Individual tool:
gitlab_create_geo_site - Tier: Premium
- Behavior: writes, not idempotent
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
container_repositories_max_capacity | integer | no | Max number of concurrent container repository syncs |
enabled | boolean | no | Whether the site is enabled |
files_max_capacity | integer | no | Max number of LFS/attachment backfill downloads |
internal_url | string | no | Internal URL of the Geo site |
minimum_reverification_interval | integer | no | Minimum interval (days) before re-verification |
name | string | no | Unique name of the Geo site |
primary | boolean | no | Whether this is a primary site |
repos_max_capacity | integer | no | Max number of concurrent repository backfill syncs |
selective_sync_namespace_ids | integer[] | no | Namespace IDs to sync (when selective_sync_type=namespaces) |
selective_sync_shards | string[] | no | Storage shards to sync (when selective_sync_type=shards) |
selective_sync_type | string | no | Selective sync type: namespaces or shards |
sync_object_storage | boolean | no | Whether to sync object-stored data |
url | string | no | External URL of the Geo site |
verification_max_capacity | integer | no | Max number of concurrent verification jobs |
geo.delete
Section titled “geo.delete”Delete a Geo site permanently. Returns: a success confirmation naming the site. See also:
geo.get,geo.list.
- Meta-tool:
gitlab_geo, actiondelete - Individual tool:
gitlab_delete_geo_site - Tier: Premium
- Behavior: writes, destructive (needs confirmation), idempotent
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
id | integer | yes | Numeric ID of the Geo site |
geo.edit
Section titled “geo.edit”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, actionedit - Individual tool:
gitlab_edit_geo_site - Tier: Premium
- Behavior: writes, idempotent
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
id | integer | yes | Numeric ID of the Geo site |
container_repositories_max_capacity | integer | no | Max number of concurrent container repository syncs |
enabled | boolean | no | Whether the site is enabled |
files_max_capacity | integer | no | Max number of LFS/attachment backfill downloads |
internal_url | string | no | Internal URL of the Geo site |
minimum_reverification_interval | integer | no | Minimum interval (days) before re-verification |
name | string | no | Unique name of the Geo site |
repos_max_capacity | integer | no | Max number of concurrent repository backfill syncs |
selective_sync_namespace_ids | integer[] | no | Namespace IDs to sync |
selective_sync_shards | string[] | no | Storage shards to sync |
selective_sync_type | string | no | Selective sync type: namespaces or shards |
url | string | no | External URL of the Geo site |
verification_max_capacity | integer | no | Max number of concurrent verification jobs |
geo.get
Section titled “geo.get”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, actionget - Individual tool:
gitlab_get_geo_site - Tier: Premium
- Behavior: read-only, idempotent
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
id | integer | yes | Numeric ID of the Geo site |
geo.get_status
Section titled “geo.get_status”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, actionget_status - Individual tool:
gitlab_get_status_geo_site - Tier: Premium
- Behavior: read-only, idempotent
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
id | integer | yes | Numeric ID of the Geo site |
geo.list
Section titled “geo.list”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, actionlist - Individual tool:
gitlab_list_geo_sites - Tier: Premium
- Behavior: read-only, idempotent
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
order_by | string | no | Column to order results by (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 direction (asc, desc) |
geo.list_status
Section titled “geo.list_status”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, actionlist_status - Individual tool:
gitlab_list_status_all_geo_sites - Tier: Premium
- Behavior: read-only, idempotent
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
order_by | string | no | Column to order results by (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 direction (asc, desc) |
geo.repair
Section titled “geo.repair”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, actionrepair - Individual tool:
gitlab_repair_geo_site - Tier: Premium
- Behavior: writes, idempotent
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
id | integer | yes | Numeric ID of the Geo site |