ต้นแบบ · เว็บนี้เป็นต้นแบบ แสดงข้อมูลจริง 100 ตัวจากทะเบียนทางการ ยังไม่ครบทุกตัว
PopNx MCPที่รวม MCP สำหรับคนใช้ AI · อธิบายเป็นภาษาคน

GitLab MCP Server

โดย zereightรุ่น 2.3.21i★ 2,085iรันบนเครื่อง
ชื่อใน registryio.github.zereight/gitlab-mcp

ภาพรวม

คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)

GitLab MCP server for projects, merge requests, issues, pipelines, wiki, releases, and more.

สามเสาของ PopNx MCP

สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน

ใช้ทำอะไรได้

ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry

  • การเชื่อมต่อ: รันบนเครื่อง
  • ช่องทาง (transport): stdio
  • หมวด: เครื่องมือนักพัฒนา
  • ต้องใส่ค่าเหล่านี้: GITLAB_PERSONAL_ACCESS_TOKEN, GITLAB_JOB_TOKEN

ติดตั้ง

เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง

ต้องเตรียมก่อน

  • npmติดตั้ง Node.js (มีคำสั่ง npx) ในเครื่อง

เปิด Claude Desktop → Settings → Developer → Edit Config แล้ววางค่านี้ในไฟล์ claude_desktop_config.json

{
  "mcpServers": {
    "gitlab": {
      "command": "npx",
      "args": [
        "-y",
        "@zereight/mcp-gitlab"
      ],
      "env": {
        "GITLAB_PERSONAL_ACCESS_TOKEN": "ใส่ค่าของคุณ",
        "GITLAB_PERSONAL_ACCESS_TOKEN_FILE": "ใส่ค่าของคุณ",
        "GITLAB_JOB_TOKEN": "ใส่ค่าของคุณ",
        "GITLAB_AUTH_COOKIE_PATH": "ใส่ค่าของคุณ",
        "GITLAB_USE_OAUTH": "ใส่ค่าของคุณ",
        "GITLAB_OAUTH_CLIENT_ID": "ใส่ค่าของคุณ",
        "GITLAB_OAUTH_TOKEN_SCRIPT": "ใส่ค่าของคุณ",
        "GITLAB_API_URL": "ใส่ค่าของคุณ",
        "GITLAB_ALLOWED_PROJECT_IDS": "ใส่ค่าของคุณ",
        "GITLAB_PERMISSION_MODE": "ใส่ค่าของคุณ",
        "GITLAB_TOOLSETS": "ใส่ค่าของคุณ",
        "GITLAB_TOOLS": "ใส่ค่าของคุณ",
        "GITLAB_DENIED_TOOLS_REGEX": "ใส่ค่าของคุณ",
        "GITLAB_TOOL_POLICY_APPROVE": "ใส่ค่าของคุณ",
        "GITLAB_TOOL_POLICY_HIDDEN": "ใส่ค่าของคุณ",
        "NODE_TLS_REJECT_UNAUTHORIZED": "ใส่ค่าของคุณ",
        "GITLAB_CA_CERT_PATH": "ใส่ค่าของคุณ",
        "GITLAB_MASKING_ENABLED": "ใส่ค่าของคุณ",
        "GITLAB_MASKING_CONFIG": "ใส่ค่าของคุณ",
        "GITLAB_MASKING_POLICY_FILE": "ใส่ค่าของคุณ",
        "GITLAB_MASKING_WORKSPACE_DIR": "ใส่ค่าของคุณ"
      }
    }
  }
}

พิมพ์คำสั่งนี้ใน Terminal

