chore(deps): fastmcp 4 (mcp 2.2)

No code change needed: the server side (`FastMCP`, `@mcp.tool`,
`get_http_headers`, `http_app`) and the client side (`Client`, `BearerAuth`,
the three transports, and the `mcp.client.auth` / `mcp.shared.auth` OAuth
types imported directly) all kept their signatures.

Verified beyond the suite by driving the real `/mcp` mount over a live
uvicorn socket with the fastmcp client: tool discovery, a `search_docs` call
and bearer-token extraction all round-trip, with the token reaching
`search()` intact.

fastmcp 4 and mcp 2.2 also moved to httpx2, so the retry tuple's comment now
places them on that side of the split.
This commit is contained in:
Alex committed 2026-09-12 17:54:18 +01:00
1 parent f7baa1952f
commit 108b8fd56b
7 files changed
+74 -56

No files matched your search

+4 -4
View File
@@ -22,10 +22,10 @@ logger = logging.getLogger(__name__)
# retries — RateLimitError needs backoff, BadRequestError won't get any
# better on retry, and the existing fallback handles both.
# Both HTTP stacks are listed because the providers are split across them and
# the two libraries' exception classes are unrelated types: openai and
# anthropic run on httpx2, while google-genai, elevenlabs, qdrant-client and
# the MCP client are still on httpx. Naming only one silently stops matching
# for half the providers — the retry just never fires.
# the two libraries' exception classes are unrelated types: openai, anthropic
# and the MCP client run on httpx2, while google-genai, elevenlabs,
# qdrant-client and daytona are still on httpx. Naming only one silently stops
# matching for half the providers — the retry just never fires.
_TRANSPORT_ERROR_NAMES = (
"RemoteProtocolError",
"ReadError",