Merge pull request #1031 from cegersdoerfer/mcpconfig-timeout

Allow per-server timeouts in MCPConfig
This commit is contained in:
Jeremiah Lowin 2025-07-03 20:12:50 -04:00 committed by GitHub
commit 0749ab1eee
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -1,5 +1,6 @@
from __future__ import annotations
import datetime
import re
from typing import TYPE_CHECKING, Annotated, Any, Literal
from urllib.parse import urlparse
@ -65,6 +66,7 @@ class RemoteMCPServer(FastMCPBaseModel):
description='Either a string representing a Bearer token, the literal "oauth" to use OAuth authentication, or an httpx.Auth instance for custom authentication.',
),
] = None
sse_read_timeout: datetime.timedelta | int | float | None = None
model_config = ConfigDict(arbitrary_types_allowed=True)
@ -77,11 +79,19 @@ class RemoteMCPServer(FastMCPBaseModel):
transport = self.transport
if transport == "sse":
return SSETransport(self.url, headers=self.headers, auth=self.auth)
return SSETransport(
self.url,
headers=self.headers,
auth=self.auth,
sse_read_timeout=self.sse_read_timeout,
)
else:
# Both "http" and "streamable-http" map to StreamableHttpTransport
return StreamableHttpTransport(
self.url, headers=self.headers, auth=self.auth
self.url,
headers=self.headers,
auth=self.auth,
sse_read_timeout=self.sse_read_timeout,
)