1111from mcp .server .mcpserver .exceptions import ToolError
1212from mcp .server .mcpserver .tools import Tool , ToolManager
1313from mcp .server .mcpserver .utilities .func_metadata import ArgModelBase , FuncMetadata
14- from mcp .types import TextContent , ToolAnnotations
14+ from mcp .types import CallToolResult , TextContent , ToolAnnotations
1515
1616
1717class TestAddTools :
@@ -455,8 +455,8 @@ def get_user(user_id: int) -> UserOutput:
455455 manager .add_tool (get_user )
456456 result = await manager .call_tool ("get_user" , {"user_id" : 1 }, Context (), convert_result = True )
457457 # don't test unstructured output here, just the structured conversion
458- assert isinstance (result , tuple )
459- assert result [ 1 ] == {"name" : "John" , "age" : 30 }
458+ assert isinstance (result , CallToolResult )
459+ assert result . structured_content == {"name" : "John" , "age" : 30 }
460460
461461 @pytest .mark .anyio
462462 async def test_tool_with_primitive_output (self ):
@@ -471,8 +471,8 @@ def double_number(n: int) -> int:
471471 result = await manager .call_tool ("double_number" , {"n" : 5 }, Context ())
472472 assert result == 10
473473 result = await manager .call_tool ("double_number" , {"n" : 5 }, Context (), convert_result = True )
474- assert isinstance (result , tuple )
475- assert isinstance (result [0 ][ 0 ] , TextContent ) and result [ 1 ] == {"result" : 10 }
474+ assert isinstance (result , CallToolResult )
475+ assert isinstance (result . content [0 ], TextContent ) and result . structured_content == {"result" : 10 }
476476
477477 @pytest .mark .anyio
478478 async def test_tool_with_typeddict_output (self ):
@@ -512,8 +512,8 @@ def get_person() -> Person:
512512 manager .add_tool (get_person )
513513 result = await manager .call_tool ("get_person" , {}, Context (), convert_result = True )
514514 # don't test unstructured output here, just the structured conversion
515- assert isinstance (result , tuple )
516- assert result [ 1 ] == expected_output
515+ assert isinstance (result , CallToolResult )
516+ assert result . structured_content == expected_output
517517
518518 @pytest .mark .anyio
519519 async def test_tool_with_list_output (self ):
@@ -531,8 +531,8 @@ def get_numbers() -> list[int]:
531531 result = await manager .call_tool ("get_numbers" , {}, Context ())
532532 assert result == expected_list
533533 result = await manager .call_tool ("get_numbers" , {}, Context (), convert_result = True )
534- assert isinstance (result , tuple )
535- assert isinstance (result [0 ][ 0 ] , TextContent ) and result [ 1 ] == expected_output
534+ assert isinstance (result , CallToolResult )
535+ assert isinstance (result . content [0 ], TextContent ) and result . structured_content == expected_output
536536
537537 @pytest .mark .anyio
538538 async def test_tool_without_structured_output (self ):
0 commit comments