Other formats agents might prefer:
markdownjsonllms.txt

Agent? You probably want markdown or json, or Pod over MCP.

Reported issues for gemini-mcp

Pod holds 19 of 22 problems reported by people outside the maintainer team. Issues filed by the project's own owners, members and collaborators are excluded entirely — a maintainer's release checklist is not a warning to a prospective user.

Back to gemini-mcp.

Most discussed

Auto-review follow-ups for PR #157: feat(video): uri delivery, chained-404 diagnosis, and recovery of lost generations

Tracking auto-review follow-ups for #157 (verdict: warn).

🟡 Nits

  • src/client.ts downloadMedia() follows redirects with x-goog-api-key attached and validates only the first hop against MEDIA_URI_HOST — adopt fetch-image.ts's redirect: 'manual' per-hop revalidation (and add a byte cap instead of an unbounded arrayBuffer())
  • src/client.ts extractInteraction()'s if (part.data || part.uri) guard swallows a text part that also carries a uri, s

Read the thread · 2026-08-22 · closed · external user · 1 comment

Auto-review follow-ups for PR #122: feat(media): survive expired links, partial batch failures, and replayed results

Tracking auto-review follow-ups for #122 (verdict: warn).

🟡 Nits

  • src/jobs.ts refreshMedia indexes refreshed by filtered position but applies it to entries[i] — an entry without r2_key shifts every later assignment and truncates the flat images list; map over entries directly
  • src/tools/files.ts advertises the hosted-only r2_key source on stdio (schema describe + zero-source error message) where it always fails with a misleading

Read the thread · 2026-07-30 · closed · external user · 1 comment

Auto-review follow-ups for PR #111: feat(images): reference images by URL or Files API uri instead of base64

Tracking auto-review follow-ups for #111 (verdict: warn).

🟡 Nits

  • isPrivateIpv6 in src/fetch-image.ts:140 does not extract the mapped v4 from the NAT64 well-known prefix 64:ff9b::/96 or the IPv4-translated prefix ::ffff:0:0:0/96, so [64:ff9b::7f00:1] and [::ffff:0:7f00:1] are not refused (defense-in-depth only — neither routes without a NAT64 translator, and RFC 6052 §3.1 forbids non-global v4 through the well-known prefix)

When addressing

Read the thread · 2026-07-29 · closed · external user · 1 comment

Auto-review follow-ups for PR #107: ci: convert to chrischall/workflows reusable pipeline

Tracking auto-review follow-ups for #107 (verdict: fail).

🔴 Important

  • release-please.yml removes the SKILL.md root-staging step needed by mcp-publish's skill packaging/ClawHub publish with no visible replacement, risking a repeat of the bug fixed in #80

🟡 Nits

  • .mcpbignore's comment about CI staging a root SKILL.md copy is now stale since that step was removed from release-please.yml

When addressing the review on #107, resolve e

Read the thread · 2026-07-27 · closed · external user · 1 comment

Auto-review follow-ups for PR #90: chore(connector): add Cloudflare Worker deploy scaffold

Tracking auto-review follow-ups for #90 (verdict: warn).

🟡 Nits

  • vitest.config.ts:22 — coverage.exclude replaces vitest's coverageConfigDefaults.exclude wholesale (dropping node_modules/dist/tests/config excludes from the coverage report); spread coverageConfigDefaults.exclude as done for test.exclude

When addressing the review on #90, resolve each item and add Closes #<this issue> to the PR once everything is genuinely fixed; deferred it

Read the thread · 2026-07-19 · closed · external user · 1 comment

Auto-review follow-ups for PR #70: feat!: media-first tool rename + video (omni) and music (Lyria) generation

Tracking auto-review follow-ups for #70 (verdict: warn).

🟡 Nits

  • SKILL.md frontmatter description (line 3) and body summary (line 8) still describe the skill as images-only — natural-language video/music requests won't trigger the skill
  • README.md intro paragraph (line 7) still says "Exposes four tools" (now 8) and only mentions image capabilities

When addressing the review on #70, resolve each item and add Closes #<this issue> to th

