Model Context Protocol (MCP) đã nhanh chóng trở thành tiêu chuẩn để kết nối các mô hình ngôn ngữ lớn (LLM) với các nguồn dữ liệu và công cụ bên ngoài. Là kiến trúc sư và nhà phát triển, việc chọn đúng lớp truyền tải (transport layer) là cực kỳ quan trọng đối với hiệu suất, bảo mật và khả năng mở rộng. Mặc dù MCP không phụ thuộc vào một giao thức cụ thể, ba mô hình chính đang thống trị hiện nay là: Stdio, HTTP với Server-Sent Events (SSE), và WebSocket.
Trong bài viết này, chúng ta sẽ phân tích từng phương pháp, xem xét các đánh đổi về kiến trúc và đưa ra hướng dẫn cụ thể về thời điểm nên sử dụng từng cách — để bạn đưa ra lựa chọn đúng đắn cho hệ thống AI của mình.
1. Stdio: Sức mạnh cục bộ
Cách hoạt động: Trong mô hình Stdio, MCP server chạy như một subprocess cục bộ trên cùng máy với AI client. Giao tiếp diễn ra qua stdin và stdout bằng các message JSON-RPC. Tiến trình cha (AI assistant hoặc plugin IDE của bạn) khởi tạo tiến trình con và truyền message trực tiếp.
Ưu điểm:
- Không có overhead mạng — giao tiếp trong cùng một tiến trình
- Cài đặt đơn giản: không cần port, TLS hay auth header
- Lý tưởng cho công cụ lập trình (Cursor, VS Code extensions, Claude Desktop)
- Truy cập đầy đủ vào filesystem và biến môi trường cục bộ
Nhược điểm:
- Không thể chia sẻ giữa các máy hoặc người dùng
- Vòng đời tiến trình gắn liền với tiến trình cha
- Khó theo dõi và debug trong môi trường production
Khi nào nên dùng: Stdio phù hợp cho công cụ lập trình cá nhân, workflow AI cục bộ, và các tình huống MCP server cần truy cập trực tiếp vào môi trường local của developer.
2. HTTP + SSE: Tiêu chuẩn Production
Cách hoạt động: MCP server được triển khai như một HTTP server, thường trên cloud provider hoặc VPS nội bộ. AI client gửi request qua HTTPS, và server stream response trở lại bằng Server-Sent Events (SSE) — một giao thức streaming một chiều được xây dựng trên HTTP.
Ưu điểm:
- Deploy một lần, truy cập từ mọi nơi
- Hỗ trợ kiến trúc multi-user và multi-tenant
- Tương thích với hạ tầng HTTP hiện có (load balancer, CDN, WAF)
- SSE nhẹ và hoạt động tốt trên HTTP/2
Nhược điểm:
- Cần xác thực đúng cách (OAuth, API key, JWT)
- SSE là một chiều — server đẩy, client lắng nghe
- Latency cao hơn Stdio cho các use case cục bộ
Khi nào nên dùng: Đây là mô hình cho các triển khai MCP production. Dùng khi MCP server cần chia sẻ cho cả team, tích hợp vào CI/CD pipeline, hoặc kết nối với các nguồn dữ liệu trên cloud như CRM, ERP.
3. WebSocket: Kiến trúc Realtime
Cách hoạt động: WebSocket thiết lập kết nối liên tục, full-duplex giữa AI client và MCP server. Khác với SSE, cả hai phía đều có thể gửi message bất cứ lúc nào mà không cần bắt tay HTTP mới.
Ưu điểm:
- Giao tiếp hai chiều thực sự
- Overhead thấp hơn sau khi bắt tay
- Cho phép server chủ động push event (ví dụ: hoàn thành task nền)
Nhược điểm:
- Hạ tầng phức tạp hơn — kết nối WebSocket là stateful, khó scale ngang
- Cần sticky sessions hoặc pub/sub layer cho triển khai đa instance
- Quá mức cần thiết cho hầu hết use case MCP
Khi nào nên dùng: WebSocket phát huy sức mạnh khi AI agent cần nhận event realtime từ server — ví dụ: theo dõi job chạy nền, subscribe vào data feed trực tiếp, hoặc xây dựng workspace AI cộng tác.
Ma trận so sánh
| Tiêu chí | Stdio | HTTP + SSE | WebSocket |
|---|---|---|---|
| Môi trường triển khai | Máy local | Cloud / VPS | Cloud / VPS |
| Hỗ trợ multi-user | ❌ | ✅ | ✅ |
| Độ phức tạp setup | Thấp | Trung bình | Cao |
| Latency | Thấp nhất | Trung bình | Thấp |
| Hai chiều | ✅ (in-process) | Một phần (SSE) | ✅ (full-duplex) |
| Yêu cầu Auth | Không | Có | Có |
| Phù hợp nhất cho | Dev tools | Production APIs | Realtime agents |
Khuyến nghị thực tế
Với hầu hết các team xây dựng workflow MCP:
- Bắt đầu với Stdio trong quá trình phát triển. Nhanh, không cần hạ tầng, dễ iterate.
- Chuyển sang HTTP + SSE khi cần chia sẻ server với team hoặc deploy production. Đây phù hợp với 90% use case doanh nghiệp.
- Cân nhắc WebSocket chỉ khi có yêu cầu cụ thể về event server-initiated hoặc giao tiếp hai chiều ultra-low latency.
Hệ sinh thái MCP vẫn đang phát triển, và các mô hình transport sẽ trưởng thành cùng với nó. Nhưng đưa ra lựa chọn kiến trúc đúng đắn từ sớm sẽ giúp bạn tiết kiệm đáng kể công sức refactor khi AI tooling của bạn mở rộng quy mô.