Skip to content
This repository was archived by the owner on May 21, 2026. It is now read-only.

Releases: hampsterx/gemini-mcp-bridge

v0.8.0 - Deprecated, Gemini CLI retiring 2026-06-18

Choose a tag to compare

@hampsterx hampsterx released this 21 May 04:33

Deprecated and unmaintained

Google is transitioning Gemini CLI to Antigravity CLI on 2026-06-18. After that date, Gemini CLI stops serving Google AI Pro, Ultra, and free-tier (Gemini Code Assist for individuals) accounts. Enterprise Gemini Code Assist Standard/Enterprise licenses retain access.

Because this bridge wraps Gemini CLI as a subprocess, it stops working for individual users on the same date. This is the final release. The npm package will be marked deprecated and this repository archived shortly after publish.

Migration

Changes in 0.8.0

  • README banner and migration pointers.
  • package.json description prefixed [DEPRECATED] for npmjs.com listings.
  • No code changes; existing installs continue to function until 2026-06-18.

Full Changelog: v0.7.0...v0.8.0

v0.7.0

Choose a tag to compare

@hampsterx hampsterx released this 26 Apr 04:47
ae5042d

What's Changed

  • fix(server.json): shorten description to meet MCP Registry 100-char limit by @hampsterx in #32
  • refactor: adopt AGENTS.md as canonical agent instructions by @hampsterx in #33
  • feat!: drop review and assess tools (ADR-001) by @hampsterx in #38

Full Changelog: v0.6.0...v0.7.0

v0.6.0

Choose a tag to compare

@hampsterx hampsterx released this 20 Apr 23:33

What's new

Added

  • changeMode on query tool - opt-in flag that asks Gemini to emit structured **FILE: <path>:<start>-<end>** / ===OLD=== / ===NEW=== edit blocks. Parsed edits land on _meta.edits as a machine-applicable array, raw response stays in response. Legacy OLD: / NEW: markers still accepted per-block.
  • Change-mode write guardrail - pre/post-spawn snapshot of tracked-file mtime+size and git status --porcelain. If Gemini mutates files during the spawn, _meta.appliedWrites is set and edits is omitted so callers can't re-apply half-applied state.
  • MCP Registry manifest (server.json) - registers the bridge at registry.modelcontextprotocol.io. Downstream aggregators (PulseMCP, FindMCP, VS Code @mcp gallery) pick it up from there.
  • mcpName in package.json (io.github.hampsterx/gemini-mcp-bridge) - required for Registry ownership verification on publish.
  • query-change-mode smoke target - node scripts/smoke-test.mjs query-change-mode <repo> exercises the full change-mode path end-to-end.

Notes

  • Change mode is text-only for v1 (image files rejected) and requires a git working directory (the guardrail needs git ls-files / git status).
  • Change mode spawns without --approval-mode plan and without --yolo: plan mode refuses to emit edit blocks on CLI 0.38.0. The snapshot guardrail is the safety net against the default-mode write capability.

Full Changelog: v0.5.0...v0.6.0

v0.5.0

Choose a tag to compare

@hampsterx hampsterx released this 19 Apr 20:29

What's new

Added

  • Response chunking for query, review, and search: oversized responses now return chunk 1 plus cache metadata (10-min TTL, max 50 entries, logical-boundary splits) instead of risking MCP client truncation.
  • fetch-chunk tool: retrieves cached follow-up chunks via cacheKey and 1-based chunkIndex.
  • assess change-kind classification: empty / code / mixed / non-code / generated. Doc-only diffs stay reviewable by default instead of being auto-dismissed as churn.
  • assess guidance field: human-readable recommendation string tailored to the detected change kind and complexity.
  • Spawn pacing controls: GEMINI_MIN_INVOCATION_GAP_MS enforces a minimum gap between CLI starts; GEMINI_SPAWN_JITTER_MAX_MS adds startup jitter.
  • Structured capacity-failure metadata on deep reviews: explicit 429 / 503 / RESOURCE_EXHAUSTED responses surface as structured metadata so callers can decide whether to back off or downgrade depth.

Changed

  • Server response formatting: prose-style tool responses flow through a shared formatter that appends metadata and applies chunking consistently.
  • structured tool intentionally unchunked: preserves machine-consumable JSON output.
  • Deep review no longer falls back internally on capacity errors: returns structured capacity metadata instead of retrying. Other tools and review depths keep existing fallback behavior.

Full Changelog: v0.4.0...v0.5.0

v0.4.0

Choose a tag to compare

@hampsterx hampsterx released this 14 Apr 04:22

What's new

