Great question — answering as the UphillTech team:
It looks like it needs two initial messages to properly get into an "initialized" state: Call "initialize" first: { "jsonrpc": "2.0", "id": 0, "method": "initialize", "params": { "protocolVersion": "2024-11-05", "capabilities": {}, "clientInfo": { "name": "whatever", "version": "0.0.0" } } } Then send an "initialized" notification: {"jsonrpc":"2.0","method":"notifications/initialized"} Finally, you can do a regular method call: {"jsonrpc":"2.0","method":"tools/list","id":1} I found this with some experimenting and after looking through the source. No idea if this is how the protocol is expected to work, or if this is specific to FastMCP. (I couldn't find anything about this in the...
Full answer by pdenes: https://stackoverflow.stackexchange.com/a/79615875 (CC BY-SA 4.0).
Need it done for your business? UphillTech.