GitDeployHub

agostynah/gitlab-duo-mcp-bridge

github.com/agostynah/gitlab-duo-mcp-bridge ↗
Node.js API
14 environment variables found in .env.example

Set these on your host before deploying. Each platform has an “Environment Variables” section in the deploy flow.

  • DUO_CLI_COMMAND How to invoke the GitLab Duo CLI. The bridge runs: <DUO_CLI_COMMAND> <DUO_CLI_BASE_ARGS> <DUO_CLI_GOAL_FLAG> "<goal>" [<DUO_CLI_MODEL_FLAG>…
  • DUO_CLI_BASE_ARGS
  • DUO_CLI_GOAL_FLAG
  • DUO_CLI_MODEL_FLAG
  • DUO_CLI_EXTRA_ARGS Extra args appended to every invocation (space separated), e.g. "--quiet".
  • GITLAB_DUO_MODEL Optional model override passed via DUO_CLI_MODEL_FLAG (e.g. gpt_5_codex).
  • DUO_CLI_CWD Working directory Duo runs in (defaults to the bridge's cwd). The per-call `cwd` tool argument overrides this.
  • DUO_TIMEOUT_MS Timeout for a single Duo run, in milliseconds (default 120000 = 2 min).
  • DUO_MAX_OUTPUT_CHARS Max characters of raw Duo output kept in the structured `raw` field.
  • DUO_MAX_INLINE_GOAL_CHARS Max length (chars) of the prompt passed inline on the command line. Above this, the bridge writes the goal (including big diffs) to a temp…
  • DUO_TOOL_NAME Name the tool is registered under. Default `duo_review`. Some MCP clients reject dots in tool names, so the default avoids `duo.review`.
  • DUO_MOCK Set to 1/true to run in MOCK mode: returns a canned review WITHOUT calling Duo. Useful to wire up and test the bridge in your agent before…
  • GITLAB_TOKEN secret GitLab auth (passed through to the Duo CLI subprocess). Set these if your Duo CLI reads them from the environment.
  • GITLAB_BASE_URL
Alternative Fly.io Anything Dockerized — requires the Fly CLI.
macOS
brew install flyctl && fly launch --from https://github.com/agostynah/gitlab-duo-mcp-bridge
Linux
curl -L https://fly.io/install.sh | sh && fly launch --from https://github.com/agostynah/gitlab-duo-mcp-bridge
Windows (PowerShell)
iwr https://fly.io/install.ps1 -useb | iex; fly launch --from https://github.com/agostynah/gitlab-duo-mcp-bridge
Or deploy to a different host
← Try another repo