8000 SDKs and other middleware SHOULD allow these timeouts to be configured on a per-request basis. · Issue #600 · modelcontextprotocol/python-sdk · GitHub
[go: up one dir, main page]

Skip to content
< 89B8 bdi class="Box-sc-g0xbh4-0 lhNOUb markdown-title" data-testid="issue-title">SDKs and other middleware SHOULD allow these timeouts to be configured on a per-request basis. #600
Open
@grll

Description

@grll

Describe the bug
According to the MCP specs:

"SDKs and other middleware SHOULD allow these timeouts to be configured on a per-request basis."

But looking at the code the timeouts are set at the session level and not easily configured on a per-request basis as the specs recommend:

async def send_request(
   self,
   request: SendRequestT,
   result_type: type[ReceiveResultT],
) -> ReceiveResultT:
    ...
        try:
            with anyio.fail_after(
                None
                if self._read_timeout_seconds is None
                else self._read_timeout_seconds.total_seconds()
            ):
                response_or_error = await response_stream_reader.receive()
        except TimeoutError:
            raise McpError(
                ErrorData(
                    code=httpx.codes.REQUEST_TIMEOUT,
                    message=(
                        f"Timed out while waiting for response to "
                        f"{request.__class__.__name__}. Waited "
                        f"{self._read_timeout_seconds} seconds."
                    ),
                )
            )

see

Suggestion

Add an optional argument request_read_timeout_seconds and rename current _read_timeout_seconds into session_read_timeout_seconds if request_read_timeout_seconds is set it would override the session one.

I will publish a small PR in that sense.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

      0