11import sys
22
3- from workers import DurableObject
4-
53sys .path .insert (0 , "/session/metadata/vendor" )
64sys .path .insert (0 , "/session/metadata" )
75
6+ from mcp .server .fastmcp import FastMCP
87
9- def setup_server ():
10- from mcp .server .fastmcp import FastMCP
8+ from exceptions import HTTPException , http_exception
119
12- from exceptions import HTTPException , http_exception
1310
14- mcp = FastMCP ("Demo" )
11+ def setup_server ():
12+ mcp = FastMCP ("Demo" , stateless_http = True )
1513
1614 @mcp .tool ()
1715 def add (a : int , b : int ) -> int :
@@ -33,24 +31,13 @@ def echo_prompt(message: str) -> str:
3331 """Create an echo prompt"""
3432 return f"Please process this message: { message } "
3533
36- app = mcp .sse_app ()
34+ app = mcp .streamable_http_app ()
3735 app .add_exception_handler (HTTPException , http_exception )
3836 return mcp , app
3937
4038
41- class FastMCPServer (DurableObject ):
42- def __init__ (self , ctx , env ):
43- self .ctx = ctx
44- self .env = env
45- self .mcp , self .app = setup_server ()
46-
47- async def call (self , request ):
48- import asgi
49-
50- return await asgi .fetch (self .app , request , self .env , self .ctx )
51-
39+ async def on_fetch (request , env , ctx ):
40+ mcp , app = setup_server ()
41+ import asgi
5242
53- async def on_fetch (request , env ):
54- id = env .ns .idFromName ("A" )
55- obj = env .ns .get (id )
56- return await obj .call (request )
43+ return await asgi .fetch (app , request , env , ctx )
0 commit comments