claude mcp add gitlab --env GITLAB_PERSONAL_ACCESS_TOKEN='ใส่ค่าของคุณ' --env GITLAB_PERSONAL_ACCESS_TOKEN_FILE='ใส่ค่าของคุณ' --env GITLAB_JOB_TOKEN='ใส่ค่าของคุณ' --env GITLAB_AUTH_COOKIE_PATH='ใส่ค่าของคุณ' --env GITLAB_USE_OAUTH='ใส่ค่าของคุณ' --env GITLAB_OAUTH_CLIENT_ID='ใส่ค่าของคุณ' --env GITLAB_OAUTH_TOKEN_SCRIPT='ใส่ค่าของคุณ' --env GITLAB_API_URL='ใส่ค่าของคุณ' --env GITLAB_ALLOWED_PROJECT_IDS='ใส่ค่าของคุณ' --env GITLAB_PERMISSION_MODE='ใส่ค่าของคุณ' --env GITLAB_TOOLSETS='ใส่ค่าของคุณ' --env GITLAB_TOOLS='ใส่ค่าของคุณ' --env GITLAB_DENIED_TOOLS_REGEX='ใส่ค่าของคุณ' --env GITLAB_TOOL_POLICY_APPROVE='ใส่ค่าของคุณ' --env GITLAB_TOOL_POLICY_HIDDEN='ใส่ค่าของคุณ' --env NODE_TLS_REJECT_UNAUTHORIZED='ใส่ค่าของคุณ' --env GITLAB_CA_CERT_PATH='ใส่ค่าของคุณ' --env GITLAB_MASKING_ENABLED='ใส่ค่าของคุณ' --env GITLAB_MASKING_CONFIG='ใส่ค่าของคุณ' --env GITLAB_MASKING_POLICY_FILE='ใส่ค่าของคุณ' --env GITLAB_MASKING_WORKSPACE_DIR='ใส่ค่าของคุณ' -- npx -y @zereight/mcp-gitlab

วางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json

{
  "mcpServers": {
    "gitlab": {
      "command": "npx",
      "args": [
        "-y",
        "@zereight/mcp-gitlab"
      ],
      "env": {
        "GITLAB_PERSONAL_ACCESS_TOKEN": "ใส่ค่าของคุณ",
        "GITLAB_PERSONAL_ACCESS_TOKEN_FILE": "ใส่ค่าของคุณ",
        "GITLAB_JOB_TOKEN": "ใส่ค่าของคุณ",
        "GITLAB_AUTH_COOKIE_PATH": "ใส่ค่าของคุณ",
        "GITLAB_USE_OAUTH": "ใส่ค่าของคุณ",
        "GITLAB_OAUTH_CLIENT_ID": "ใส่ค่าของคุณ",
        "GITLAB_OAUTH_TOKEN_SCRIPT": "ใส่ค่าของคุณ",
        "GITLAB_API_URL": "ใส่ค่าของคุณ",
        "GITLAB_ALLOWED_PROJECT_IDS": "ใส่ค่าของคุณ",
        "GITLAB_PERMISSION_MODE": "ใส่ค่าของคุณ",
        "GITLAB_TOOLSETS": "ใส่ค่าของคุณ",
        "GITLAB_TOOLS": "ใส่ค่าของคุณ",
        "GITLAB_DENIED_TOOLS_REGEX": "ใส่ค่าของคุณ",
        "GITLAB_TOOL_POLICY_APPROVE": "ใส่ค่าของคุณ",
        "GITLAB_TOOL_POLICY_HIDDEN": "ใส่ค่าของคุณ",
        "NODE_TLS_REJECT_UNAUTHORIZED": "ใส่ค่าของคุณ",
        "GITLAB_CA_CERT_PATH": "ใส่ค่าของคุณ",
        "GITLAB_MASKING_ENABLED": "ใส่ค่าของคุณ",
        "GITLAB_MASKING_CONFIG": "ใส่ค่าของคุณ",
        "GITLAB_MASKING_POLICY_FILE": "ใส่ค่าของคุณ",
        "GITLAB_MASKING_WORKSPACE_DIR": "ใส่ค่าของคุณ"
      }
    }
  }
}

