logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

gitlab-mcp

Integrate GitLab API functionalities seamlessly into applications, enabling interaction with repositories, issue management, and workflow automation.

Author

gitlab-mcp logo

harshmaur

MIT License

Quick Info

GitHub GitHub Stars 1
NPM Weekly Downloads 0
Tools 1
Last Updated 2026-02-19

Tags

gitlabapisrepositoriesgitlab apiintegrate gitlabgitlab mcp

Better GitLab MCP Server

@zereight/mcp-gitlab

smithery badge

GitLab MCP(Model Context Protocol) Server. Includes bug fixes and improvements over the original GitLab MCP server.

gitlab mcp MCP server

Usage

Using with Claude App, Cline, Roo Code, Cursor

When using with the Claude App, you need to set up your API key and URLs directly.

npx

{
  "mcpServers": {
    "GitLab communication server": {
      "command": "npx",
      "args": ["-y", "@zereight/mcp-gitlab"],
      "env": {
        "GITLAB_PERSONAL_ACCESS_TOKEN": "your_gitlab_token",
        "GITLAB_API_URL": "your_gitlab_api_url",
        "GITLAB_READ_ONLY_MODE": "false",
        "USE_GITLAB_WIKI": "false", // use wiki api?
        "USE_MILESTONE": "false", // use milestone api?
        "USE_PIPELINE": "false" // use pipeline api?
      }
    }
  }
}

Docker

  • stdio
{
  "mcpServers": {
    "GitLab communication server": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "GITLAB_PERSONAL_ACCESS_TOKEN",
        "-e",
        "GITLAB_API_URL",
        "-e",
        "GITLAB_READ_ONLY_MODE",
        "-e",
        "USE_GITLAB_WIKI",
        "-e",
        "USE_MILESTONE",
        "-e",
        "USE_PIPELINE",
        "iwakitakuma/gitlab-mcp"
      ],
      "env": {
        "GITLAB_PERSONAL_ACCESS_TOKEN": "your_gitlab_token",
        "GITLAB_API_URL": "https://gitlab.com/api/v4", // Optional, for self-hosted GitLab
        "GITLAB_READ_ONLY_MODE": "false",
        "USE_GITLAB_WIKI": "true",
        "USE_MILESTONE": "true",
        "USE_PIPELINE": "true"
      }
    }
  }
}
  • sse
docker run -i --rm \
  -e GITLAB_PERSONAL_ACCESS_TOKEN=your_gitlab_token \
  -e GITLAB_API_URL= "https://gitlab.com/api/v4"\
  -e GITLAB_READ_ONLY_MODE=true \
  -e USE_GITLAB_WIKI=true \
  -e USE_MILESTONE=true \
  -e USE_PIPELINE=true \
  -e SSE=true \
  -p 3333:3002 \
  iwakitakuma/gitlab-mcp
{
  "mcpServers": {
    "GitLab communication server": {
      "url": "http://localhost:3333/sse"
    }
  }
}

Docker Image Push

$ sh scripts/image_push.sh docker_user_name

