---
title: "Gemini CLI — MCP compatibility"
description: "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."
canonicalUrl: "https://zuplo.com/learn/mcp/compatibility/clients/gemini-cli"
pageType: "mcp-client"
kind: "Terminal agent"
verified: "2026-07-31"
---

# 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.

_Terminal agent. Protocol revision: `2025-06-18`._

## Support

- **stdio** — Yes
- **Streamable HTTP** — Yes
- **Legacy HTTP+SSE** — Yes
- **Protocol revision** — `2025-06-18`
- **Runs the OAuth flow** — Yes
- **Registration (RFC 7591)** — Yes
- **Metadata document** — No
- **Pre-registered client ID** — Yes
- **Sends resource (RFC 8707)** — Yes
- **Validates iss (RFC 9207)** — No
- **Custom 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 is `2025-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](https://github.com/google-gemini/gemini-cli/blob/main/packages/core/src/mcp/oauth-provider.ts)

### 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](https://github.com/google-gemini/gemini-cli)

### 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](https://github.com/google-gemini/gemini-cli/blob/main/packages/core/src/tools/mcp-tool.ts)

[Primary source](https://github.com/google-gemini/gemini-cli)

_This row was last verified 2026-07-31 against the 2026-07-28 revision._

- **Clients** — [every client in the matrix](/learn/mcp/compatibility/clients)
