0

Giải thích căn bản về Model Context Protocol (MCP)

MCP là gì? Giao thức giúp AI kết nối với thế giới thực

Nếu bạn đang theo dõi tin tức về AI trong thời gian gần đây, chắc chắn đã nghe qua cụm từ MCP. Vậy nó là gì, tại sao mọi người lại nói về nó nhiều đến vậy? Bài này mình sẽ giải thích theo kiểu dễ hiểu nhất có thể, không cần biết sâu về AI hay ML vẫn đọc được.


Vấn đề bắt đầu từ đây

Hãy thử tưởng tượng bạn đang dùng một trợ lý AI thông minh. Bạn hỏi nó: "Hôm nay trong thư mục Downloads của tôi có file nào mới không?"

Trợ lý nhìn bạn và... không biết. Vì nó chỉ biết những gì bạn gõ vào chat, không biết gì về máy tính thực tế của bạn.

Đây là giới hạn cốt lõi của các AI hiện tại. Chúng được huấn luyện trên dữ liệu đến một thời điểm nào đó, và không có khả năng tự mình truy cập vào hệ thống bên ngoài — dù đó là file của bạn, database của công ty hay tài khoản GitHub.

Muốn AI làm được điều đó, người ta phải tự code tích hợp riêng cho từng trường hợp. AI app A muốn kết nối GitHub thì phải viết code riêng. AI app B cũng muốn kết nối GitHub thì lại phải viết lại từ đầu. Cứ thế, công việc bị lặp đi lặp lại, và mỗi tích hợp lại có cách làm khác nhau, dễ xảy ra lỗi.

MCP ra đời để giải quyết đúng vấn đề này.


MCP là gì?

MCP (viết tắt của Model Context Protocol) là một giao thức mở, do Anthropic phát triển và công bố vào cuối năm 2024.

Nói nôm na, MCP là một "chuẩn chung" để các ứng dụng AI có thể kết nối với các nguồn dữ liệu và công cụ bên ngoài theo một cách thống nhất.

Nếu bạn quen làm web, hãy nghĩ đến USB. Trước khi có USB, mỗi thiết bị dùng một cổng riêng — chuột một kiểu, bàn phím một kiểu, máy in một kiểu. Sau khi có USB, mọi thứ kết nối theo cùng một chuẩn, ai cũng biết cách dùng. MCP đóng vai trò tương tự với thế giới AI.

Một câu tóm gọn: MCP là "USB của AI" — giúp AI kết nối với thế giới bên ngoài theo một chuẩn duy nhất.

Hình 1: AI kết nối với nhiều nguồn dữ liệu thông qua MCP


Trước và sau khi có MCP

Để thấy rõ sự khác biệt, hãy nhìn vào hai tình huống:

Trước MCP, mỗi ứng dụng AI phải tự xây dựng kết nối riêng đến từng nguồn dữ liệu. 3 ứng dụng, 3 nguồn dữ liệu = 9 kết nối khác nhau, 9 đoạn code khác nhau, 9 cách xử lý lỗi khác nhau. Cực kỳ rối.

Sau khi có MCP, mỗi ứng dụng AI chỉ cần "nói chuyện" với lớp MCP theo một chuẩn duy nhất. MCP sẽ lo chuyện kết nối đến các nguồn dữ liệu. Muốn thêm nguồn mới? Chỉ cần thêm một MCP Server, không phải sửa code của ứng dụng AI.

Hình 2: Trước MCP — mỗi app tự kết nối riêng. Sau MCP — một chuẩn kết nối tất cả

Hình 2: Trước MCP — mỗi app tự kết nối riêng. Sau MCP — một chuẩn kết nối tất cả


Bên trong MCP có gì?

MCP hoạt động dựa trên 3 thành phần chính:

MCP Host là ứng dụng AI mà người dùng đang tương tác. Ví dụ: Claude Desktop, Cursor, hay bất kỳ IDE nào có tích hợp AI. Host là nơi bạn gõ câu hỏi và nhận câu trả lời.

MCP Client nằm bên trong Host. Đây là phần chịu trách nhiệm gửi yêu cầu và nhận kết quả từ các MCP Server. Người dùng thường không thấy nó trực tiếp.

MCP Server là những "bộ chuyển đổi" nhỏ, mỗi server quản lý một nguồn dữ liệu hoặc công cụ cụ thể. Ví dụ có MCP Server cho file system, MCP Server cho PostgreSQL, MCP Server cho GitHub, v.v. Server có thể chạy ngay trên máy bạn (local) hoặc trên internet (remote).

Giao tiếp giữa Client và Server dùng JSON-RPC — một định dạng nhẹ, dễ implement, đã được dùng rộng rãi trong ngành web từ lâu.

Hình 3: Kiến trúc Host → Client → Server → Dữ liệu

