加载中…
GitLab MCP server for projects, merge requests, issues, pipelines, wiki, releases, and more.
GitLab MCP Server 是 ChatHome Skills 收录的 MCP 条目,来源为 Official MCP Registry,质量分 78/100。 作为 Model Context Protocol 服务器,它向 Claude、Cursor、Copilot 等兼容 MCP 的 LLM 客户端暴露可直接调用的工具,让 agent 的能力超出模型内置范围。 该条目由 ChatHome Skills 的每日抓取从官方 registry 和 GitHub 发现查询中收录,每次运行都会重新核验仓库事实、新鲜度信号和安装元数据。 质量分综合了官方 registry 收录情况、可用安装命令、许可证完整性、仓库活跃度和 GitHub star 趋势,完整算法说明见来源页。安装命令已列于上方,可直接复制使用。 在将 GitLab MCP Server 加入生产 agent 工作流前,请核对上方的最近更新日期和仓库状态——下方事实快照是最近一次抓取的时点值。
npx -y @zereight/mcp-gitlab@2.3.11运行此命令前,请先核对上游源码。
{
"_meta": {
"io.modelcontextprotocol.registry/official": {
"status": "active",
"isLatest": true,
"updatedAt": "2026-10-25T03:28:49.696998Z",
"publishedAt": "2026-10-25T03:28:49.696998Z",
"statusChangedAt": "2026-10-25T03:28:49.696998Z"
}
},
"server": {
"name": "io.github.zereight/gitlab-mcp",
"icons": [
{
"src": "https://raw.githubusercontent.com/zereight/gitlab-mcp/main/assets/logo.svg",
"sizes": [
"any"
],
"mimeType": "image/svg+xml"
}
],
"title": "GitLab MCP Server",
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
"version": "2.3.11",
"packages": [
{
"version": "2.3.11",
"transport": {
"type": "stdio"
},
"identifier": "@zereight/mcp-gitlab",
"registryType": "npm",
"environmentVariables": [
{
"name": "GITLAB_PERSONAL_ACCESS_TOKEN",
"format": "string",
"isSecret": true,
"description": "GitLab personal access token for local stdio use. A non-empty value overrides GITLAB_PERSONAL_ACCESS_TOKEN_FILE. One of this token, GITLAB_PERSONAL_ACCESS_TOKEN_FILE, GITLAB_JOB_TOKEN, GITLAB_AUTH_COOKIE_PATH, or GITLAB_USE_OAUTH=true must be set. Create a token with the GitLab scopes the tools need, such as api or read_api."
},
{
"name": "GITLAB_PERSONAL_ACCESS_TOKEN_FILE",
"format": "filepath",
"description": "Path to a file that contains the personal access token. Read once at startup and trimmed. Ignored when GITLAB_PERSONAL_ACCESS_TOKEN or --token is non-empty. A missing, unreadable, or empty file stops startup. Does not replace job token, OAuth, cookie, or remote authorization."
},
{
"name": "GITLAB_JOB_TOKEN",
"format": "string",
"isSecret": true,
"description": "Optional GitLab CI job token to use instead of a personal access token when running inside GitLab CI."
},
{
"name": "GITLAB_AUTH_COOKIE_PATH",
"format": "filepath",
"description": "Optional path to a GitLab authentication cookie file for cookie-based authentication."
},
{
"name": "GITLAB_USE_OAUTH",
"format": "boolean",
"description": "Set to true to start with GitLab OAuth instead of a personal access token, job token, or cookie file."
},
{
"name": "GITLAB_OAUTH_CLIENT_ID",
"format": "string",
"description": "GitLab OAuth application ID. When GITLAB_USE_OAUTH=true, set this or GITLAB_OAUTH_TOKEN_SCRIPT."
},
{
"name": "GITLAB_OAUTH_TOKEN_SCRIPT",
"format": "string",
"description": "Command that prints an OAuth access token. When GITLAB_USE_OAUTH=true, set this or GITLAB_OAUTH_CLIENT_ID."
},
{
"name": "GITLAB_API_URL",
"format": "string",
"default": "https://gitlab.com/api/v4",
"description": "GitLab API base URL. Use https://gitlab.com/api/v4 for GitLab.com or your self-managed GitLab API URL."
},
{
"name": "GITLAB_ALLOWED_PROJECT_IDS",
"format": "string",
"description": "Optional comma-separated list of GitLab project IDs that this server is allowed to access."
},
{
"name": "GITLAB_PERMISSION_MODE",
"format": "string",
"choices": [
"readonly",
"modify",
"full"
],
"description": "Tool exposure. Allowed values are readonly, modify, and full. Unset uses full. readonly keeps read-only tools. modify blocks delete and teardown tools."
},
{
"name": "GITLAB_TOOLSETS",
"format": "string",
"description": "Optional comma-separated list of toolsets to enable, such as projects, issues, merge_requests, pipelines, releases, users, groups, wiki, or search."
},
{
"name": "GITLAB_TOOLS",
"format": "string",
"description": "Optional comma-separated list of individual tool names to add on top of enabled toolsets."
},
{
"name": "GITLAB_DENIED_TOOLS_REGEX",
"format": "string",
"description": "Optional regular expression used to hide matching tools from the server."
},
{
"name": "GITLAB_TOOL_POLICY_APPROVE",
"format": "string",
"description": "Optional comma-separated list of tool names that require explicit approval before execution."
},
{
"name": "GITLAB_TOOL_POLICY_HIDDEN",
"format": "string",
"description": "Optional comma-separated list of tool names to hide from tools/list."
},
{
"name": "NODE_TLS_REJECT_UNAUTHORIZED",
"format": "string",
"description": "Set to 0 only when you intentionally need to connect to a GitLab instance with invalid or self-signed TLS certificates."
},
{
"name": "GITLAB_CA_CERT_PATH",
"format": "filepath",
"description": "Optional path to a custom CA certificate file for self-managed GitLab instances."
},
{
"name": "GITLAB_MASKING_ENABLED",
"format": "string",
"default": "false",
"description": "Set to true to mask text tool results and returned errors using built-in or configured rules."
},
{
"name": "GITLAB_MASKING_CONFIG",
"format": "filepath",
"description": "Optional path to a response-masking JSON configuration file."
},
{
"name": "GITLAB_MASKING_POLICY_FILE",
"format": "filepath",
"description": "Optional protected server-owned JSON file containing managed masking policies."
},
{
"name": "GITLAB_MASKING_WORKSPACE_DIR",
"format": "filepath",
"description": "Directory used to resolve response-masking configuration paths."
}
]
},
{
"transport": {
"type": "stdio"
},
"identifier": "docker.io/zereight050/gitlab-mcp:2.3.11",
"registryType": "oci",
"environmentVariables": [
{
"name": "GITLAB_PERSONAL_ACCESS_TOKEN",
"format": "string",
"isSecret": true,
"description": "GitLab personal access token for local stdio use. A non-empty value overrides GITLAB_PERSONAL_ACCESS_TOKEN_FILE. One of this token, GITLAB_PERSONAL_ACCESS_TOKEN_FILE, GITLAB_JOB_TOKEN, GITLAB_AUTH_COOKIE_PATH, or GITLAB_USE_OAUTH=true must be set. Create a token with the GitLab scopes the tools need, such as api or read_api."
},
{
"name": "GITLAB_PERSONAL_ACCESS_TOKEN_FILE",
"format": "filepath",
"description": "Path to a file that contains the personal access token. Read once at startup and trimmed. Ignored when GITLAB_PERSONAL_ACCESS_TOKEN or --token is non-empty. A missing, unreadable, or empty file stops startup. Does not replace job token, OAuth, cookie, or remote authorization."
},
{
"name": "GITLAB_JOB_TOKEN",
"format": "string",
"isSecret": true,
"description": "Optional GitLab CI job token to use instead of a personal access token when running inside GitLab CI."
},
{
"name": "GITLAB_AUTH_COOKIE_PATH",
"format": "filepath",
"description": "Optional path to a GitLab authentication cookie file for cookie-based authentication."
},
{
"name": "GITLAB_USE_OAUTH",
"format": "boolean",
"description": "Set to true to start with GitLab OAuth instead of a personal access token, job token, or cookie file."
},
{
"name": "GITLAB_OAUTH_CLIENT_ID",
"format": "string",
"description": "GitLab OAuth application ID. When GITLAB_USE_OAUTH=true, set this or GITLAB_OAUTH_TOKEN_SCRIPT."
},
{
"name": "GITLAB_OAUTH_TOKEN_SCRIPT",
"format": "string",
"description": "Command that prints an OAuth access token. When GITLAB_USE_OAUTH=true, set this or GITLAB_OAUTH_CLIENT_ID."
},
{
"name": "GITLAB_API_URL",
"format": "string",
"default": "https://gitlab.com/api/v4",
"description": "GitLab API base URL. Use https://gitlab.com/api/v4 for GitLab.com or your self-managed GitLab API URL."
},
{
"name": "GITLAB_ALLOWED_PROJECT_IDS",
"format": "string",
"description": "Optional comma-separated list of GitLab project IDs that this server is allowed to access."
},
{
"name": "GITLAB_PERMISSION_MODE",
"format": "string",
"choices": [
"readonly",
"modify",
"full"
],
"description": "Tool exposure. Allowed values are readonly, modify, and full. Unset uses full. readonly keeps read-only tools. modify blocks delete and teardown tools."
},
{
"name": "GITLAB_TOOLSETS",
"format": "string",
"description": "Optional comma-separated list of toolsets to enable, such as projects, issues, merge_requests, pipelines, releases, users, groups, wiki, or search."
},
{
"name": "GITLAB_TOOLS",
"format": "string",
"description": "Optional comma-separated list of individual tool names to add on top of enabled toolsets."
},
{
"name": "GITLAB_DENIED_TOOLS_REGEX",
"format": "string",
"description": "Optional regular expression used to hide matching tools from the server."
},
{
"name": "GITLAB_TOOL_POLICY_APPROVE",
"format": "string",
"description": "Optional comma-separated list of tool names that require explicit approval before execution."
},
{
"name": "GITLAB_TOOL_POLICY_HIDDEN",
"format": "string",
"description": "Optional comma-separated list of tool names to hide from tools/list."
},
{
"name": "NODE_TLS_REJECT_UNAUTHORIZED",
"format": "string",
"description": "Set to 0 only when you intentionally need to connect to a GitLab instance with invalid or self-signed TLS certificates."
},
{
"name": "GITLAB_CA_CERT_PATH",
"format": "filepath",
"description": "Optional path to a custom CA certificate file for self-managed GitLab instances."
},
{
"name": "GITLAB_MASKING_ENABLED",
"format": "string",
"default": "false",
"description": "Set to true to mask text tool results and returned errors using built-in or configured rules."
},
{
"name": "GITLAB_MASKING_CONFIG",
"format": "filepath",
"description": "Optional path to a response-masking JSON configuration file."
},
{
"name": "GITLAB_MASKING_POLICY_FILE",
"format": "filepath",
"description": "Optional protected server-owned JSON file containing managed masking policies."
},
{
"name": "GITLAB_MASKING_WORKSPACE_DIR",
"format": "filepath",
"description": "Directory used to resolve response-masking configuration paths."
}
]
}
],
"repository": {
"url": "https://github.com/zereight/gitlab-mcp",
"source": "github"
},
"websiteUrl": "https://zereight.github.io/gitlab-mcp/",
"description": "GitLab MCP server for projects, merge requests, issues, pipelines, wiki, releases, and more."
}
}