@@ -1411,28 +1411,11 @@ async def run():
14111411
14121412 # Call a tool (add tool from fastmcp_quickstart)
14131413 result = await session.call_tool(" add" , arguments = {" a" : 5 , " b" : 3 })
1414- # Parse the result (type: CallToolResult)
1415- for item in result.content:
1416- if isinstance (item, types.TextContent):
1417- # Extract text directly from TextContent
1418- print (f " Tool output (TextContent): { item.text} " )
1419- elif isinstance (item, types.EmbeddedResource):
1420- # Check if the embedded resource contains text
1421- if isinstance (item.resource, types.TextResourceContents):
1422- print (
1423- f " Tool output (EmbeddedResource - Text): { item.resource.text} "
1424- )
1425- elif isinstance (item.resource, types.BlobResourceContents):
1426- print (
1427- f " Tool output (EmbeddedResource - Blob): URI { item.resource.uri} , MIME Type { item.resource.mimeType} "
1428- )
1429- elif isinstance (item, types.ImageContent):
1430- # Showing only a snippet of image data
1431- print (
1432- f " Tool output (ImageContent): MIME Type { item.mimeType} , Data (base64): { item.data[:30 ]} ... "
1433- )
1434- else :
1435- print (f " Tool output (Unknown Content Type): { type (item)} " )
1414+ result_unstructured = result.content[0 ]
1415+ if isinstance (result_unstructured, types.TextContent):
1416+ print (f " Tool result: { result_unstructured.text} " )
1417+ result_structured = result.structuredContent
1418+ print (f " Structured tool result: { result_structured} " )
14361419
14371420
14381421def main ():
@@ -1458,7 +1441,7 @@ Run from the repository root:
14581441
14591442import asyncio
14601443
1461- from mcp import ClientSession, types
1444+ from mcp import ClientSession
14621445from mcp.client.streamable_http import streamablehttp_client
14631446
14641447
@@ -1477,31 +1460,6 @@ async def main():
14771460 tools = await session.list_tools()
14781461 print (f " Available tools: { [tool.name for tool in tools.tools]} " )
14791462
1480- # Call a tool
1481- tool_result = await session.call_tool(" echo" , {" message" : " hello" })
1482- # Parse the result (type: CallToolResult)
1483- for item in tool_result.content:
1484- if isinstance (item, types.TextContent):
1485- # Extract text directly from TextContent
1486- print (f " Tool output (TextContent): { item.text} " )
1487- elif isinstance (item, types.EmbeddedResource):
1488- # Check if the embedded resource contains text
1489- if isinstance (item.resource, types.TextResourceContents):
1490- print (
1491- f " Tool output (EmbeddedResource - Text): { item.resource.text} "
1492- )
1493- elif isinstance (item.resource, types.BlobResourceContents):
1494- print (
1495- f " Tool output (EmbeddedResource - Blob): URI { item.resource.uri} , MIME Type { item.resource.mimeType} "
1496- )
1497- elif isinstance (item, types.ImageContent):
1498- # Showing only a snippet of image data
1499- print (
1500- f " Tool output (ImageContent): MIME Type { item.mimeType} , Data (base64): { item.data[:30 ]} ... "
1501- )
1502- else :
1503- print (f " Tool output (Unknown Content Type): { type (item)} " )
1504-
15051463
15061464if __name__ == " __main__" :
15071465 asyncio.run(main())
0 commit comments