Read the thread · 2026-07-08 · closed · external user · 0 comments

Auto-review follow-ups for PR #65: feat: idempotency guard for generation calls after host timeouts

Tracking auto-review follow-ups for #65 (verdict: warn).

🟡 Nits

  • gemini_edit_image has no dedicated idempotency test (only sibling tools generate_image/generate_set/interact do)

When addressing the review on #65, resolve each item and add Closes #<this issue> to the PR once everything is genuinely fixed; deferred items stay open here. See the auto-review follow-up convention in CLAUDE.md.

Read the thread · 2026-07-08 · closed · external user · 0 comments

Auto-review follow-ups for PR #26: chore(main): release 0.6.1

Tracking auto-review follow-ups for #26 (verdict: fail).

🔴 Important

  • Unexpected dependency downgrade: @chrischall/mcp-utils 0.10.5 → 0.10.4 in package-lock.json contradicts PR #37 and should not be in a release PR

When addressing the review on #26, resolve each item and add Closes #<this issue> to the PR once everything is genuinely fixed; deferred items stay open here. See the auto-review follow-up convention in CLAUDE.md.

Read the thread · 2026-07-05 · closed · external user · 1 comment

Most recent

Auto-review follow-ups for PR #190: test: cover gemini_healthcheck and describeCredential

Tracking auto-review follow-ups for #190 (verdict: pass).

🟡 Nits

  • Unused vi import from vitest in tests/healthcheck.test.ts

Checklist regenerated from the auto-review of 8635ed9 (run). Ticks survive later rounds, but a round that reviewed an older commit can still re-list something already fixed — check that SHA before redoing an item.

When addressing the review on #

Read the thread · 2026-08-30 · closed · external user · 0 comments

Auto-review follow-ups for PR #180: feat(usage): estimate what a call cost in USD, from a dated rate card

Tracking auto-review follow-ups for #180 (verdict: warn).

🟡 Nits

  • A deduplicated replay returns an un-annotated cost_estimate for a call that cost nothing — annotateReusedUsage (src/usage.ts:165) marks only usage_billed: false, so summing per-result cost_estimate.usd double-counts every idempotency hit
  • src/pricing.ts:8-10 and the matching new CLAUDE.md line claim tests reconcile every rate, but gemini-omni-flash's input/`tex

Read the thread · 2026-08-28 · closed · external user · 0 comments

Auto-review follow-ups for PR #176: feat(usage): report what each call cost in tokens, and add a session total

Tracking auto-review follow-ups for #176 (verdict: warn).

🟡 Nits

  • gemini_token_usage is missing from manifest.json's .tools array and README.md's ## Tools table, and CLAUDE.md:9 still says "exposes 11 tools" now that there are 12
  • tests/tools/usage.test.ts:17 has a no-op afterEach whose body is only a comment — remove the hook and the now-unneeded afterEach import