วางในไฟล์ .vscode/mcp.json ของโปรเจกต์

{
  "servers": {
    "gitlab": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@zereight/mcp-gitlab"
      ],
      "env": {
        "GITLAB_PERSONAL_ACCESS_TOKEN": "ใส่ค่าของคุณ",
        "GITLAB_PERSONAL_ACCESS_TOKEN_FILE": "ใส่ค่าของคุณ",
        "GITLAB_JOB_TOKEN": "ใส่ค่าของคุณ",
        "GITLAB_AUTH_COOKIE_PATH": "ใส่ค่าของคุณ",
        "GITLAB_USE_OAUTH": "ใส่ค่าของคุณ",
        "GITLAB_OAUTH_CLIENT_ID": "ใส่ค่าของคุณ",
        "GITLAB_OAUTH_TOKEN_SCRIPT": "ใส่ค่าของคุณ",
        "GITLAB_API_URL": "ใส่ค่าของคุณ",
        "GITLAB_ALLOWED_PROJECT_IDS": "ใส่ค่าของคุณ",
        "GITLAB_PERMISSION_MODE": "ใส่ค่าของคุณ",
        "GITLAB_TOOLSETS": "ใส่ค่าของคุณ",
        "GITLAB_TOOLS": "ใส่ค่าของคุณ",
        "GITLAB_DENIED_TOOLS_REGEX": "ใส่ค่าของคุณ",
        "GITLAB_TOOL_POLICY_APPROVE": "ใส่ค่าของคุณ",
        "GITLAB_TOOL_POLICY_HIDDEN": "ใส่ค่าของคุณ",
        "NODE_TLS_REJECT_UNAUTHORIZED": "ใส่ค่าของคุณ",
        "GITLAB_CA_CERT_PATH": "ใส่ค่าของคุณ",
        "GITLAB_MASKING_ENABLED": "ใส่ค่าของคุณ",
        "GITLAB_MASKING_CONFIG": "ใส่ค่าของคุณ",
        "GITLAB_MASKING_POLICY_FILE": "ใส่ค่าของคุณ",
        "GITLAB_MASKING_WORKSPACE_DIR": "ใส่ค่าของคุณ"
      }
    }
  }
}

ค่าที่ต้องใส่เอง

  • GITLAB_PERSONAL_ACCESS_TOKEN ความลับ env
    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_CO…
  • GITLAB_PERSONAL_ACCESS_TOKEN_FILE env
    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…
  • GITLAB_JOB_TOKEN ความลับ env
    Optional GitLab CI job token to use instead of a personal access token when running inside GitLab CI.
  • GITLAB_AUTH_COOKIE_PATH env
    Optional path to a GitLab authentication cookie file for cookie-based authentication.
  • GITLAB_USE_OAUTH env
    Set to true to start with GitLab OAuth instead of a personal access token, job token, or cookie file.
  • GITLAB_OAUTH_CLIENT_ID env
    GitLab OAuth application ID. When GITLAB_USE_OAUTH=true, set this or GITLAB_OAUTH_TOKEN_SCRIPT.
  • GITLAB_OAUTH_TOKEN_SCRIPT env
    Command that prints an OAuth access token. When GITLAB_USE_OAUTH=true, set this or GITLAB_OAUTH_CLIENT_ID.
  • GITLAB_API_URL env
    GitLab API base URL. Use https://gitlab.com/api/v4 for GitLab.com or your self-managed GitLab API URL.
  • GITLAB_ALLOWED_PROJECT_IDS env
    Optional comma-separated list of GitLab project IDs that this server is allowed to access.
  • GITLAB_PERMISSION_MODE env
    Tool exposure. Allowed values are readonly, modify, and full. Unset uses full. readonly keeps read-only tools. modify blocks delete and teardown tools.
  • GITLAB_TOOLSETS env
    Optional comma-separated list of toolsets to enable, such as projects, issues, merge_requests, pipelines, releases, users, groups, wiki, or search.
  • GITLAB_TOOLS env
    Optional comma-separated list of individual tool names to add on top of enabled toolsets.
  • GITLAB_DENIED_TOOLS_REGEX env
    Optional regular expression used to hide matching tools from the server.
  • GITLAB_TOOL_POLICY_APPROVE env
    Optional comma-separated list of tool names that require explicit approval before execution.
  • GITLAB_TOOL_POLICY_HIDDEN env
    Optional comma-separated list of tool names to hide from tools/list.
  • NODE_TLS_REJECT_UNAUTHORIZED env
    Set to 0 only when you intentionally need to connect to a GitLab instance with invalid or self-signed TLS certificates.
  • GITLAB_CA_CERT_PATH env
    Optional path to a custom CA certificate file for self-managed GitLab instances.
  • GITLAB_MASKING_ENABLED env
    Set to true to mask text tool results and returned errors using built-in or configured rules.
  • GITLAB_MASKING_CONFIG env
    Optional path to a response-masking JSON configuration file.
  • GITLAB_MASKING_POLICY_FILE env
    Optional protected server-owned JSON file containing managed masking policies.
  • GITLAB_MASKING_WORKSPACE_DIR env
    Directory used to resolve response-masking configuration paths.

