Tất tần tật về Model Context Protocol (MCP)

0 0 0

Người đăng: Tran Trung Kien

Theo Viblo Asia

Lời mở đầu

Xin chào mọi người, lại là tôi đây. Trong thế giới AI ngày nay, một trong những thách thức lớn nhất không chỉ là xây dựng những mô hình mạnh mẽ, mà còn là làm thế nào để mô hình có thể giao tiếp, hiểu và phối hợp hiệu quả với các công cụ, dữ liệu, hay dịch vụ bên ngoài. Đây chính là lý do Model Context Protocol (MCP) ra đời.

Trong bài viết này, chúng ta sẽ cùng nhau đi sâu vào khám phá MCP là gì, tại sao nó quan trọng, cách nó hoạt động và những ứng dụng thực tế mà MCP có thể mang lại.

I. Model Context Protocol

Các khái niệm và thuật ngữ chính

Trước khi đi sâu vào Model Context Protocol, việc hiểu các khái niệm và thuật ngữ chính của MCP là rất quan trọng.

Phần này sẽ giới thiệu về những ý tưởng cơ bản và thuật ngữ liên quan đến MCP.

MCP được định nghĩa như là "USB-C for AI applications.". MCP cung cấp giao thức nhất quán để liên kết các model AI với các công cụ bên ngoài.

The Integration Problem

M x N Integration Problem là thuật ngữ nói đến sự thách thức của việc kết nối M ứng dụng AI với N công cụ bên ngoài (hoặc là nguồn dữ liệu)

Khi chưa có MCP (M x N Problems)

Khi không có giao thức như MCP, mỗi ứng dụng AI cần tích hợp với mỗi tool bên ngoài một cách riêng biệt. Việc này rất phức tạp và tốn kém chi phí và thời gian. image.png

Khi chúng ta có nhiều ứng dụng AI và nhiều tool, số lượng tool cần tích hợp là vô cùng lớn (M x N problems) image.png

Khi có MCP (M + N solutions)

MCP xử lý vấn đề M x N problems thành M + N solutions bằng cách cung cấp một chuẩn kết nối: mỗi ứng dụng AI được triển khai ở phía máy khách MCP một lần, và mỗi tool/data source triển khai ở phía Server một lần.
image.png

Thuật ngữ chính của MCP

Components

Tương tự như client server trong HTTP, MCP cũng có client và server image.png

  • Host: Phần người dùng tương tác trực tiếp với ứng dụng AI (có thể là Claude Desktop, Cursor)
  • Client: Thành phần nằm trong Host đảm nhiệm phần kết nối tới MCP Server
  • Server: Một chương trình bên ngoài hoặc một service cung cấp các khả năng (tools, resources, prompts) thông qua MCP protocols.

Capabilities

Mặc dù có rất nhiều tool mà MCP có thể kết nối đến, tuy nhiên sẽ có những tool chung được sử dụng cho nhiều ứng dụng AI. Dưới đây là các loại tool được sử dụng cho nhiều ứng dụng AI.

  1. Tools: Một hàm mà model AI cung cấp có thể thực thi các hành động hoặc là tính toán. (Ví dụ tool get_weather)
  2. Resources: Read-only data sources cung cấp context mà không cần tính toán quan trọng (Ví dụ các scientific papers cho trợ lý nghiên cứu)
  3. Prompts: Các templates hoặc workflows hướng dẫn tương tác giữa users, AI moels và các công cụ bên ngoài image.png

II. Architecture Components của MCP

Sau khi đã nắm được các khái niệm và thuật ngữ chính cho MCP, chúng ta sẽ đến với kiến trúc của MCP.

Host, Client, và Server

Model Context Protocol (MCP) được xây dựng dựa trên kiến trúc client-server giúp cung cấp khả năng tương tác giữa mô hình AI và công cụ bên ngoài. image.png

Host

Host là phần người dùng cuối (end users) tương tác trực tiếp với ứng dụng AI. Ví dụ như Claude Desktop, Cursor...

Host sẽ chịu trách nhiệm:
- Quản lý tương tác và quyền của người dùng
- Khởi tạo kết nối tới MCP Servers thông qua MCP Clients
- Xử lý request của người dùng để điều hướng luồng tới các công cụ bên ngoài
- Trả về kết quả cho người dùng

Client

Client là thành phần nằm trong Host giúp quản lý kết nối với MCP server cụ thể. Client có các đặc điểm:

  • Mỗi client duy trì kết nối 1:1 tới một Server
  • Xử lý protocol-level của MCP
  • Hoạt động như phần trung gian giữa Host và Server

Server

Server là chương trình bên ngoài hoặc dịch vụ cung cấp cho mô hình AI thông qua MCP protocols.
Server sẽ chịu trách nhiệm:

  • Cung cấp kết nối tới các thành phần bên ngoài như các tools, nguồn dữ liệu hoặc dịch vụ.
  • Có thể chạy local (cùng máy với Host) hoặc remotely (thông qua mạng)
  • Cung cấp chuẩn kết nối giúp Clients có thể sử dụng

Communication Flow

