MCP server for GitLab (projects, merge requests, issues, notes, pipelines, repo files) via stdio transport.
- Node.js 18.20+ (or newer)
- GitLab Personal Access Token with API scope
-
Install dependencies:
npm install
-
Configure environment variables:
copy .env.example .env
Set
GITLAB_TOKENin.env.
Optional: setGITLAB_HOSTfor self-hosted GitLab.
npm run startgitlab_list_projectsgitlab_get_projectgitlab_list_merge_requestsgitlab_create_issuegitlab_create_merge_requestgitlab_edit_merge_requestgitlab_create_issue_notegitlab_create_merge_request_notegitlab_list_pipelinesgitlab_get_pipelinegitlab_remove_pipelinegitlab_run_pipelinegitlab_retry_pipelinegitlab_cancel_pipelinegitlab_get_filegitlab_upsert_filegitlab_approve_merge_requestgitlab_unapprove_merge_requestgitlab_merge_merge_requestgitlab_list_branchesgitlab_create_branchgitlab_create_commitgitlab_list_tagsgitlab_create_taggitlab_list_releasesgitlab_get_releasegitlab_create_release_evidencegitlab_create_releasegitlab_update_releasegitlab_show_changeloggitlab_edit_changeloggitlab_list_merge_request_discussionsgitlab_create_merge_request_discussiongitlab_create_merge_request_discussion_notegitlab_resolve_merge_request_discussiongitlab_unresolve_merge_request_discussiongitlab_list_protected_branchesgitlab_protect_branchgitlab_unprotect_branchgitlab_list_protected_tagsgitlab_protect_taggitlab_unprotect_taggitlab_list_release_linksgitlab_create_release_linkgitlab_update_release_linkgitlab_remove_release_linkgitlab_list_project_variablesgitlab_upsert_project_variablegitlab_remove_project_variablegitlab_list_jobsgitlab_get_jobgitlab_get_job_loggitlab_retry_jobgitlab_play_jobgitlab_cancel_jobgitlab_erase_jobgitlab_download_job_artifactsgitlab_keep_job_artifactsgitlab_remove_job_artifactsgitlab_list_environmentsgitlab_create_environmentgitlab_stop_environmentgitlab_remove_environmentgitlab_list_deploymentsgitlab_get_deploymentgitlab_create_deploymentgitlab_edit_deployment_statusgitlab_remove_deploymentgitlab_set_deployment_approvalgitlab_get_tools_catalog
Add this to your MCP configuration (adjust path if needed):
{
"mcpServers": {
"gitlab": {
"command": "npx",
"args": [
"tsx",
"F:/www/mcp/gitlab/src/index.ts"
],
"env": {
"GITLAB_HOST": "https://gitlab.com",
"GITLAB_TOKEN": "glpat-xxxxxxxxxxxxxxxxxxxx"
}
}
}
}For production usage you can run npm run build and point MCP command to node dist/index.js.