Conversation
Replace `glab mcp serve` with `@zereight/mcp-gitlab` (v2.0.34) for the GitLab MCP server. The old server had multiple issues: CWD git remote coupling, response body swallowing, zero per-field schema descriptions, and 172+ tools with bare types. The new server: - Calls GitLab REST API directly (no CWD dependency) - Has flat, descriptive parameter schemas on every tool - Supports toolset filtering via GITLAB_TOOLSETS (7 toolsets enabled) - Supports custom host via GITLAB_API_URL Package and integration: - Add Nix package (buildNpmPackage) for air-gapped/devvm environments - Add overlay entry in flake.nix - Self-configuring auth: reads PAT from glab CLI config, falls back to agenix secret file - Update Claude Code permissions for new tool name patterns - Update instructions with usage guidance
…em to 2026.1.26 mcp-server-github v0.32.0 includes PR #2130 which gracefully handles numeric parameters passed as strings, fixing the type coercion issue where Claude sends "60" (string) instead of 60 (number) for pullNumber and similar fields. mcp-server-filesystem 2026.1.26 is a minor monorepo update. mcp-server-git remains at 2026.1.14 (already latest on PyPI).
12 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
glab mcp servewith@zereight/mcp-gitlab(v2.0.34) as the GitLab MCP server, fixing multiple issues with the old server: CWD git remote coupling (couldn't do cross-repo operations), response body swallowing (glab apireturned only pagination metadata), zero per-field schema descriptions, and 172+ tools with bare types consuming ~25k context tokenspackages/mcp/mcp-server-gitlab) usingbuildNpmPackagefor air-gapped / devvm environments — the binary and all node_modules are pre-built in the Nix store, nonpxor npm registry needed at runtimepkgs.mcp-server-gitlab) following the same pattern asmcp-server-githubandmcp-server-filesystemglab config get token --host <host>(using glab CLI's own config), falling back to an agenix secret file for hosts without glab CLI (devvm, NixOS servers)GITLAB_TOOLSETSenv var: only 7 toolsets enabled (branches, issues, labels, merge_requests, pipelines, projects, repositories), excluding wiki, milestones, releases, and users to reduce context overheadmcp__GitLab__glab_*→ 29 newmcp__GitLab__*covering all write operations)project_idas URL-encoded pathmcp-server-githubv0.29.0 → v0.32.0, fixing the numeric type coercion issue (#2044 / #2130) where Claude sends"60"(string) instead of60(number) forpullNumberand similar fieldsmcp-server-filesystem2026.1.14 → 2026.1.26 (minor monorepo update)mcp-server-gitremains at 2026.1.14 (already latest on PyPI)Architecture
glab mcp servewraps theglabCLI, which was designed for interactive terminal use and assumes CWD context.@zereight/mcp-gitlabcalls the GitLab REST API directly, so it has no CWD dependency and returns clean structured responses. The old server had transport-level bugs (response body swallowing) that no amount of prompting could fix.@zereight/mcp-gitlab: 1,023+ GitHub stars, most maintained GitLab MCP server. Key differentiators vs alternatives: toolset filtering (GITLAB_TOOLSETS), proxy support (HTTP_PROXY/HTTPS_PROXY/NO_PROXY), tool deny regex, read-only mode, and rich per-field schema descriptions. Evaluated againstyoda-digital/mcp-gitlab-server(42 stars, no filtering),greenfinity/gitlab-mcp(lightweight but fewer features), andttpears/gitlab-mcp(2 stars, different auth model).glab config get host→glab config get token --host $host→ agenix secret file. This is self-configuring — no need to thread agitlabHostparameter through all 3 consumer modules (claude-code, codex, cursor). Mirrors the GitHub MCP wrapper pattern (gh auth token→ agenix fallback).buildNpmPackagewithfetchFromGitHub+npmDepsHash. ThepostInstallcreates amakeBinaryWrapperpointingnodeat the builtbuild/index.jsentry point, identical to themcp-server-filesystempattern."60"→60before schema validation. Also includes context optimizations forget_files,list_pull_requests,list_issues, and other endpoints.Test plan
nix fmtpasses on all modified Nix filesstatix checkpasses (no anti-patterns)deadnix --failpasses (no unused bindings)mcp-server-gitlab,mcp-server-github,mcp-server-filesystem)mcp-server-gitlabbinary starts and connects to GitLab instanceget_merge_requestreturns full description and metadata (previously failed with bothglab mr viewandglab api)nix flake checkpasses (CI)nix build '.#homeConfigurations.hakula-linux.activationPackage'succeeds (CI)nix build '.#darwinConfigurations.hakula-macbook.system'succeeds (CI)