refactor: remove request_ctx ContextVar, thread Context explicitly (#2203)

Co-authored-by: Marcelo Trylesinski <marcelotryle@gmail.com>
This commit is contained in:
Max Isbey 2026-03-04 13:23:02 +00:00 • committed by GitHub
commit cc22bf5464
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -891,7 +891,7 @@ class TestServerResourceTemplates:
assert len(await mcp.list_resources()) == 0
# When accessed, should create a concrete resource
resource = await mcp._resource_manager.get_resource("resource://test/data")
resource = await mcp._resource_manager.get_resource("resource://test/data", Context())
assert isinstance(resource, FunctionResource)
result = await resource.read()
assert result == "Data for test"
@ -1231,6 +1231,19 @@ class TestContextInjection:
class TestServerPrompts:
"""Test prompt functionality in MCPServer server."""
async def test_get_prompt_direct_call_without_context(self):
"""Test calling mcp.get_prompt() directly without passing context."""
mcp = MCPServer()
@mcp.prompt()
def fn() -> str:
return "Hello, world!"
result = await mcp.get_prompt("fn")
content = result.messages[0].content
assert isinstance(content, TextContent)
assert content.text == "Hello, world!"
async def test_prompt_decorator(self):
"""Test that the prompt decorator registers prompts correctly."""
mcp = MCPServer()
@ -1243,7 +1256,7 @@ class TestServerPrompts:
assert len(prompts) == 1
assert prompts[0].name == "fn"
# Don't compare functions directly since validate_call wraps them
content = await prompts[0].render()
content = await prompts[0].render(None, Context())
assert isinstance(content[0].content, TextContent)
assert content[0].content.text == "Hello, world!"
@ -1258,7 +1271,7 @@ class TestServerPrompts:
prompts = mcp._prompt_manager.list_prompts()
assert len(prompts) == 1
assert prompts[0].name == "custom_name"
content = await prompts[0].render()
content = await prompts[0].render(None, Context())
assert isinstance(content[0].content, TextContent)
assert content[0].content.text == "Hello, world!"
@ -1273,7 +1286,7 @@ class TestServerPrompts:
prompts = mcp._prompt_manager.list_prompts()
assert len(prompts) == 1
assert prompts[0].description == "A custom description"
content = await prompts[0].render()
content = await prompts[0].render(None, Context())
assert isinstance(content[0].content, TextContent)
assert content[0].content.text == "Hello, world!"