Environment Variables

  • GITLAB_PERSONAL_ACCESS_TOKEN: Your GitLab personal access token.
  • GITLAB_API_URL: Your GitLab API URL. (Default: https://gitlab.com/api/v4)
  • GITLAB_READ_ONLY_MODE: When set to 'true', restricts the server to only expose read-only operations. Useful for enhanced security or when write access is not needed. Also useful for using with Cursor and it's 40 tool limit.
  • USE_GITLAB_WIKI: When set to 'true', enables the wiki-related tools (list_wiki_pages, get_wiki_page, create_wiki_page, update_wiki_page, delete_wiki_page). By default, wiki features are disabled.
  • USE_MILESTONE: When set to 'true', enables the milestone-related tools (list_milestones, get_milestone, create_milestone, edit_milestone, delete_milestone, get_milestone_issue, get_milestone_merge_requests, promote_milestone, get_milestone_burndown_events). By default, milestone features are disabled.
  • USE_PIPELINE: When set to 'true', enables the pipeline-related tools (list_pipelines, get_pipeline, list_pipeline_jobs, get_pipeline_job, get_pipeline_job_output, create_pipeline, retry_pipeline, cancel_pipeline). By default, pipeline features are disabled.

Tools 🛠️

+ 1. create_or_update_file - Create or update a single file in a GitLab project 2. search_repositories - Search for GitLab projects 3. create_repository - Create a new GitLab project 4. get_file_contents - Get the contents of a file or directory from a GitLab project 5. push_files - Push multiple files to a GitLab project in a single commit 6. create_issue - Create a new issue in a GitLab project 7. create_merge_request - Create a new merge request in a GitLab project 8. fork_repository - Fork a GitLab project to your account or specified namespace 9. create_branch - Create a new branch in a GitLab project 10. get_merge_request - Get details of a merge request (Either mergeRequestIid or branchName must be provided) 11. get_merge_request_diffs - Get the changes/diffs of a merge request (Either mergeRequestIid or branchName must be provided) 12. get_branch_diffs - Get the changes/diffs between two branches or commits in a GitLab project 13. update_merge_request - Update a merge request (Either mergeRequestIid or branchName must be provided) 14. create_note - Create a new note (comment) to an issue or merge request 15. create_merge_request_thread - Create a new thread on a merge request 16. mr_discussions - List discussion items for a merge request 17. update_merge_request_note - Modify an existing merge request thread note 18. create_merge_request_note - Add a new note to an existing merge request thread 19. update_issue_note - Modify an existing issue thread note 20. create_issue_note - Add a new note to an existing issue thread 21. list_issues - List issues in a GitLab project with filtering options 22. get_issue - Get details of a specific issue in a GitLab project 23. update_issue - Update an issue in a GitLab project 24. delete_issue - Delete an issue from a GitLab project 25. list_issue_links - List all issue links for a specific issue 26. list_issue_discussions - List discussions for an issue in a GitLab project 27. get_issue_link - Get a specific issue link 28. create_issue_link - Create an issue link between two issues 29. delete_issue_link - Delete an issue link 30. list_namespaces - List all namespaces available to the current user 31. get_namespace - Get details of a namespace by ID or path 32. verify_namespace - Verify if a namespace path exists 33. get_project - Get details of a specific project 34. list_projects - List projects accessible by the current user 35. list_labels - List labels for a project 36. get_label - Get a single label from a project 37. create_label - Create a new label in a project 38. update_label - Update an existing label in a project 39. delete_label - Delete a label from a project 40. list_group_projects - List projects in a GitLab group with filtering options 41. list_wiki_pages - List wiki pages in a GitLab project 42. get_wiki_page - Get details of a specific wiki page 43. create_wiki_page - Create a new wiki page in a GitLab project 44. update_wiki_page - Update an existing wiki page in a GitLab project 45. delete_wiki_page - Delete a wiki page from a GitLab project 46. get_repository_tree - Get the repository tree for a GitLab project (list files and directories) 47. list_pipelines - List pipelines in a GitLab project with filtering options 48. get_pipeline - Get details of a specific pipeline in a GitLab project 49. list_pipeline_jobs - List all jobs in a specific pipeline 50. get_pipeline_job - Get details of a GitLab pipeline job number 51. get_pipeline_job_output - Get the output/trace of a GitLab pipeline job number 52. create_pipeline - Create a new pipeline for a branch or tag 53. retry_pipeline - Retry a failed or canceled pipeline 54. cancel_pipeline - Cancel a running pipeline 55. list_merge_requests - List merge requests in a GitLab project with filtering options 56. list_milestones - List milestones in a GitLab project with filtering options 57. get_milestone - Get details of a specific milestone 58. create_milestone - Create a new milestone in a GitLab project 59. edit_milestone - Edit an existing milestone in a GitLab project 60. delete_milestone - Delete a milestone from a GitLab project 61. get_milestone_issue - Get issues associated with a specific milestone 62. get_milestone_merge_requests - Get merge requests associated with a specific milestone 63. promote_milestone - Promote a milestone to the next stage 64. get_milestone_burndown_events - Get burndown events for a specific milestone 65. get_users - Get GitLab user details by usernames

See Also

`