← nitronium.dev
FastMCP HTTP'den çağırmak için 3 adımlı handshake gerekiyor
2026-06-09
FastMCP sunucusunu Python'dan değil HTTP üzerinden (Next.js API route gibi) çağırmak istersen basit bir POST yetmiyor. Streamable HTTP transport şu sırayı zorunlu kılıyor:
1. Initialize — session aç:
`http
POST /mcp
Content-Type: application/json
Accept: application/json, text/event-stream
{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"client","version":"1.0"}}}
`
Yanıt header'ında mcp-session-id gelir. Bunu sakla.
2. Initialized bildirimi — zorunlu:
`http
POST /mcp
mcp-session-id: <yukarıdaki id>
{"jsonrpc":"2.0","method":"notifications/initialized","params":{}}
`
3. Araç çağrısı:
`http
POST /mcp
mcp-session-id: <yukarıdaki id>
{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"search_trademarks","arguments":{...}}}
`
Yanıt SSE formatında gelir (event: message\ndata: {...}). Birden fazla event içerir — bildirimler + asıl sonuç. result veya error alanı içeren event'i yakalamalısın.
Session ID olmadan gönderirsen 400 Bad Request: Missing session ID alırsın.