Homebrew
The formula is Formula/gitlab-mcp-server.rb in the jmrplens/homebrew-tap tap, and the release workflow regenerates it on every release with scripts/update-homebrew-tap.sh, from the same signed checksums.txt the release ships. It is a binary formula: an on_macos/on_linux block crossed with on_arm/on_intel picks the release asset for your platform (Apple Silicon or Intel on macOS, arm64 or x86_64 on Linux), Homebrew checks it against the SHA-256 pinned in the formula, and installs it as bin/gitlab-mcp-server under its prefix. Nothing compiles, and no dependencies are pulled in. From the first release after 3.1.0 the formula also installs LICENSE and THIRD_PARTY_NOTICES into the formula’s prefix ($(brew --prefix gitlab-mcp-server)).
Install
Section titled “Install”brew install jmrplens/tap/gitlab-mcp-serverThe fully qualified name taps jmrplens/tap on the way, so there is no separate brew tap step. The tap is at the current release, 3.2.0, with the asset URLs and hashes of that release.
Verify
Section titled “Verify”gitlab-mcp-server --versionprints gitlab-mcp-server 3.2.0 (commit: <commit>). That is also what the formula’s own test block runs. brew info gitlab-mcp-server shows the installed version and the formula’s caveats, which repeat the client configuration below. The formula published for 2.7.5 mentioned AUTO_UPDATE=false and --setup in those caveats; neither exists any more, the generator no longer emits those lines, and the live formula does not carry them.
Where the binary lands
Section titled “Where the binary lands”Homebrew installs into its prefix: /opt/homebrew on Apple Silicon, /usr/local on Intel macOS, and /home/linuxbrew/.linuxbrew on Linux, so the command is $(brew --prefix)/bin/gitlab-mcp-server. brew --prefix prints the one in use on your machine. Clients started from the desktop rather than from a shell do not always see Homebrew’s bin directory on their PATH, which is why the formula’s caveats and the snippet below use the absolute path.
Configure your client
Section titled “Configure your client”{ "mcpServers": { "gitlab": { "command": "/opt/homebrew/bin/gitlab-mcp-server", "env": { "GITLAB_TOKEN": "glpat-xxxxxxxxxxxxxxxxxxxx" } } }}Replace the command with your prefix if it is not /opt/homebrew, and add "GITLAB_URL": "https://gitlab.example.com" to env for a self-managed instance. With Claude Code the token goes in ~/.gitlab-mcp-server.env, which the server reads itself, and the registration names it nowhere: write a GITLAB_TOKEN=glpat-... line into that file with an editor, so the token stays out of shell history, then run claude mcp add gitlab -- gitlab-mcp-server. The per-client tabs are on the Quick Start.
Upgrade and uninstall
Section titled “Upgrade and uninstall”Homebrew manages upgrades; the binary never updates itself.
brew updatebrew upgrade gitlab-mcp-serverBecause the release workflow pushes the regenerated formula as part of every release, brew upgrade sees the new version once the release is out and the npm, PyPI and NuGet packages have been read back and checked against its checksums.txt; the tap waits for that check, so a release that is not fully out leaves the tap on the previous version. The formula carries a livecheck block (strategy github_latest) so Homebrew’s own tooling can tell when the tap falls behind. To remove it:
brew uninstall gitlab-mcp-serverbrew untap jmrplens/tap # optional: also forget the tapThese are the standard Homebrew commands; the formula adds nothing of its own to them. Remove the gitlab entry from your client’s configuration afterwards.