1515import uvicorn
1616from pydantic import AnyUrl
1717from starlette .applications import Starlette
18+ from starlette .requests import Request
1819
1920import mcp .types as types
2021from mcp .client .session import ClientSession
@@ -89,7 +90,7 @@ def echo(message: str) -> str:
8990 return f"Echo: { message } "
9091
9192 # Create the SSE app
92- app : Starlette = mcp .sse_app ()
93+ app = mcp .sse_app ()
9394
9495 return mcp , app
9596
@@ -201,7 +202,7 @@ def make_everything_fastmcp_app():
201202 """Create a comprehensive FastMCP server with SSE transport."""
202203 mcp = make_everything_fastmcp ()
203204 # Create the SSE app
204- app : Starlette = mcp .sse_app ()
205+ app = mcp .sse_app ()
205206 return mcp , app
206207
207208
@@ -440,11 +441,10 @@ def make_fastmcp_with_context_app():
440441 def echo_headers (ctx : Context ) -> str :
441442 """Returns the request headers as JSON."""
442443 headers_info = {}
443- try :
444- if ctx .request_context .request :
445- headers_info = ctx .request_context .request .get ("headers" , {})
446- except Exception :
447- pass
444+ if ctx .request_context .request and isinstance (
445+ ctx .request_context .request , Request
446+ ):
447+ headers_info = dict (ctx .request_context .request .headers )
448448 return json .dumps (headers_info )
449449
450450 # Tool that returns full request context
@@ -457,17 +457,15 @@ def echo_context(custom_request_id: str, ctx: Context) -> str:
457457 "method" : None ,
458458 "url" : None ,
459459 }
460- try :
461- if ctx .request_context .request :
462- context_data ["headers" ] = ctx .request_context .request .get ("headers" , {})
463- context_data ["method" ] = ctx .request_context .request .get ("method" )
464- context_data ["url" ] = ctx .request_context .request .get ("url" )
465- except Exception :
466- pass
460+ if ctx .request_context .request :
461+ if isinstance (ctx .request_context .request , Request ):
462+ context_data ["headers" ] = dict (ctx .request_context .request .headers )
463+ context_data ["method" ] = ctx .request_context .request .method
464+ context_data ["url" ] = str (ctx .request_context .request .url )
467465 return json .dumps (context_data )
468466
469467 # Create the SSE app
470- app : Starlette = mcp .sse_app ()
468+ app = mcp .sse_app ()
471469 return mcp , app
472470
473471
0 commit comments