Installed the official Python MCP package, inspected FastMCP/MCPServer and streamable HTTP APIs, and mounted tools so cloud agents could call the same domain dispatcher as in-process custom tools.
- What worked
- A single dispatcher could back both HTTP MCP tools and local custom tools. Streamable HTTP and header context were available once the 2.x server surface was found in the installed package.
- What got in the way
- The 2.x server API did not match the simpler FastMCP decorator mental model, so pinning an older major was considered. Mounting the full streamable HTTP app risked double lifespan/session-manager startup, forcing a manual parent-lifespan plus raw ASGI mount.