← Chương trước: Executive Summary: MCP - Control Plane Của Hệ Sinh Thái AI | Mục lục Series | Chương tiếp theo: Phần 2: Build Production Server Bằng Go →
Answer-first: Giao thức MCP chuẩn hóa giao tiếp AI-to-Machine qua 5 primitive cốt lõi: Tools, Resources, Prompts, Sampling và Roots trên nền JSON-RPC 2.0. Bài viết phân tích chi tiết cơ chế hoạt động, các phương thức transport từ Stdio đến Streamable HTTP (SSE) và Server Cards chuẩn AAIF.
Khi Anthropic lần đầu giới thiệu Model Context Protocol (MCP) vào tháng 11 năm 2024, nó giống như một món đồ chơi dành cho các developer chạy Claude Code trên terminal. Nhưng với việc dự án được chuyển giao cho Agentic AI Foundation (thuộc Linux Foundation), MCP đã rũ bỏ mác “vendor-lock-in” để trở thành một chuẩn mở (open standard) thực thụ cho toàn ngành.
Để triển khai MCP lên production, trước hết chúng ta phải hiểu rõ cấu trúc lõi và sự tiến hóa trong tầng Network Transport của nó.
1. Mổ Xẻ 5 Core Primitives
MCP sử dụng JSON-RPC 2.0 để giao tiếp. Nhưng thay vì để các lập trình viên tự do định nghĩa mọi thứ (như gRPC hay REST), MCP chuẩn hóa giao tiếp AI-to-Machine thành 5 “thực thể” cốt lõi (Primitives):
Tools (Công cụ):
- Bản chất: Là các hàm (functions) có thể thực thi, có mang side-effects (thay đổi trạng thái hệ thống).
- Ví dụ:
create_github_issue(),restart_kubernetes_pod(). - Use case: Agent sử dụng Tools để “hành động” thay mặt người dùng.
Resources (Tài nguyên):
- Bản chất: Các data entities read-only (chỉ đọc) và idempotent.
- Ví dụ:
file:///var/log/syslog,postgres://db/schema. - Use case: Agent cần đọc tài liệu hoặc context để hiểu rõ vấn đề trước khi ra quyết định. Nó giống như việc “đính kèm file” vào prompt, nhưng được thực hiện tự động qua URI.
Prompts (Mẫu câu lệnh):
- Bản chất: Các templates được định nghĩa sẵn bởi Server, có chứa tham số (parameters).
- Use case: Thay vì client phải tự nghĩ ra prompt, Server (được viết bởi domain experts) sẽ cung cấp prompt chuẩn. Ví dụ: một
code_review_promptcó thể ép Agent phải kiểm tra memory leak trong C++.
Sampling (Lấy mẫu ngược):
- Bản chất: Đây là một Reverse Capability. MCP Server có quyền gửi request ngược lại cho LLM của Client để nhờ suy luận (generate completion).
- Use case: Cực kỳ quan trọng trong các Agentic Workflow phức tạp, nơi Server cần một chút “trí thông minh” từ mô hình để quyết định bước tiếp theo mà không cần phơi bày toàn bộ logic cho Client.
Roots (Gốc tài nguyên):
- Bản chất: Các Base URIs định nghĩa security boundaries (ranh giới bảo mật).
- Use case: Server nói cho Client biết “Bạn chỉ được quyền đọc các Resources nằm trong thư mục
/app/data/này thôi”.
flowchart TD
A["AI Agent / LLM"] <-->|"JSON-RPC 2.0"| B["MCP Server"]
subgraph Primitives
B -->|"Thực thi hành động"| C["Tools"]
B -->|"Đọc ngữ cảnh"| D["Resources"]
B -->|"Cung cấp template"| E["Prompts"]
B -.->|"Nhờ Agent suy luận"| F["Sampling"]
end
C --> G[("Database / API")]
D --> H["Local Files"]
2. Transport Evolution: Từ Local Đến Enterprise
Giao thức MCP hoàn toàn tách biệt với tầng Network Transport. Đây là một thiết kế thông minh, nhưng cũng là điểm gây nhầm lẫn nhiều nhất cho các hệ thống Enterprise.
Môi Trường Cục Bộ: STDIO
Ban đầu, MCP được thiết kế để chạy dưới dạng Subprocess. Client sẽ khởi chạy Server process và nói chuyện qua Standard Input/Output (stdio).
- Ưu điểm: Zero network latency, cấu hình đơn giản.
- Khuyết điểm: Chỉ chạy được trên cùng một máy ảo (localhost). Khả năng mở rộng (Scaling) bằng 0. Hoàn toàn vô dụng trong mô hình Microservices phân chuyên.
Trạm trung chuyển: HTTP + SSE (Legacy Remote)
Để giải quyết bài toán mạng, cộng đồng đưa ra transport qua Server-Sent Events (SSE). Client gửi POST request, và nhận kết nối stream qua GET SSE.
- Vấn đề: Rất nhiều proxy, API Gateways, và Load Balancers trong môi trường Enterprise cấu hình sai hoặc tự động drop các kết nối SSE sống lâu (long-lived connections). Việc duy trì trạng thái (stateful) qua SSE cực kỳ khó khăn khi scale ngang (Horizontal Pod Autoscaling).
Bản cập nhật 07/2026: Kiến trúc Phi Trạng Thái (Stateless Core)
Đến bản cập nhật đặc tả ngày 28/07/2026, kiến trúc MCP đã chuyển đổi hoàn toàn sang mô hình phi trạng thái. Nó giải quyết triệt để bài toán kiến trúc phân tán bằng cách loại bỏ session handshake (bỏ initialize/initialized) và đưa mọi metadata vào trường _meta của mỗi request:
- Stateless: Mỗi request đều tự thân (self-contained) chứa đủ context. Server không cần duy trì persistent TCP connection hay session-store quản lý trạng thái.
- Load Balancer Native: Hoạt động hoàn hảo với Nginx, Envoy, ALB, hay bất kỳ ingress controller nào (thậm chí là Serverless) do không cần cơ chế dính (sticky sessions).
- Horizontal Scaling: Bạn có thể có 100 instance của một MCP Server đằng sau Load Balancer, request từ Agent sẽ được route đến bất kỳ instance nào mà không bị lỗi.
- Discovery Mới: Cập nhật phương thức
server/discovercho phép truy vấn capabilities ngay mà không cần tạo stateful connection trước.
3. MCP Server Cards: Khám Phá (Discovery) Không Cần Kết Nối
Một bài toán lớn trong Enterprise là: “Làm sao một Agent biết trong tổ chức có những tool gì đang tồn tại mà không cần thiết lập kết nối đến từng server một?”
Giải pháp chính là MCP Server Cards. Tương tự như .well-known/openid-configuration của OAuth, các MCP Server expose một file metadata tại /.well-known/mcp-server.
File này chứa thông tin có cấu trúc về:
- Các tools và resources hiện có.
- Phiên bản của schema (Semantic Versioning).
- Các yêu cầu về xác thực (OAuth 2.1 scopes).
Nhờ Server Cards, hệ thống Gateway có thể crawl và lập chỉ mục (index) toàn bộ capabilities của tổ chức vào một Internal Registry. Khi Agent cần tìm một tool để “deploy lên staging”, nó chỉ cần hỏi Registry thay vì phải mở kết nối mù mờ.
Bây giờ bạn đã nắm được lý thuyết, trong bài tiếp theo, chúng ta sẽ bắt tay vào code thực tế: Sử dụng Official Go SDK để build một MCP Server tuân thủ các nguyên tắc Production-grade.
🔗 Đọc thêm các chuyên đề liên quan:
- Kiến trúc Microservices Golang & DDD
- Triển khai Agentic AI Swarm trong Production với OpenClaw & LiteLLM
- Kiến trúc Microservices Golang gRPC: Protobuf, TLS & Middleware
← Chương trước: Executive Summary: MCP - Control Plane Của Hệ Sinh Thái AI | Mục lục Series | Chương tiếp theo: Phần 2: Build Production Server Bằng Go →
❓ Câu Hỏi Thường Gặp (FAQ)
Q1: Protocol Fundamentals & Transport Evolution giải quyết vấn đề cốt lõi nào trong kiến trúc hệ thống?
Sự tiến hóa của giao thức MCP từ STDIO đến Streamable HTTP. Khám phá 5 Core Primitives và cách MCP Server Cards chuẩn bị cho hệ sinh thái Enterprise.
Q2: Những lưu ý quan trọng nhất khi triển khai thực tế là gì?
Cần chú trọng phân tầng ranh giới trách nhiệm (bounded context), thiết lập cơ chế fallback dự phòng, và giám sát chặt chẽ qua metrics OpenTelemetry để phát hiện sớm các điểm nghẽn.
Q3: Làm sao để kiểm thử và đánh giá hiệu quả sau khi áp dụng?
Áp dụng kiểm thử tải (load test), benchmark độ trễ P95/P99 trước và sau triển khai, kết hợp tracing phân tán để xác minh tính ổn định dưới tải cao.