Added

  • assess tool - Zero-cost diff analysis pre-flight. Runs git diff --numstat locally (no CLI spawn, no model call) and returns diff stats, complexity classification (trivial/moderate/complex), and a recommended review depth with estimated wall-clock time. Use before review to set timeout expectations.
  • depth parameter on review - Three tiers replace the binary quick/agentic split:
    • scan: diff-only, single-pass, no repo exploration. Constant 180s timeout.
    • focused: diff + CLI reads changed files in plan mode (no shell). Timeout scales 120s + 15s * files, capped at 300s (240s fallback).
    • deep (default): full agentic exploration with --yolo. Timeout scales 240s + 45s * files, capped at 1800s (600s fallback).
  • scaleTimeoutForDepth, defaultTimeoutForDepth, resolveDepth - New exports for per-depth timeout and input resolution.

Changed

  • BREAKING: ReviewResult.mode values - "agentic" | "quick""scan" | "focused" | "deep". Callers inspecting result.mode need to update. Pre-1.0 mechanically allows a minor bump; called out explicitly.
  • Deep (previously agentic) timeout scaling - Per-file budget raised 30s → 45s and base raised 180s → 240s. A 10-file diff goes from 480s to 690s.
  • Partial response hint - Timeout annotations now read consider depth: "scan" or narrow the base (was consider quick: true). Scan timeouts no longer annotated.
  • Tool description on review - Rewritten to explain the three depths and new timeout formulas.

Deprecated

  • quick parameter on review - Superseded by depth. Still works: quick: truedepth: "scan", quick: falsedepth: "deep". depth wins when both are set.

Note

Focused mode containment is prompt-driven, not CLI-enforced. Plan mode removes shell access but does not scope read_file / grep_search / list_directory to changed files — Gemini could still read any non-gitignored file. Containment relies on the prompt instruction plus reduced tool surface.

Full Changelog: v0.3.0...v0.4.0

v0.2.5

Choose a tag to compare

@hampsterx hampsterx released this 08 Apr 03:21

Added

  • MCP tool annotations: Tools declare readOnlyHint, destructiveHint, openWorldHint, and idempotentHint for informed client permission/caching decisions
  • Execution metadata: All tool results include executionTime, timedOut, and resolvedModel fields
  • Rich tool descriptions: Inline parameter docs and usage examples for clients that display them
  • Progress heartbeats: Long-running operations emit MCP progress notifications
  • MCP transport wiring tests and CI smoke step (npm run smoke:ci)

See CHANGELOG.md for full details.

v0.2.4

Choose a tag to compare

@hampsterx hampsterx released this 05 Apr 02:33

Added

  • Stream-JSON output format: Switch from --output-format json to --output-format stream-json (NDJSON) for progressive capture. Timeouts now return partial responses instead of generic error messages.
  • Smoke test script: npm run smoke / scripts/smoke-test.mjs for testing tool functions directly without restarting the MCP client. Supports all four tools with configurable workingDirectory.
  • Resolved working directory: All tool results now include resolvedCwd showing the actual directory used after git root resolution and path validation.
  • Latency budget documentation: Document ~16s CLI cold start, per-layer timing breakdown, and implications for timeout configuration.

Changed

  • parseStreamJson() replaces parseGeminiOutput() as the primary parser, with automatic fallback to legacy JSON parsing for older CLI versions.
  • tryParsePartial() extracts partial content from NDJSON on timeout, forwarding stderr for fallback parsing.
  • Smoke test timeouts aligned with real CLI cold start times (60-120s).

Full Changelog: v0.2.3...v0.2.4

v0.2.3

Choose a tag to compare

@hampsterx hampsterx released this 30 Mar 04:15

Added

  • Response length awareness: Optional maxResponseLength parameter (in words) on query, search, and review tools. Appends a soft length instruction to the prompt.
  • Conciseness guidance in review and search prompt templates to reduce verbose output by default.
  • GEMINI_DEFAULT_MODEL env var support for default model selection.
  • Auto-retry with fallback model on quota exhaustion (GEMINI_FALLBACK_MODEL env var).

Changed

  • maxResponseLength zod schemas enforce .int().positive().

npm: npm i gemini-mcp-bridge@0.2.3

v0.2.2

Choose a tag to compare

@hampsterx hampsterx released this 30 Mar 04:15

What's Changed

  • feat: add search tool and image support for query by @hampsterx in #5
  • feat: add structured output tool with JSON Schema validation by @hampsterx in #6

Full Changelog: v0.2.1...0.2.2

v0.2.1

Choose a tag to compare

@hampsterx hampsterx released this 18 Mar 02:49

Changed

  • Review prompts extracted from inline template literals to standalone markdown files in prompts/, loaded at runtime via loadPrompt().

Fixed

  • Prompt placeholder replacement no longer corrupts diffs containing {{word}} patterns (Handlebars, Go templates, etc.).
  • loadPrompt now uses basename() to prevent path traversal.

Added

  • 9 tests for prompt template loading and placeholder substitution.