Skip to content

Usage Examples

This is a quick reference of natural language prompts you can use with any AI assistant connected to GitLab MCP Server, grouped by domain. Type the prompt in plain English and the server translates it into the right GitLab API operation automatically. The tabs below show which catalog action each prompt maps to: the action you would pass to gitlab_execute_action on the default dynamic surface, which is also the matching domain meta-tool’s action when GITLAB_MCP_TOOL_SURFACE=meta. They cover project management, code review, CI/CD, releases, and search.

Prompt: “Show me my GitLab projects”

The assistant runs project.list (gitlab_project with action: list when GITLAB_MCP_TOOL_SURFACE=meta), returning project names, descriptions, and URLs.

Prompt: “Create a bug report in my-group/my-project titled ‘Login page returns 404 after password reset’ with labels bug and priority::high”

The assistant runs issue.create (gitlab_issue with action: create on the meta surface), setting the title, description, labels, and project in a single operation.

Prompt: “List all labels in the frontend project and create a new label called ‘accessibility’ with color #0052CC”

The assistant first runs project.label_list to show existing labels, then project.label_create to add the new one (gitlab_project with action: label_list and action: label_create on the meta surface).

Prompt: “Show me the progress on the Sprint 14 milestone in my-project”

The assistant runs project.milestone_get (gitlab_project with action: milestone_get on the meta surface), returning the milestone’s state, dates and web URL, and project.milestone_issues for the issues still open in it.

Prompt: “List all members of the frontend project and their access levels”

The assistant runs project.members (gitlab_project with action: members on the meta surface), returning team members with their roles and permissions.

Dynamic mode is the default, so the prompts above never name a tool directly. The assistant first discovers the action and its schema with gitlab_find_action, then runs it with gitlab_execute_action using a canonical domain.action ID:

gitlab_find_action → query: "list open merge requests"
gitlab_execute_action → action: "merge_request.list", params: { project_id: "42", state: "opened" }

When a pipeline fails, the same flow chains two actions — find the failing jobs, then read one job’s log:

gitlab_find_action → query: "list failed jobs in a pipeline"
gitlab_execute_action → action: "job.list", params: { project_id: "42", pipeline_id: 8847, scope: ["failed"] }
gitlab_execute_action → action: "job.trace", params: { project_id: "42", job_id: 501 }

Frequently asked questions

What can I ask an AI assistant to do with GitLab MCP Server?

Anything the GitLab REST v4 and GraphQL APIs expose — 865 operations on Community Edition and up to 1,091 on GitLab.com. In practice that means listing and creating projects and issues, reviewing merge requests, checking and retrying pipelines, cutting releases, managing labels and milestones, searching code across a group, and administering members. You phrase the request in natural language and the server resolves it to one canonical GitLab action.

Do I need to know the tool names to use GitLab MCP Server?

No. In the default dynamic surface you describe what you want and the assistant calls gitlab_find_action to locate the matching action and its exact schema, then gitlab_execute_action to run it. Tool names such as gitlab_issue only become visible if you switch to GITLAB_MCP_TOOL_SURFACE=meta or GITLAB_MCP_TOOL_SURFACE=individual, which trade startup context for a browsable tool list.

How do I tell the assistant which GitLab project to use?

Pass the project path in project_id, in group/project form — for example my-group/backend. Numeric project IDs work too. If you are working inside a checked-out repository, the project discovery action maps the git remote URL to the right GitLab project so you do not have to state it at all: discover_project.resolve through gitlab_execute_action on the default surface, or the standalone gitlab_discover_project tool with GITLAB_MCP_TOOL_SURFACE=meta or individual.

Will an AI assistant change my GitLab data without asking?

Not without a safeguard being turned off. Destructive actions require explicit confirmation before they execute, GITLAB_MCP_READ_ONLY=true removes every mutating action from the catalog entirely, and GITLAB_MCP_SAFE_MODE=true intercepts mutations and returns a JSON preview of what would happen instead of applying it. Read operations such as listing and searching are always safe.