ค่าที่ติดป้ายความลับคือกุญแจของบัญชีคุณ อย่าส่งให้ใคร และอย่าวางในแชต

ค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README

ผลตรวจเบื้องต้นi

เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 5 พ.ย. 2569

  • ✓ ผ่าน

    ตัวตนผู้ทำตรงกับ repo

    ชื่อใน registry ยืนยันด้วยบัญชี GitHub zereight ซึ่งเป็นเจ้าของ repo

  • ✓ ผ่าน

    ยังมีคนดูแล

    มีการแก้โค้ดล่าสุด วันนี้

  • ✓ ผ่าน

    มีสัญญาอนุญาต (license)

    ใช้ MIT

  • – ไม่เกี่ยว

    endpoint ตอบ

    ตัวนี้รันบนเครื่องคุณ ไม่มี endpoint บนอินเทอร์เน็ต

  • – ไม่เกี่ยว

    ล็อกอินแบบ OAuth

    ตัวนี้รันบนเครื่อง ใช้ค่าที่ตั้งในเครื่องแทน

  • … ยังไม่ตรวจ

    คำอธิบายเครื่องมือไม่มีคำสั่งแอบแฝง

    ต้องอ่านรายการเครื่องมือของ server ก่อน จะเริ่มตรวจในขั้นถัดไป

เทียบกับตัวอื่นในหมวด เครื่องมือนักพัฒนาi

  • ดาวมากกว่า 62% ของอีก 13 ตัวในหมวดนี้
  • ส่งรุ่นใหม่เข้า registry ล่าสุดกว่า 92% ของอีก 13 ตัวในหมวดนี้
  • ผลตรวจเบื้องต้นดีกว่าหรือเท่ากับ 100% ของอีก 13 ตัวในหมวดนี้

เทียบเฉพาะ server ที่อยู่ในต้นแบบนี้ ไม่ใช่ทั้ง registry

คำถามที่พบบ่อย

GitLab MCP Server ปลอดภัยไหม?

จากการตรวจเบื้องต้นของเรา ผ่าน 3 จาก 3 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น

ต้องใช้กุญแจหรือรหัสอะไรบ้าง?

ต้องใส่ค่าเหล่านี้: GITLAB_PERSONAL_ACCESS_TOKEN, GITLAB_JOB_TOKEN

ตัวนี้รันบนเครื่องหรือบนคลาวด์?

รันบนเครื่องของคุณ โปรแกรม AI จะเปิด server ขึ้นมาเองเมื่อใช้ ข้อมูลไม่ต้องผ่านเซิร์ฟเวอร์ของผู้ทำ (ยกเว้นตัวที่ไปเรียกบริการออนไลน์ต่อ)

