refactor: split RequestContext between server and client (#1987)
This commit is contained in:
parent
050aeb6456
commit
b1f7eec3cd
2 changed files with 210 additions and 212 deletions
|
|
@ -2,8 +2,9 @@ from unittest.mock import AsyncMock, MagicMock
|
|||
|
||||
import pytest
|
||||
|
||||
from mcp.server.context import ServerRequestContext
|
||||
from mcp.server.experimental.request_context import Experimental
|
||||
from mcp.server.mcpserver import Context
|
||||
from mcp.shared.context import RequestContext
|
||||
|
||||
pytestmark = pytest.mark.anyio
|
||||
|
||||
|
|
@ -16,11 +17,12 @@ async def test_progress_token_zero_first_call():
|
|||
mock_session.send_progress_notification = AsyncMock()
|
||||
|
||||
# Create request context with progress token 0
|
||||
request_context = RequestContext(
|
||||
request_context = ServerRequestContext(
|
||||
request_id="test-request",
|
||||
session=mock_session,
|
||||
meta={"progress_token": 0},
|
||||
lifespan_context=None,
|
||||
experimental=Experimental(),
|
||||
)
|
||||
|
||||
# Create context with our mocks
|
||||
|
|
|
|||
|
|
@ -3,7 +3,6 @@ from contextlib import asynccontextmanager
|
|||
from dataclasses import dataclass
|
||||
|
||||
from mcp.server.mcpserver import Context, MCPServer
|
||||
from mcp.server.session import ServerSession
|
||||
|
||||
|
||||
class Database: # Replace with your actual DB type
|
||||
|
|
@ -45,7 +44,7 @@ mcp = MCPServer("My App", lifespan=app_lifespan)
|
|||
|
||||
# Access type-safe lifespan context in tools
|
||||
@mcp.tool()
|
||||
def query_db(ctx: Context[ServerSession, AppContext]) -> str: # pragma: no cover
|
||||
def query_db(ctx: Context[AppContext]) -> str: # pragma: no cover
|
||||
"""Tool that uses initialized resources"""
|
||||
db = ctx.request_context.lifespan_context.db
|
||||
return db.query()
|
||||
|
|
|
|||
Loading…
Reference in a new issue