MCPcopy Index your code
hub / github.com/modelcontextprotocol/python-sdk / _make_context

Method _make_context

src/mcp/server/runner.py:355–388  ·  view source on GitHub ↗
(
        self,
        dctx: DispatchContext[TransportContext],
        method: str,
        params: Mapping[str, Any] | None,
        meta: RequestParamsMeta | None,
        protocol_version: str,
    )

Source from the content-addressed store, hash-verified

353 return call
354
355 def _make_context(
356 self,
357 dctx: DispatchContext[TransportContext],
358 method: str,
359 params: Mapping[str, Any] | None,
360 meta: RequestParamsMeta | None,
361 protocol_version: str,
362 ) -> ServerRequestContext[LifespanT, Any]:
363 # TODO(L54): remove for Context rework. Reads the SHTTP per-request
364 # data off the raw `dctx.message_metadata` carrier; replace with the
365 # per-transport context once that lands.
366 md = dctx.message_metadata
367 if isinstance(md, ServerMessageMetadata):
368 request = md.request_context
369 close_sse_stream = md.close_sse_stream
370 close_standalone_sse_stream = md.close_standalone_sse_stream
371 else:
372 request = close_sse_stream = close_standalone_sse_stream = None
373 # Per-request session: `dctx` is the request-scoped channel (auto-threads
374 # its own request_id on streamable HTTP); the standalone channel is read
375 # off `connection.outbound`. `related_request_id` on the public API selects.
376 session = ServerSession(dctx, self.connection)
377 return ServerRequestContext(
378 session=session,
379 lifespan_context=self.lifespan_state,
380 method=method,
381 params=params,
382 request_id=dctx.request_id,
383 meta=meta,
384 protocol_version=protocol_version,
385 request=request,
386 close_sse_stream=close_sse_stream,
387 close_standalone_sse_stream=close_standalone_sse_stream,
388 )
389
390 @staticmethod
391 def _negotiate_initialize(params: Mapping[str, Any] | None) -> tuple[InitializeRequestParams, str]:

Callers 2

_on_requestMethod · 0.95
_on_notifyMethod · 0.95

Calls 2

ServerSessionClass · 0.90

Tested by

no test coverage detected