ยังมีคนดูแลอยู่ไหม?

repo บน GitHub มีการแก้โค้ดล่าสุด วันนี้ และส่งรุ่นล่าสุด (2.3.21) เข้า registry เมื่อวาน

ใช้กับโปรแกรมไหนได้บ้าง?

โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต้องมี Node.js, Docker ในเครื่องด้วย

มีตัวไหนใช้แทนได้บ้าง?

ในหมวดเดียวกันมี GitHub, Desktop Commander, Cloudflare MCP

ตัวที่ใช้แทนได้

server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว

อ่านการ์ด:★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า registryi

GitHub

โดย github

server ทางการของ GitHub ให้ AI อ่านและจัดการโค้ด issue และ pull request ในบัญชีของคุณได้ ใช้ผ่านคลาวด์ของ GitHub หรือรันในเครื่องด้วย Docker ก็ได้

บนเครื่องหรือคลาวด์★ 34,245MITอัปเดต เมื่อวานซืน

Desktop Commander

โดย wonderwhy-er

MCP server for terminal commands, file operations, and process management

รันบนเครื่อง★ 10,225MITอัปเดต 14 วันที่ผ่านมา

Cloudflare MCP

โดย cloudflare

Cloudflare MCP servers

รันบนคลาวด์★ 4,446Apache-2.0อัปเดต 14 เดือนที่ผ่านมา

README จากผู้ทำ

เปิดอ่าน README

ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ

GitLab MCP Server

English | 한국어 | 简体中文 | Português (Brasil)

