Beginner's Guide

Imagine two apps trying to chat.

They already agree on what to say (JSON-RPC messages), but they still need to pick how to deliver those messages—like choosing between passing sticky-notes, talking on the phone, or jumping onto a video call.

That "how" is called a transport mechanism.

MCP Transport Mechanisms Overview

1 The Three Built-in Ways to Deliver Messages

Transport Everyday Analogy (for Western life) When It's Great When It's Not
stdio
Two programs sitting on the same laptop, sliding Post-it notes under the keyboard
Fast (no network)
Super simple
Totally private
Only works locally
One client at a time
SSE
(old)
A one-way radio broadcast plus a text hotline on the side
Lets a remote server "stream" data (like sports scores)
Disconnects a lot on serverless/cloud
Being phased out
Streamable HTTP
(new)
A Zoom link that starts with chat messages but can switch to live video
Cloud-native, easy to reconnect
One URL does everything
A little more code than stdio

2 How Each One Feels in Real Life

stdio – "Passing Sticky Notes Locally"
SSE – "Old-School Live Radio" (legacy)
Streamable HTTP – "Zoom-Style All-in-One Link"

3 Quick "Which One Should I Use?" Decision Guide

🤔 Are both client & server on the same machine?

✅ YES

⚡ Use stdio

Easy win! Fast, simple, and secure for local communication.

Recommended
❌ NO
Already running on old SSE?
👍 Yes
Keep SSE for now
But plan to migrate
👎 No
Streamable HTTP
The modern choice
🔧
Advanced Option: Need something different? You can write a custom REST transport. MCP lets you plug in anything, as long as the payload is still JSON-RPC.

4 Key Takeaways in One Breath

Pick the channel that matches where your app lives, and your MCP messages will arrive safe and sound.