GitLab MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| GITLAB_URL | No | Your GitLab instance URL | https://gitlab.com |
| GITLAB_TOKEN | Yes | Personal access token (required) | |
| DEFAULT_ASSIGNEE | No | Username for 'my_*' tools filters | me |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_projectsA | List GitLab projects accessible to the authenticated user. Args: search: Search term to filter projects by name owned: If true, only return projects owned by the user membership: If true, only return projects the user is a member of per_page: Number of results per page (max 100) |
| get_projectA | Get details of a specific GitLab project. Args: project_path: Full path of the project (e.g., 'group/project' or 'user/project') |
| list_issuesB | List issues in a GitLab project. Args: project_path: Full path of the project (e.g., 'group/project') state: Filter by state: 'opened', 'closed', or 'all' labels: Comma-separated list of label names to filter by search: Search term to filter issues per_page: Number of results per page (max 100) |
| my_issuesA | List issues assigned to the current authenticated user across all projects or a specific project. Args: state: Filter by state: 'opened', 'closed', or 'all' project_path: Optional - filter to a specific project (e.g., 'group/project') per_page: Number of results per page (max 100) |
| team_issuesA | List issues with a specific team label across all projects or a specific project. Args: label: Team label to filter by (defaults to 'RE') state: Filter by state: 'opened', 'closed', or 'all' project_path: Optional - filter to a specific project (e.g., 'group/project') per_page: Number of results per page (max 100) |
| get_issueA | Get details of a specific issue. Args: project_path: Full path of the project (e.g., 'group/project') issue_iid: The internal ID of the issue within the project |
| get_issue_commentsA | Get comments/notes on a specific issue. Args: project_path: Full path of the project (e.g., 'group/project') issue_iid: The internal ID of the issue within the project per_page: Number of results per page (max 100) |
| list_merge_requestsA | List merge requests in a GitLab project. Args: project_path: Full path of the project (e.g., 'group/project') state: Filter by state: 'opened', 'closed', 'merged', or 'all' target_branch: Filter by target branch name source_branch: Filter by source branch name search: Search term to filter merge requests per_page: Number of results per page (max 100) |
| my_merge_requestsA | List merge requests assigned to the current authenticated user across all projects or a specific project. Args: state: Filter by state: 'opened', 'closed', 'merged', or 'all' project_path: Optional - filter to a specific project (e.g., 'group/project') per_page: Number of results per page (max 100) |
| my_merge_requests_to_reviewA | List merge requests where the current user is a reviewer across all projects or a specific project. Args: state: Filter by state: 'opened', 'closed', 'merged', or 'all' project_path: Optional - filter to a specific project (e.g., 'group/project') per_page: Number of results per page (max 100) |
| team_merge_requestsA | List merge requests with a specific team label across all projects or a specific project. Args: label: Team label to filter by (defaults to 'RE') state: Filter by state: 'opened', 'closed', 'merged', or 'all' project_path: Optional - filter to a specific project (e.g., 'group/project') per_page: Number of results per page (max 100) |
| get_merge_requestA | Get details of a specific merge request. Args: project_path: Full path of the project (e.g., 'group/project') mr_iid: The internal ID of the merge request within the project |
| get_merge_request_changesA | Get the file changes (diff) of a merge request. Args: project_path: Full path of the project (e.g., 'group/project') mr_iid: The internal ID of the merge request within the project |
| get_merge_request_commentsA | Get comments/notes on a specific merge request. Args: project_path: Full path of the project (e.g., 'group/project') mr_iid: The internal ID of the merge request within the project per_page: Number of results per page (max 100) |
| list_pipelinesA | List pipelines in a GitLab project. Args: project_path: Full path of the project (e.g., 'group/project') status: Filter by status: 'running', 'pending', 'success', 'failed', 'canceled', 'skipped' ref: Filter by branch or tag name per_page: Number of results per page (max 100) |
| get_pipeline_jobsB | Get jobs for a specific pipeline. Args: project_path: Full path of the project (e.g., 'group/project') pipeline_id: The ID of the pipeline per_page: Number of results per page (max 100) |
| get_job_logA | Get the log/trace output of a specific job. Args: project_path: Full path of the project (e.g., 'group/project') job_id: The ID of the job |
| get_file_contentA | Get the content of a file from the repository. Args: project_path: Full path of the project (e.g., 'group/project') file_path: Path to the file within the repository ref: Branch name, tag, or commit SHA (defaults to 'main') |
| list_repository_treeA | List files and directories in a repository. Args: project_path: Full path of the project (e.g., 'group/project') path: Path inside the repository to list (empty for root) ref: Branch name, tag, or commit SHA (defaults to 'main') recursive: If true, list files recursively per_page: Number of results per page (max 100) |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/ProstoyVadila/gitlab_mcp_server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server