Gemini CLI
The strictest resource behavior after Zed: Gemini CLI derives the value from the server URL rather than from protected resource metadata, so it sends it even when your server publishes none. It also rewrites tool names aggressively, forcing an mcp_ prefix and truncating at 64 characters.
- Client type
- Terminal agent
- Protocol revision
2025-06-18
Support
Gemini CLI
- stdio
- Yes
- Streamable HTTP
- Yes
- Legacy SSE
- Yes
- Revision
2025-06-18- OAuth flow
- Yes
- Registration
- Yes
- Metadata doc
- No
- Client ID
- Yes
- resource
- Yes
- iss
- No
- Headers
- Yes
- Protocol revision
2025-06-18, and it's the furthest behind in this matrix — one revision behind every other client here and two behind the specification. Gemini CLI pins the MCP TypeScript SDK at exactly 1.23.0, whose latest revision is2025-06-18.
Caveats and sources
Each one names the column it qualifies and cites the page it comes from, which is often not the page in the row's primary source.
- Sends resource (RFC 8707)
- Unconditional, and the opposite of VS Code: the value comes from the server URL, not from protected resource metadata. When metadata is present, Gemini CLI validates it and raises a resource mismatch if the two disagree. Its provider also offers Google credentials and service-account impersonation as authorization types. Source
- Validates iss (RFC 9207)
- Source-verified absence: the pinned SDK line has no issuer validation on the authorization response, and neither does Gemini CLI's own provider. Source
- Tool names
- Names are capped at 64 characters, forced to an
mcp_prefix, rewritten to a restricted character set, and truncated with a warning that the tool may then require user approval. A server whose tool names collide after truncation is the failure to watch for. Source
This row was last verified July 31, 2026 against the 2026-07-28 revision.