📖 Nội dung bài học
Tóm tắt
MCP client đóng vai trò là cầu nối giao tiếp giữa server của bạn và các MCP server. Hãy coi nó như đ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 chức năng bên ngoài, client sẽ xử lý tất cả việc truyền tin nhắn và các chi tiết 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 các phương thức giao tiếp khác nhau. Cấu hình 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 đầu vào/đầu ra 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 loại tin nhắn
Sau khi kết nối, client và server trao đổi các loại tin nhắn cụ thể được định nghĩa trong đặc tả MCP. Các loại chính 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 một danh sách đầy đủ các chức năng có sẵn.

CallToolRequest/CallToolResult: Client bảo server "chạy công cụ cụ thể này với các đối số này" và nhận kết quả thực thi.
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 câu hỏi của họ đến server của bạn. Nhưng trước khi server của bạn có thể hỏi Claude để được trợ giúp, nó cần biết những công cụ nào có sẵn.

Server của bạn hỏi MCP client một danh sách các công cụ. Client gửi ListToolsRequest đến MCP server và nhận lại ListToolsResult với tất cả các công cụ có sẵn.

Giờ thì 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âu hỏi của người dùng cộng với danh sách các công cụ có sẵn.

Claude phân tích 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 nhận ra rằng Claude muốn chạy một công cụ, nhưng server của bạn không còn thực thi các công cụ trực tiếp nữa - đó là công việc của MCP server. Vì vậy, nó yêu cầu MCP client chạy công cụ với các đối số do Claude chỉ định.

MCP client gửi CallToolRequest đến MCP server, sau đó thực hiện yêu cầu thực tế đến GitHub để lấy kho lưu trữ của người dùng.

GitHub phản hồi với dữ liệu kho lưu trữ, mà MCP server gói gọn trong một CallToolResult và gửi lại cho MCP client.

MCP client chuyển kết quả tool trở lại server của bạn, sau đó gửi nó đến Claude như một phần của tin nhắn tiếp theo.

Cuối cùng, Claude có tất cả thông tin cần thiết và đưa ra một phản hồi như "Kho lưu trữ của bạn là..." được gửi lại thông qua server của bạn đến người dùng.

Đúng vậy, luồng này bao gồm 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 trong khi vẫn có quyền truy cập vào các công cụ và dịch vụ bên ngoài mạnh mẽ.
🔁 Bài học liên quan
- Bài tiếp: Project setup
- Bài trước: Introducing MCP
- Cùng section: Overview of Claude Models · Accessing the API · Making a request
- 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-in-amazon-bedrock/276793
- © 2025 Anthropic. Chỉ dùng cho mục đích giáo dục, fair-use.
- Crawl: — · Chuẩn hoá: 2026-05-01