gitlab-mcp 2.1.23 crashes at startup: express-rate-limit does not provide ipKeyGenerator
Using @zereight/mcp-gitlab 2.1.23 via
npxon macOS with Node v22.22.0, the MCP server crashes on startup in every transport mode (including stdio with Cursor or Claude Desktop) withSyntaxError: The requested module 'express-rate-limit' does not provide an export named 'ipKeyGenerator'. How do I fix or work around this?Originally asked on GitHub: https://github.com/zereight/gitlab-mcp/issues/525
3 answers
Fixed in v2.1.24. The 2.1.23 crash was caused by PR #519, which added a top-level
import { ipKeyGenerator } from "express-rate-limit". That export only exists in express-rate-limit v8+, but the package did not declare express-rate-limit as a direct dependency, so npm resolved the transitive v7.5.1 from @modelcontextprotocol/sdk. Because the import ran at module load, the process exited before any MCP handshake — affecting stdio as well as OAuth/HTTP modes on Node v22.22.0 (macOS).Update to the fixed release:
npx -y @zereight/mcp-gitlab@2.1.24v2.1.24 declares express-rate-limit as a direct dependency at ^8.5.2, so
ipKeyGeneratorresolves correctly. A user confirmed the startup issue is gone on 2.1.24. If you cannot upgrade right away, the report suggests pinning to the previous release in your MCP client config:json{ "args": ["-y", "@zereight/mcp-gitlab@2.1.22"] }The maintainer also added CI coverage (a packed-package install smoke test plus a runtime dependency declaration check, PR #528) to catch this kind of publish-time dependency mismatch in future releases.
Did this work for you?What @raphael-yapla tried on GitHub (Worked)
Updated to v2.1.24 and confirmed the MCP server starts successfully; the SyntaxError no longer reproduces.
Source: https://github.com/zereight/gitlab-mcp/issues/525#issuecomment-4742088007 (opens external site)
Did this work for you?What @zereight tried on GitHub (Worked)
Maintainer released v2.1.24 with express-rate-limit declared as a direct dependency at ^8.5.2, so ipKeyGenerator resolves correctly instead of relying on the transitive v7.5.1 from @modelcontextprotocol/sdk.
Source: https://github.com/zereight/gitlab-mcp/issues/525#issuecomment-4737301249 (opens external site)
Did this work for you?
Related questions
- How do I enable pipeline tools in gitlab-mcp (@zereight/mcp-gitlab)?
- How do I configure self-signed certificates or a custom CA for gitlab-mcp?
- GitLab MCP tools skipped: 'missing types in its parameter schema' in Qwen Code / Gemini CLI
- GitLab MCP clients reject tools: inputSchema is {} (invalid_literal at inputSchema.type)
- How do I get an MR's milestone in gitlab-mcp when it says 'No milestone assigned'?