Tiếp theo chúng ta sẽ đến với workflows của MCP: image.png

  1. Ban đầu, người dùng sẽ tương tác với Host.
  2. Host sẽ thực hiện xử lý yêu cầu của người dùng, sử dụng LLM để xác định công cụ bên ngoài nào cần được sử dụng
  3. Host chỉ định Client đi connect tới Server
  4. Client sẽ gọi tới Server để trả về danh sách các tool của Server
  5. Host sẽ chỉ dẫn Client để sử dụng tool được lấy từ server
  6. Server sẽ thực thi yêu cầu và trả về kết quả cho client.
  7. Host sẽ tổng hợp kết quả từ client và sinh ra câu trả lời cho người dùng.

image.png

III. Communication Protocol

Cuối cùng chúng ta sẽ đi đến phần giao thức MCP.

JSON-RPC: The Foundation

MCP sử dụng JSON-RPC 2.0 để xử lý tất cả kết nối giữa Client và Server. JSON-RPC là phiên bản nhẹ hơn của RPC (Remote Procedure Call) được mã hóa trong JSON, nó giúp cho:

  1. Dễ đọc và debug
  2. Không phụ thuộc ngôn ngữ, hỗ trợ triển khai trong mọi môi trường lập trình
  3. Có thông số kỹ thuật rõ ràng và được áp dụng rộng rãi image.png

Giao thức có 3 loại message:

  1. Request
  • Là message được gửi từ Client tới Server để khởi tạo kết nối. Request Message bao gồm: image.png
  1. Responses
  • Được gửi từ Server trả về Client để phản hồi lại Request. Response Message bao gồm: image.png
  1. Notifications
  • Là dạng message một chiều, chỉ được gửi từ Server trả về Client để cung cấp cập nhật hoặc thông báo về sự kiện nào đó. image.png

Transport Mechanisms

MCP chỉ định cách các message được vận chuyển giữa Client và Server như sau:

  1. stdio (Standard Input/Output)
  • Được sử dụng khi Client và Server chạy trên cùng một máy
  • Ứng dụng Host khởi chạy Server như một tiến trình con và giao tiếp với Server bằng cách ghi vào đầu vào chuẩn (stdin) và đọc từ đầu ra chuẩn (stdout).
  1. HTTP + SSE (Server-Sent Events) / Streamable HTTP
  • Được sử dụng khi Client và Server khác máy
  • Giao tiếp diễn ra qua HTTP, trong đó Server sử dụng Server-Sent Events (SSE) để đẩy các update và notifications tới Clients qua kết nối liên tục.

Kết luận

Trên đây chúng ta đã cùng tìm hiểu về Model Context Protocol (MCP). Hi vọng có thể giúp đỡ được các bạn hiểu thêm phần nào về MCP.

Bình luận

Bài viết tương tự

- vừa được xem lúc

Model Context Protocol: Giao thức ngữ cảnh cho mô hình AI hiện đại

Trong thời đại trí tuệ nhân tạo (AI) phát triển mạnh mẽ, việc tối ưu hóa cách các mô hình xử lý thông tin ngữ cảnh trở thành yếu tố then chốt để nâng cao hiệu suất và trải nghiệm người dùng. Một khái

0 0 27

- vừa được xem lúc

Model Context Protocol: Bí quyết đằng sau các công cụ AI thông minh

Bạn có bao giờ tự hỏi làm sao các công cụ như Cursor có thể nhớ được bạn đang làm gì trên nhiều file, tab, thậm chí là toàn bộ dự án—mà không xâm phạm quyền riêng tư hay gây rối mọi thứ? Bí mật nằm ở

0 0 21

- vừa được xem lúc

So sánh MCP và A2A: Hai Giao thức Quan trọng Cho Tương Lai AI

Trong bối cảnh AI đang bùng nổ với các mô hình ngôn ngữ lớn (LLMs) và các Autonomous agents, việc giao tiếp giữa các hệ thống (cả nội bộ lẫn bên ngoài) trở nên cần thiết hơn bao giờ hết. Hai giao thức

0 0 27

- vừa được xem lúc

MCP+Database: Một Phương Pháp Mới với Hiệu Quả Truy Xuất Tốt Hơn RAG!

Trong những năm gần đây, Mô Hình Ngôn Ngữ Lớn (LLMs) đã thể hiện những khả năng ấn tượng trong các tác vụ xử lý ngôn ngữ tự nhiên. Tuy nhiên, những hạn chế của các mô hình này, chẳng hạn như kiến thức

0 0 24

- vừa được xem lúc

FastAPI MCP là gì? Tích hợp AI dễ dàng cho các API FastAPI của bạn

Hôm nay, chúng ta hãy cùng khám phá một công cụ cực kỳ thực tiễn — FastAPI MCP. Nếu bạn đang xây dựng API bằng FastAPI và muốn các endpoint của bạn có thể được AI (như GPT, Claude, v.

0 0 20

- vừa được xem lúc

Giới thiệu về Model Context Protocol (MCP)

Trong kỷ nguyên bùng nổ của trí tuệ nhân tạo, chúng ta đã chứng kiến những bước tiến vượt bậc về khả năng suy luận và chất lượng của các mô hình ngôn ngữ lớn (LLM). Tuy nhiên, có một vấn đề vẫn luôn t

0 0 17