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 meta-tool and action each prompt maps to, across project management, code review, CI/CD, releases, and search.

Prompt: “Show me my GitLab projects”

The server calls gitlab_project with action: list, 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 server calls gitlab_issue with action: create, 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 server first calls gitlab_label with action: list to show existing labels, then action: create to add the new one.

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

The server calls gitlab_milestone with action: get, returning completion percentage, open/closed issue counts, and due date.

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

The server calls gitlab_member with action: list, returning team members with their roles and permissions.

Dynamic mode is the default, so the prompts above don’t reach a named meta-tool directly. Instead 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" }

For analysis tasks, the same flow discovers canonical analyze.* actions before execution:

gitlab_find_action → query: "analyze failed pipeline"
gitlab_execute_action → action: "analyze.pipeline_failure", params: { project_id: "42", pipeline_id: 12345 }

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 — 847 operations on Community Edition and up to 1,071 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 TOOL_SURFACE=meta or 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, gitlab_resolve_project maps the git remote URL to the right GitLab project so you do not have to state it at all.

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_READ_ONLY=true removes every mutating action from the catalog entirely, and GITLAB_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.