Hình 3: Kiến trúc Host → Client → Server → Dữ liệu


MCP Server có thể cung cấp những gì?

Mỗi MCP Server có thể phơi ra ba loại thứ:

Tools (công cụ) là những hành động mà AI có thể gọi để thực hiện điều gì đó — tìm kiếm trên web, chạy một câu SQL, gửi email, tạo file, v.v.

Resources (tài nguyên) là dữ liệu mà AI có thể đọc — nội dung một file, kết quả truy vấn database, danh sách commit trên GitHub.

Prompts (mẫu câu lệnh) là những template câu hỏi được định nghĩa sẵn để giúp AI biết cách tương tác tốt hơn với từng nguồn dữ liệu cụ thể.


Ví dụ thực tế: AI đọc code của bạn

Giả sử bạn đang dùng Cursor (IDE có AI tích hợp) và muốn hỏi AI về project của mình:

"Trong project này, hàm nào đang xử lý authentication?"

Với MCP, Cursor sẽ làm như sau:

  1. AI nhận câu hỏi của bạn
  2. MCP Client gửi yêu cầu đến MCP Server quản lý file system
  3. MCP Server đọc các file trong project của bạn
  4. Kết quả được trả về cho AI
  5. AI phân tích và trả lời chính xác dựa trên code thực tế

Không cần bạn copy-paste code vào chat. Không cần AI đoán mò. Tất cả dựa trên dữ liệu thực.


Tại sao MCP lại quan trọng?

Có ba lý do khiến MCP được cộng đồng AI đón nhận nhanh đến vậy:

Mở và miễn phí. Anthropic publish spec của MCP hoàn toàn công khai. Ai cũng có thể đọc, implement, và build MCP Server của riêng mình mà không cần xin phép hay trả phí.

Tách biệt rõ ràng. AI app và nguồn dữ liệu không cần biết chi tiết về nhau. Bạn có thể thay AI mới mà vẫn dùng MCP Server cũ, hoặc thêm nguồn dữ liệu mới mà không cần sửa code AI. Đây là nguyên tắc loose coupling quen thuộc trong lập trình.

Hệ sinh thái đang lớn nhanh. Hiện tại đã có hàng trăm MCP Server được cộng đồng chia sẻ — từ Slack, Notion, Jira, PostgreSQL, đến các dịch vụ cloud. Anthropic, GitHub, Cloudflare và nhiều công ty lớn đã ra MCP Server chính thức.


Ai đang dùng MCP?

Kể từ khi ra mắt cuối 2024, MCP đã được tích hợp vào khá nhiều sản phẩm thực tế:

  • Claude Desktop (của Anthropic) — hỗ trợ MCP ngay từ đầu
  • CursorWindsurf — các IDE AI phổ biến
  • Zed — editor đang nổi
  • Nhiều framework AI như LangChain và các nền tảng khác cũng đang thêm support

Cộng đồng open source cũng đang build rất nhiều MCP Server tự do, bạn có thể xem danh sách tại awesome-mcp-servers trên GitHub.


Hạn chế hiện tại

MCP vẫn còn khá mới và đang trong quá trình hoàn thiện. Một số điểm cần lưu ý:

Bảo mật là vấn đề quan trọng nhất. Khi AI có thể đọc file hệ thống hay truy vấn database, việc kiểm soát quyền truy cập trở nên rất cần thiết. Spec hiện tại có cơ chế authorization nhưng việc implement đúng phụ thuộc nhiều vào từng MCP Server cụ thể.

Trải nghiệm cài đặt vẫn còn hơi kỹ thuật. Để dùng MCP Server hiện tại, bạn thường phải chỉnh sửa file config JSON, chạy lệnh terminal — chưa thân thiện với người dùng phổ thông.

Chưa có chuẩn thống nhất hoàn toàn về cách các server xử lý lỗi hay phân quyền, dù Anthropic đang cải thiện dần qua từng phiên bản spec.


Kết

MCP không phải là một AI mới, cũng không phải là tính năng của riêng Claude. Nó là một giao thức — một "ngôn ngữ chung" — để AI có thể làm việc thực sự với dữ liệu của bạn, thay vì chỉ trò chuyện trong bong bóng.

Nếu anh em đang build ứng dụng có tích hợp AI, rất đáng để tìm hiểu MCP. Và nếu bạn chỉ là người dùng cuối, hãy chú ý các ứng dụng AI mà bạn đang dùng — nhiều khả năng chúng sẽ sớm hỗ trợ MCP nếu chưa có.

Spec đầy đủ và tài liệu chính thức có tại: modelcontextprotocol.io


Bài viết có gì chưa rõ hoặc bạn muốn tìm hiểu thêm phần nào, để lại comment nhé!


All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí