William Easton
William Easton
``` @asynccontextmanager async def lifespan(app): yield "lifespan" mcp = FastMCP(name="Parent MCP Server", lifespan=lifespan) if __name__ == "__main__": mcp.run(transport="sse") ``` Run via sse, set a breakpoint in the lifespan context manager...
I may have lied about it not hitting after starting the server, I am seeing it hit when starting the server and for each connection. ``` def sse_app(self) -> Starlette:...
I think this is just how MCP is designed to work, it's supposed to create a new server for every session. I think if you want to initialize a singleton...
looking at this again this is not actually implemented by the MCP SDK but instead is part of FastMCP starting a new server for every SSE connection. So perhaps this...
I was thinking session_lifespan and server_lifespan but given that each sse is its own server it's a bit confusing to call them that. I was trying to think if this...
For the db connection that's initialized in the shared context to be useful it has to be available in the normal context and I don't think there's a straightforward way...
Let's make a contrib module which has a subclass of FastMCP, which takes an async context manager and enters it when the user calls any of the run methods. I...
Right now we undergo a slightly annoying process of expanding out the cpio in order to customize the boot environment of the live ISO and being able to place all...
The challenge for us is that using the OEM partition requires setting up our own builds and distributing our own images. Ideally we'd be able to use stock media and...
We use $ref $def extensively, not just for enums but for any referenced model. Generically dereferencing schemas has come up several times in the past and is something we're not...