GitLab MCP Server for VS Code
io.github.zereight/gitlab-mcp
GitLab MCP server for projects, merge requests, issues, pipelines, wiki, releases, and more.
client:VS Code
transport:stdio
runtime:npm
Install GitLab MCP Server in VS Code
.vscode/mcp.json
{
"inputs": [
{
"type": "promptString",
"id": "gitlab-personal-access-token",
"description": "GITLAB_PERSONAL_ACCESS_TOKEN",
"password": true
},
{
"type": "promptString",
"id": "gitlab-personal-access-token-file",
"description": "GITLAB_PERSONAL_ACCESS_TOKEN_FILE",
"password": true
},
{
"type": "promptString",
"id": "gitlab-job-token",
"description": "GITLAB_JOB_TOKEN",
"password": true
},
{
"type": "promptString",
"id": "gitlab-auth-cookie-path",
"description": "GITLAB_AUTH_COOKIE_PATH",
"password": true
},
{
"type": "promptString",
"id": "gitlab-use-oauth",
"description": "GITLAB_USE_OAUTH",
"password": true
},
{
"type": "promptString",
"id": "gitlab-oauth-client-id",
"description": "GITLAB_OAUTH_CLIENT_ID",
"password": true
},
{
"type": "promptString",
"id": "gitlab-oauth-token-script",
"description": "GITLAB_OAUTH_TOKEN_SCRIPT",
"password": true
},
{
"type": "promptString",
"id": "gitlab-api-url",
"description": "GITLAB_API_URL",
"password": true
},
{
"type": "promptString",
"id": "gitlab-allowed-project-ids",
"description": "GITLAB_ALLOWED_PROJECT_IDS",
"password": true
},
{
"type": "promptString",
"id": "gitlab-permission-mode",
"description": "GITLAB_PERMISSION_MODE",
"password": true
},
{
"type": "promptString",
"id": "gitlab-toolsets",
"description": "GITLAB_TOOLSETS",
"password": true
},
{
"type": "promptString",
"id": "gitlab-tools",
"description": "GITLAB_TOOLS",
"password": true
},
{
"type": "promptString",
"id": "gitlab-denied-tools-regex",
"description": "GITLAB_DENIED_TOOLS_REGEX",
"password": true
},
{
"type": "promptString",
"id": "gitlab-tool-policy-approve",
"description": "GITLAB_TOOL_POLICY_APPROVE",
"password": true
},
{
"type": "promptString",
"id": "gitlab-tool-policy-hidden",
"description": "GITLAB_TOOL_POLICY_HIDDEN",
"password": true
},
{
"type": "promptString",
"id": "node-tls-reject-unauthorized",
"description": "NODE_TLS_REJECT_UNAUTHORIZED",
"password": true
},
{
"type": "promptString",
"id": "gitlab-ca-cert-path",
"description": "GITLAB_CA_CERT_PATH",
"password": true
},
{
"type": "promptString",
"id": "gitlab-masking-enabled",
"description": "GITLAB_MASKING_ENABLED",
"password": true
},
{
"type": "promptString",
"id": "gitlab-masking-config",
"description": "GITLAB_MASKING_CONFIG",
"password": true
},
{
"type": "promptString",
"id": "gitlab-masking-policy-file",
"description": "GITLAB_MASKING_POLICY_FILE",
"password": true
},
{
"type": "promptString",
"id": "gitlab-masking-workspace-dir",
"description": "GITLAB_MASKING_WORKSPACE_DIR",
"password": true
}
],
"servers": {
"gitlab-mcp": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@zereight/mcp-gitlab"
],
"env": {
"GITLAB_PERSONAL_ACCESS_TOKEN": "${input:gitlab-personal-access-token}",
"GITLAB_PERSONAL_ACCESS_TOKEN_FILE": "${input:gitlab-personal-access-token-file}",
"GITLAB_JOB_TOKEN": "${input:gitlab-job-token}",
"GITLAB_AUTH_COOKIE_PATH": "${input:gitlab-auth-cookie-path}",
"GITLAB_USE_OAUTH": "${input:gitlab-use-oauth}",
"GITLAB_OAUTH_CLIENT_ID": "${input:gitlab-oauth-client-id}",
"GITLAB_OAUTH_TOKEN_SCRIPT": "${input:gitlab-oauth-token-script}",
"GITLAB_API_URL": "${input:gitlab-api-url}",
"GITLAB_ALLOWED_PROJECT_IDS": "${input:gitlab-allowed-project-ids}",
"GITLAB_PERMISSION_MODE": "${input:gitlab-permission-mode}",
"GITLAB_TOOLSETS": "${input:gitlab-toolsets}",
"GITLAB_TOOLS": "${input:gitlab-tools}",
"GITLAB_DENIED_TOOLS_REGEX": "${input:gitlab-denied-tools-regex}",
"GITLAB_TOOL_POLICY_APPROVE": "${input:gitlab-tool-policy-approve}",
"GITLAB_TOOL_POLICY_HIDDEN": "${input:gitlab-tool-policy-hidden}",
"NODE_TLS_REJECT_UNAUTHORIZED": "${input:node-tls-reject-unauthorized}",
"GITLAB_CA_CERT_PATH": "${input:gitlab-ca-cert-path}",
"GITLAB_MASKING_ENABLED": "${input:gitlab-masking-enabled}",
"GITLAB_MASKING_CONFIG": "${input:gitlab-masking-config}",
"GITLAB_MASKING_POLICY_FILE": "${input:gitlab-masking-policy-file}",
"GITLAB_MASKING_WORKSPACE_DIR": "${input:gitlab-masking-workspace-dir}"
}
}
}
}
VS Code prompts for each input the first time the server starts, so no secret is written to the file. VS Code docs