📖 Nội dung bài học
Summary
MCP client là cầu nối giao tiếp giữa server của bạn và các MCP server. Nó là điểm truy cập của bạn tới mọi tool mà MCP server cung cấp, xử lý việc trao đổi tin nhắn và các chi tiết protocol để ứng dụng của bạn không cần bận tâm.
Transport Agnostic Communication
Một trong những điểm mạnh của MCP là khả năng transport agnostic - nói một cách hoa mỹ là client và server có thể giao tiếp qua các protocol khác nhau tùy thuộc vào thiết lập của bạn.

Thiết lập phổ biến nhất là chạy cả MCP client và server trên cùng một máy, giao tiếp qua standard input/output. Nhưng bạn cũng có thể kết nối chúng qua:
- HTTP
- WebSockets
- Các protocol mạng khác nhau

MCP Message Types
Khi đã kết nối, client và server trao đổi các loại tin nhắn cụ thể được định nghĩa trong MCP specification. Các loại chính bạn sẽ làm việc là:

ListToolsRequest/ListToolsResult: Client hỏi server "bạn cung cấp những tool nào?" và nhận lại danh sách các tool có sẵn.

CallToolRequest/CallToolResult: Client yêu cầu server chạy một tool cụ thể với các tham số đã cho, sau đó nhận kết quả.
How It All Works Together
Đây là một ví dụ hoàn chỉnh cho thấy một user query chảy qua toàn bộ hệ thống - từ server của bạn, qua MCP client, tới các dịch vụ bên ngoài như GitHub, và quay lại Claude.
Giả sử người dùng hỏi "Tôi có những repository nào?" Đây là luồng từng bước:
- User Query: Người dùng gửi câu hỏi của họ tới server của bạn
- Tool Discovery: Server của bạn cần biết những tool nào có sẵn để gửi cho Claude
- List Tools Exchange: Server của bạn yêu cầu MCP client cung cấp các tool có sẵn
- MCP Communication: MCP client gửi
ListToolsRequesttới MCP server và nhậnListToolsResult - Claude Request: Server của bạn gửi user query cùng với các tool có sẵn tới Claude
- Tool Use Decision: Claude quyết định cần gọi một tool để trả lời câu hỏi
- Tool Execution Request: Server của bạn yêu cầu MCP client chạy tool mà Claude đã chỉ định
- External API Call: MCP client gửi
CallToolRequesttới MCP server, server này thực hiện cuộc gọi GitHub API thực tế - Results Flow Back: GitHub phản hồi với dữ liệu repository, dữ liệu này chảy ngược lại qua MCP server dưới dạng
CallToolResult - Tool Result to Claude: Server của bạn gửi kết quả tool trở lại cho Claude
- Final Response: Claude tạo ra câu trả lời cuối cùng bằng cách sử dụng dữ liệu repository
- User Gets Answer: Server của bạn trả lời người dùng bằng phản hồi của Claude

Đúng vậy, luồng này bao gồm nhiều bước, nhưng mỗi thành phần đều có trách nhiệm rõ ràng. MCP client trừu tượng hóa sự phức tạp của giao tiếp server, cho phép bạn tập trung vào logic ứng dụng của mình trong khi vẫn có quyền truy cập vào các tool và nguồn dữ liệu bên ngoài mạnh mẽ.
Hiểu rõ luồng này là rất quan trọng vì bạn sẽ thấy tất cả các thành phần này khi xây dựng MCP client và server của riêng mình trong các phần tiếp theo.
🔁 Bài học liên quan
- Bài tiếp: Project setup
- Bài trước: Introducing MCP
- Cùng section: Introducing MCP · Project setup · Defining tools with MCP
- Thuộc lộ trình: Path D
- Docs tham khảo: Glossary · Skills atlas · By use-case
📚 Nguồn & ghi nhận
- Bài học gốc Anthropic Academy: https://anthropic.skilljar.com/introduction-to-model-context-protocol/296690
- © 2025 Anthropic. Chỉ dùng cho mục đích giáo dục, fair-use.
- Crawl: 2026-04-23 · Chuẩn hoá: 2026-05-01