📖 Nội dung bài học
Tóm tắt
MCP client đóng vai trò cầu nối giao tiếp giữa server của bạn và các MCP server. Hãy xem nó như một điểm truy cập của bạn đến tất cả các công cụ mà một MCP server cung cấp. Khi bạn cần dùng các công cụ hoặc dịch vụ bên ngoài, client sẽ xử lý tất cả việc truyền thông điệp và các chi tiết về giao thức cho bạn.
Giao tiếp độc lập với phương thức truyền tải
Một trong những điểm mạnh chính của MCP là tính độc lập với phương thức truyền tải - một cách nói hoa mỹ để chỉ client và server có thể nói chuyện với nhau bằng nhiều phương pháp giao tiếp khác nhau. 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, nơi chúng giao tiếp thông qua input/output chuẩn.

Nhưng bạn không bị giới hạn ở cách tiếp cận đó. MCP client và server cũng có thể kết nối qua:
- HTTP
- WebSockets
- Nhiều giao thức mạng khác

Các kiểu thông điệp
Khi đã kết nối, client và server trao đổi các kiểu thông điệp cụ thể được định nghĩa trong đặc tả MCP. Các kiểu thông điệp chính mà bạn sẽ làm việc cùng là:

ListToolsRequest/ListToolsResult: Client hỏi server "bạn cung cấp những công cụ nào?" và nhận lại danh sách các công cụ khả dụng.

CallToolRequest/CallToolResult: Client yêu cầu server chạy một công cụ cụ thể với các đối số nhất định, sau đó nhận kết quả.

Ví dụ về luồng đầy đủ
Đây là cách tất cả các thành phần hoạt động cùng nhau trong một tình huống thực tế. Giả sử người dùng hỏi "Tôi có những kho lưu trữ nào?" - đây là luồng giao tiếp đầy đủ:

Quá trình bắt đầu khi người dùng gửi một truy vấn đến server của bạn. Server của bạn nhận ra rằng nó cần cung cấp cho Claude danh sách các công cụ khả dụng trước khi thực hiện yêu cầu.

Server của bạn hỏi MCP client về các công cụ, client gửi một ListToolsRequest đến MCP server và nhận lại một ListToolsResult.

Giờ server của bạn có mọi thứ cần thiết để thực hiện yêu cầu ban đầu đến Claude - cả câu hỏi của người dùng và các công cụ khả dụng.

Claude xem xét các công cụ và quyết định cần gọi một công cụ để trả lời câu hỏi. Nó phản hồi bằng một yêu cầu dùng tool.

Server của bạn yêu cầu MCP client thực thi công cụ mà Claude yêu cầu. MCP client gửi một CallToolRequest đến MCP server, sau đó server này thực hiện yêu cầu thực tế đến GitHub.

GitHub trả về dữ liệu kho lưu trữ, luồng này quay trở lại thông qua MCP server dưới dạng CallToolResult, sau đó đến MCP client, và cuối cùng đến server của bạn.

Server của bạn gửi kết quả tool trở lại Claude trong một thông điệp tiếp theo. Claude giờ có tất cả thông tin cần thiết để đưa ra một phản hồi đầy đủ.

Cuối cùng, Claude phản hồi với câu trả lời đã được định dạng, server của bạn chuyển lại cho người dùng.
Đúng vậy, luồng này liên quan đến nhiều bước, nhưng mỗi thành phần có một 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 việc xây dựng logic ứng dụng của mình. Khi chúng ta triển khai MCP client và server của riêng mình, bạn sẽ thấy từng thành phần kết hợp với nhau như thế nào trong thực tế.
🔁 Bài học liên quan
- Bài tiếp: Project setup
- Bài trước: Introducing MCP
- Cùng section: Making a request · Multi-Turn conversations · Chat exercise
- Thuộc lộ trình: Path C
- 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/claude-with-the-anthropic-api/287775
- © 2025 Anthropic. Chỉ dùng cho mục đích giáo dục, fair-use.
- Crawl: — · Chuẩn hoá: 2026-05-01