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 |
Capabilities
Features and capabilities supported by this server
| 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
- 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