Evidence Trail
Gemini CLI tightens MCP tool discovery: debounced list_changed refresh, trailing queue, and resilient retries
March 9, 2026 / Daily Edition / 3 source signals.
openai/codex
main
3 source signals
2 repos
5f60281
> 5f60281 / March 9, 2026 / Daily Edition
Reporter Notes
Notes
- Date: 2026-03-09
- Repo: google-gemini/gemini-cli
- Focus: MCP notifications/tools/list_changed reliability fixes.
- Core changes: debounced refresh, trailing execution queue, empty-discovery retry, handler registration even when listChanged capability absent; tests expanded (TDD).
- Anchors: PR #21050, commit 352fb0c9; prior list_changed support in 5f60281d2528 (2026-01-08).
- Output HTML: daily edition corpus/2026-03-09/index.html
- Edition route: /editions/2026-03-09/
Sources
Git commit (gemini-cli)
commit 352fb0c97680b11578f88277f9e0265aa9a2191a
Author: Jacob Richman <jacob314@gmail.com>
Date: Wed Mar 4 06:46:17 2026 -0800
fix(mcp): Notifications/tools/list_changed support not working (#21050)
Co-authored-by: Bryan Morgan <bryanmorgan@google.com>
packages/core/src/resources/resource-registry.ts | 13 ++
packages/core/src/tools/mcp-client-manager.ts | 50 ++++-
packages/core/src/tools/mcp-client.test.ts | 244 +++++++++++++++++++----
packages/core/src/tools/mcp-client.ts | 144 +++++++++++--
4 files changed, 378 insertions(+), 73 deletions(-)
PR summary (gh)
title: fix(mcp): Notifications/tools/list_changed support not working
state: MERGED
number: 21050
url: https://github.com/google-gemini/gemini-cli/pull/21050
additions: 378
deletions: 73
Summary:
- Improved MCP context refresh with debouncing, queued trailing execution, and pending refresh processing.
- Registers list_changed notification handlers even when listChanged capability is absent.
- Adds retry when tool discovery returns empty/no changes.
- Updates unit tests with TDD coverage.
gsio search (local)
query: list_changed
project: google-gemini/gemini-cli
result: commit 5f60281d2528 (2026-01-08)
summary: Enable MCP clients to react to `notifications/tools/list_changed` by refreshing tools.