Descriere & Utilizare
Protocolul MCP separă complet logica mesajelor JSON-RPC de canalul fizic prin care circulă acestea (numit Transport Layer). Există două moduri oficiale de transport, alese în funcție de locul unde rulează serverul.
Transportul stdio (Standard Input/Output) este destinat serverelor locale: aplicația Host (Claude Desktop, Cursor) pornește serverul MCP ca subproces pe propriul tău calculator (prin npx, uvx, python sau docker) și comunică cu el prin fluxurile stdin și stdout. Are latență zero și acces direct la fișierele locale.
Transportul Streamable HTTP (care a evoluat din HTTP + SSE) este destinat serverelor partajate în cloud sau în rețeaua companiei: serverul rulează independent pe un URL HTTPS (ex: /mcp), acceptând cereri POST și fluxuri de evenimente SSE de la mai mulți clienți autentificați.
Cum să o reții ușor
💡 Transportul stdio este ca un cablu scurt conectat direct la perifericul de pe biroul tău, în timp ce Streamable HTTP este conexiunea Wi-Fi securizată către un server central folosit de toată echipa.
Opțiuni și parametri tehnici
stdio (stdin / stdout / stderr): mesajele JSON-RPC circulă exclusiv pestdout(câte un JSON pe linie); orice log de depanare trebuie scris obligatoriu pestderr!Streamable HTTP (/mcp): un singur endpoint HTTP care suportă atât răspunsuri JSON directe, cât și upgrade la fluxuri SSE (Server-Sent Events) pentru notificări și streaming.Mcp-Session-Id: antet HTTP standardizat pentru menținerea sesiunii cu stare între client și serverul remote.
Exemple practice și cazuri de utilizare
- Regulă de aur în
stdio: în Python nu folosi niciodatăprint("Mesaj debug")simplu (care scrie înstdoutși corupe JSON-RPC!), ciprint("Debug", file=sys.stderr)sau modulullogging. - Pornirea unui server FastMCP în modul stdio (implicit):
mcp.run(transport="stdio"). - Pornirea aceluiași server FastMCP în modul HTTP pentru rețea:
mcp.run(transport="streamable-http", host="0.0.0.0", port=8000).
Sfaturi de configurare & capcane
Dacă un server MCP local îți dă eroarea „Unexpected token in JSON at position 0” în Claude Desktop sau Cursor, cauza este aproape întotdeauna o bibliotecă ce a afișat un text sau un banner în stdout la pornire.
Comenzi și ghiduri înrudite
mcp-servers-json-config: Resursă asociată din acest modul.fastmcp-python-server: Resursă asociată din acest modul.mcp-oauth-security: Resursă asociată din acest modul.