Checklist regenerated from the auto-review of 2eb77fd ([run](https://

Read the thread · 2026-08-28 · closed · external user · 0 comments

Auto-review follow-ups for PR #167: chore: declare a mint.yaml hosting manifest

Tracking auto-review follow-ups for #167 (verdict: pass).

🟡 Nits

  • mint.yaml redundant entry in .mcpbignore (line 77) already covered by the .yaml/.yml glob at lines 36-37

Checklist regenerated from the auto-review of 67a9a78 (run). Ticks survive later rounds, but a round that reviewed an older commit can still re-list something already fixed — check that SHA before re

Read the thread · 2026-08-25 · closed · external user · 0 comments

Auto-review follow-ups for PR #152: feat(jobs): persist async jobs so a hosted generation survives the machine stopping

Tracking auto-review follow-ups for #152 (verdict: pass).

🟡 Nits

  • src/jobs.ts:470,474 — the dedup-hit path in dispatch() calls jobHandle() without the durable flag, so a hosted caller attaching to an in-flight job is told results are per-process and expire in ~10 min, contradicting the durable hint lines 510/516 give

When addressing the review on #152, resolve each item and add Closes #<this issue> to the PR once everything is genuinely

Read the thread · 2026-08-19 · closed · external user · 0 comments

Auto-review follow-ups for PR #147: fix(uploads): bind media and upload links to one base, and stop losing the real error

Tracking auto-review follow-ups for #147 (verdict: warn).

🟡 Nits

  • src/index.ts:66 — the .map(reporting) / surfaceToolErrors wiring has no test; grep shows surfaceToolErrors appears only in tests/errors.test.ts, and tests/index.test.ts registers registrars directly, so deleting the wiring keeps CI green while restoring the unattributed-throw failure mode

When addressing the review on #147, resolve each item and add `Closes #<this issu

Read the thread · 2026-08-18 · closed · external user · 0 comments

Auto-review follow-ups for PR #137: feat(storage): back media, uploads and the library with mcp-host's blob store

Tracking auto-review follow-ups for #137 (verdict: warn).

🟡 Nits

  • The new clamp test in tests/blob-store.test.ts builds its own createR2Sink with a hand-written maxUrlTtlMs, duplicating tests/storage/media.test.ts:330 — it never reaches hostedStorage(), so deleting maxUrlTtlMs: BLOB_MAX_TTL_MS from src/client.ts:1018 leaves it green
  • blobStoreFromEnv (src/blob-store.ts:220-221) reads env.MCP_BLOB_BASE_URL / env.MCP_BLOB_SIGNING_KEY direc

Read the thread · 2026-08-07 · closed · external user · 0 comments

Auto-review follow-ups for PR #126: feat(connector): signed upload URLs, persistent character/style library, and set bundles

Tracking auto-review follow-ups for #126 (verdict: pass).

🟡 Nits

  • src/put-endpoint.ts:99 error message (and module header line 20) still says signed uploads accept image/* only, contradicting the new raster-only acceptableUploadType gate that rejects image/svg+xml
  • resolveCharacterRefs in src/tools/shared.ts emits "The final attached image is a style reference" but generate.ts:74/191 and set.ts:93 append the caller's own reference imag

Read the thread · 2026-07-31 · closed · external user · 0 comments

Auto-review follow-ups for PR #119: feat(media): return an openable URL for every hosted generation

Tracking auto-review follow-ups for #119 (verdict: warn).

🟡 Nits

  • docs/DEPLOY-CONNECTOR.md and README.md claim a custom domain gives "plain non-expiring URLs", but src/media-cleanup.ts sweeps the gen/ prefix regardless of MEDIA_PUBLIC_BASE_URL, so the object is deleted at MEDIA_TTL_DAYS and the non-expiring URL 404s with no expires_at to explain it
  • tests/storage/media.test.ts:145 still passes the removed bucketName option to createR2Sin

Read the thread · 2026-07-29 · closed · external user · 0 comments

Auto-review follow-ups for PR #115: feat(media): accept images_url and images_file_uris on video and music too

Tracking auto-review follow-ups for #115 (verdict: pass).

🟡 Nits

  • fileNameFromUrl fallback silently changed from 'upload' to 'image' in gemini_upload_file's url route (src/tools/files.ts:157), inconsistent with the other two branches in the same function and misleading for video/audio uploads

When addressing the review on #115, resolve each item and add Closes #<this issue> to the PR once everything is genuinely fixed; deferred items sta

Read the thread · 2026-07-29 · closed · external user · 0 comments

Auto-review follow-ups for PR #86: fix(client): wait out interactions-store lag for 120s, not 6s

Tracking auto-review follow-ups for #86 (verdict: fail).

🔴 Important

  • ChainedRequest404Error constructor signature change (src/client.ts:82-96) is not reflected in tests/tools/interact-chain-recovery.test.ts (lines 61, 88, 107, 128), causing a tsc missing-argument error and a runtime TypeError (opts undefined) in 4 tests

When addressing the review on #86, resolve each item and add Closes #<this issue> to the PR once everything is genuinel

Read the thread · 2026-07-19 · closed · external user · 0 comments

The remaining reports are on the project's issue tracker.