📖 [Documentation →](https://zereight.github.io/gitlab-mcp/) · llms.txt · llms-full.txt

Default: 40 tools (38 core + discover_tools + help). 288 tools exist in total (285 in toolsets + execute_graphql + discover_tools + help). Start lean; call discover_tools to activate more for this session.

Token budget: MCP clients send the whole tools/list to the model at session start. Keep the default (~40 tools, ~12k schema tokens). Call discover_tools to activate a category for this session (session-only; with OAUTH_STATELESS_MODE=true persist a named GITLAB_TOOLSETS list), or use Skill + CLI and skip MCP schemas. Do not set `GITLAB_TOOLSETS=all` — it loads ~all tools and costs ~73k schema tokens. See tools/list size and comparison.

Install the zereight-mcp-gitlab binary first with npm install -g @zereight/mcp-gitlab, or Homebrew brew tap zereight/gitlab-mcp https://github.com/zereight/gitlab-mcp and brew install zereight/gitlab-mcp/zereight-mcp-gitlab. Official MCP Registry listing: io.github.zereight/gitlab-mcp. One-liner: npx -y @zereight/mcp-gitlab@latest.

Without → With
Without this MCPWith this MCP
Paste MR URLs and diffs into chatlist_merge_request_changed_files → batched get_merge_request_file_diff
Hunt job logs in the GitLab UIget_pipeline_job_output with pagination
Re-explain the project path every turnproject_id=group%2Fproject and merge_request_iid=123
Three install paths
PathWhenHow
Local IDECursor, Claude Code, Codex on your machinestdio + PAT or local OAuth
Shared HTTPTeam or hosted MCPStreamable HTTP URL + remote auth or MCP OAuth
Claude.aiClaude web connectorsPublic HTTPS + GITLAB_MCP_OAUTH
Install

Install the binary first (npm install -g @zereight/mcp-gitlab, or Homebrew brew tap zereight/gitlab-mcp https://github.com/zereight/gitlab-mcp then brew install zereight/gitlab-mcp/zereight-mcp-gitlab). Read the token without echo:

read -rs GITLAB_PERSONAL_ACCESS_TOKEN && export GITLAB_PERSONAL_ACCESS_TOKEN
# Claude Code

claude mcp add gitlab --transport stdio --scope local --env GITLAB_PERSONAL_ACCESS_TOKEN="$GITLAB_PERSONAL_ACCESS_TOKEN" --env GITLAB_API_URL=https://gitlab.com/api/v4 -- zereight-mcp-gitlab

Codex

codex mcp add gitlab --env GITLAB_PERSONAL_ACCESS_TOKEN="$GITLAB_PERSONAL_ACCESS_TOKEN" --env GITLAB_API_URL=https://gitlab.com/api/v4 -- zereight-mcp-gitlab

Other clients: VS Code · GitHub Copilot · JSON clients · Cursor details

Agent paste-prompt

Copy this into an agent that can edit MCP config:

Install the GitLab MCP server (@zereight/mcp-gitlab) for this workspace.

Binary: zereight-mcp-gitlab (npm i -g @zereight/mcp-gitlab, or npx -y @zereight/mcp-gitlab@latest). Auth: GITLAB_PERSONAL_ACCESS_TOKEN plus GITLAB_API_URL=https://gitlab.com/api/v4 (or GITLAB_USE_OAUTH=true). Local: claude mcp add gitlab --transport stdio --scope local --env GITLAB_PERSONAL_ACCESS_TOKEN="$GITLAB_PERSONAL_ACCESS_TOKEN" --env GITLAB_API_URL=https://gitlab.com/api/v4 -- zereight-mcp-gitlab Or: codex mcp add gitlab --env GITLAB_PERSONAL_ACCESS_TOKEN="$GITLAB_PERSONAL_ACCESS_TOKEN" --env GITLAB_API_URL=https://gitlab.com/api/v4 -- zereight-mcp-gitlab Cursor: use the README deeplink or docs/clients/cursor.md. Remote HTTP: point the client at https://mcp.example.com/mcp (Streamable HTTP). Claude.ai needs GITLAB_MCP_OAUTH on that host. Default list: 40 tools (38 core + discover_tools + help). Call discover_tools to expand. Do not set GITLAB_TOOLSETS=all (loads ~all schemas, ~73k tokens). Do not enable the api toolset unless you accept its bypass risk. Equal non-MCP path: npx skills add zereight/gitlab-mcp --skill gitlab-mcp-skill plus the zereight-mcp-gitlab CLI.

Remote HTTP

First-class option for a hosted or self-hosted server. Point the client at a Streamable HTTP URL:

{

"mcpServers": { "gitlab": { "type": "http", "url": "https://mcp.example.com/mcp" } } }

  • Hosted / Claude.ai: GITLAB_MCP_OAUTH=true on the server (see MCP OAuth)
  • Per-user PAT headers: REMOTE_AUTHORIZATION=true (see Remote Authorization)
  • Local Docker examples are in Usage
Skill + CLI (no MCP required)

Skill + CLI is an equal path, not a fallback. Same workflows, full payloads in a terminal, no MCP registration.

npx skills add zereight/gitlab-mcp --skill gitlab-mcp-skill

zereight-mcp-gitlab user whoami zereight-mcp-gitlab mr list

See CLI without MCP and skills/gitlab-mcp/.

MCP vs Human CLI
Use MCP whenUse the CLI when
The agent needs structured tools in chatYou need the full payload (diffs, logs, artifacts)
jmespath or compact results are enoughGITLAB_MCP_COMPACT_RESULTS is on and you want the rest in a terminal
You already registered the serverYou have a PAT or ran auth and do not want MCP

Human CLI is never compacted. Destructive tools and GITLAB_TOOL_POLICY_APPROVE tools need --yes.

Tips

project_id is a numeric ID or a URL-encoded path. Example: group group, project project, merge request !123 → project_id=group%2Fproject, merge_request_iid=123. Nested groups use %2F between every segment (group%2Fsubgroup%2Fproject).

FAQ

How do I authenticate? Local desktop: GITLAB_PERSONAL_ACCESS_TOKEN (or GITLAB_PERSONAL_ACCESS_TOKEN_FILE) is the simplest. Local OAuth is GITLAB_USE_OAUTH=true. Remote Claude.ai uses GITLAB_MCP_OAUTH. Multi-user HTTP uses REMOTE_AUTHORIZATION and a per-request token header.

Why do I only see ~40 tools? The default core toolset is 38 tools plus always-on discover_tools and help. That is intentional: a client sends every listed schema to the model up front. Call discover_tools with no args to list categories, then pass a category (pipelines, wiki, …) to activate it for this session. Session-only; with OAUTH_STATELESS_MODE=true persist a named GITLAB_TOOLSETS list. Do not set `GITLAB_TOOLSETS=all` — it loads ~all schemas (~73k tokens) and still does not enable api.

Local OAuth vs MCP OAuth vs remote auth? Local OAuth opens a browser on the same machine as the server. MCP OAuth is for a public HTTPS server and clients such as Claude.ai. Remote authorization forwards the caller's PAT or job token; there is no OAuth dance.

How do I shrink huge replies? Pass jmespath on any tool call. Or set GITLAB_MCP_COMPACT_RESULTS=true so oversized MCP replies become a preview plus a CLI command. Use the CLI when you need the full payload.

Why is the `api` toolset dangerous? gitlab_api_request bypasses group/project allowlists, other tool filters, and per-tool safety checks. Prompt injection can drive it. Enable it only by listing api in GITLAB_TOOLSETS. all, discover_tools, and GITLAB_TOOLS do not.

Cursor rule / CLAUDE.md snippet
GitLab merge requests, issues, and pipelines go through this MCP (@zereight/mcp-gitlab).

Start with the default core tools. Call discover_tools to expand. Do not set GITLAB_TOOLSETS=all. Prefer list_merge_request_changed_files, then batched get_merge_request_file_diff. Use jmespath or compact results; use the CLI for full diffs and job logs.

@zereight/mcp-gitlab

Agent-workflow-optimized GitLab MCP — manage projects, merge requests, issues, pipelines, wiki, releases, tags, milestones, and more through stdio, SSE, and Streamable HTTP.

Supports PAT, OAuth, read-only mode, dynamic API URLs, and remote authorization for VS Code, Claude, Cursor, Copilot, and other MCP clients.

Why use this GitLab MCP?
  • Default 40 tools (38 `core` + `discover_tools` + `help`); 288 total — start lean; call discover_tools to activate more without CQRS-style grouping. GITLAB_TOOLSETS=all loads ~all schemas (~73k tokens); prefer discover-on-demand or Skill + CLI
  • MR 2-step review — list_merge_request_changed_files → batched get_merge_request_file_diff
  • Agent Skill built in — workflow guidance in skills/gitlab-mcp/
  • Flexible auth — Personal Access Token, local OAuth2 browser flow, MCP OAuth proxy, and per-request remote authorization
  • Multiple transports — stdio for local clients, SSE for legacy clients, and Streamable HTTP for modern remote deployments
  • Client-friendly setup — examples for Claude Code, Codex, Antigravity, OpenCode, Copilot, Cline, Roo Code, Cursor, Kilo Code, and Amp Code
  • Self-hosted ready — works with custom GitLab instances, proxy settings, and dynamic API URL routing
  • JMESPath result filtering — optional jmespath on tool calls (see tools/list) shrinks JSON results without changing GitLab API requests; when response masking is enabled, JMESPath runs on masked data.
How we compare
@zereight/mcp-gitlabGitLab MCP A (community CQRS-style)GitLab official MCP server
Best forAI agent workflowsEnterprise multi-instance / grouped toolsBuilt into GitLab, no separate install
Tool model288 tools: 285 in toolsets + execute_graphql + discover_tools + help~50–60 grouped browse_* / manage_* tools

ตัดมาแค่ช่วงต้น อ่านต่อใน repo

ถาม PopNx