Releases: hampsterx/gemini-mcp-bridge
Release list
v0.8.0 - Deprecated, Gemini CLI retiring 2026-06-18
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
- Antigravity CLI is Google's successor (Go-based, includes Agent Skills, Hooks, Subagents, plugins). Not open source.
- Sibling bridges for other terminal agents: claude-mcp-bridge, codex-mcp-bridge.
Changes in 0.8.0
- README banner and migration pointers.
package.jsondescription 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
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
What's new
Added
changeModeonquerytool - opt-in flag that asks Gemini to emit structured**FILE: <path>:<start>-<end>**/===OLD===/===NEW===edit blocks. Parsed edits land on_meta.editsas a machine-applicable array, raw response stays inresponse. LegacyOLD:/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.appliedWritesis set andeditsis 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@mcpgallery) pick it up from there. mcpNameinpackage.json(io.github.hampsterx/gemini-mcp-bridge) - required for Registry ownership verification on publish.query-change-modesmoke 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 planand 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
What's new
Added
- Response chunking for
query,review, andsearch: 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-chunktool: retrieves cached follow-up chunks viacacheKeyand 1-basedchunkIndex.assesschange-kind classification:empty/code/mixed/non-code/generated. Doc-only diffs stay reviewable by default instead of being auto-dismissed as churn.assessguidance field: human-readable recommendation string tailored to the detected change kind and complexity.- Spawn pacing controls:
GEMINI_MIN_INVOCATION_GAP_MSenforces a minimum gap between CLI starts;GEMINI_SPAWN_JITTER_MAX_MSadds startup jitter. - Structured capacity-failure metadata on deep reviews: explicit 429 / 503 /
RESOURCE_EXHAUSTEDresponses 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.
structuredtool 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
What's new
Added
assesstool - Zero-cost diff analysis pre-flight. Runsgit diff --numstatlocally (no CLI spawn, no model call) and returns diff stats, complexity classification (trivial/moderate/complex), and a recommendedreviewdepth with estimated wall-clock time. Use beforereviewto set timeout expectations.depthparameter onreview- 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 scales120s + 15s * files, capped at 300s (240s fallback).deep(default): full agentic exploration with--yolo. Timeout scales240s + 45s * files, capped at 1800s (600s fallback).
scaleTimeoutForDepth,defaultTimeoutForDepth,resolveDepth- New exports for per-depth timeout and input resolution.
Changed
- BREAKING:
ReviewResult.modevalues -"agentic" | "quick"→"scan" | "focused" | "deep". Callers inspectingresult.modeneed 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(wasconsider quick: true). Scan timeouts no longer annotated. - Tool description on
review- Rewritten to explain the three depths and new timeout formulas.
Deprecated
quickparameter onreview- Superseded bydepth. Still works:quick: true→depth: "scan",quick: false→depth: "deep".depthwins 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
Added
- MCP tool annotations: Tools declare
readOnlyHint,destructiveHint,openWorldHint, andidempotentHintfor informed client permission/caching decisions - Execution metadata: All tool results include
executionTime,timedOut, andresolvedModelfields - 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
Added
- Stream-JSON output format: Switch from
--output-format jsonto--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.mjsfor testing tool functions directly without restarting the MCP client. Supports all four tools with configurable workingDirectory. - Resolved working directory: All tool results now include
resolvedCwdshowing 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()replacesparseGeminiOutput()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
Added
- Response length awareness: Optional
maxResponseLengthparameter (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_MODELenv var support for default model selection.- Auto-retry with fallback model on quota exhaustion (
GEMINI_FALLBACK_MODELenv var).
Changed
maxResponseLengthzod schemas enforce.int().positive().
npm: npm i gemini-mcp-bridge@0.2.3
v0.2.2
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
Changed
- Review prompts extracted from inline template literals to standalone markdown files in
prompts/, loaded at runtime vialoadPrompt().
Fixed
- Prompt placeholder replacement no longer corrupts diffs containing
{{word}}patterns (Handlebars, Go templates, etc.). loadPromptnow usesbasename()to prevent path traversal.
Added
- 9 tests for prompt template loading and placeholder substitution.