MCP là gì ?

MCP là gì ? Model Context Protocol là gì ?

MCP là Giao thức Ngữ cảnh Mô hình (MCP), được giới thiệu vào tháng 11 năm 2024, được trình bày như một giải pháp tiềm năng cho sự phân mảnh trong cách các tác nhân AI tương tác với các công cụ, dữ liệu và API bên ngoài. Đây là một giao thức mở cho phép các hệ thống cung cấp ngữ cảnh cho các mô hình AI theo cách tổng quát hóa được trên nhiều tích hợp. Giao thức định nghĩa cách một mô hình AI có thể gọi các công cụ bên ngoài, tìm nạp dữ liệu và tương tác với các dịch vụ.



Sự phát triển của MCP đã lấy cảm hứng từ Giao thức Máy chủ Ngôn ngữ (LSP). Tương tự như cách LSP cho phép giao tiếp giữa một trình soạn thảo mã (client) và một máy chủ ngôn ngữ cho các tính năng như tự động hoàn thành và chẩn đoán, MCP nhằm mục đích tạo ra một ngôn ngữ chung để các mô hình AI giao tiếp với các hệ thống bên ngoài. Tuy nhiên, MCP mở rộng hơn LSP bằng cách áp dụng mô hình thực thi lấy tác nhân làm trung tâm, không giống như LSP chủ yếu phản ứng với đầu vào của người dùng trong Môi trường Phát triển Tích hợp (IDE). MCP được thiết kế để hỗ trợ quy trình làm việc AI tự động, cho phép các tác nhân AI quyết định sử dụng công cụ nào, theo thứ tự nào và cách xâu chuỗi chúng lại với nhau để hoàn thành một nhiệm vụ dựa trên ngữ cảnh. Ngoài ra, MCP đã giới thiệu khả năng có sự tham gia của con người (human-in-the-loop) để con người cung cấp thêm dữ liệu và phê duyệt việc thực thi.

Hiện tại, với bộ máy chủ MCP phù hợp, người dùng về cơ bản có thể biến bất kỳ ứng dụng khách MCP nào thành một "ứng dụng vạn năng". Cursor, một trình soạn thảo mã, được nêu bật như một ứng dụng khách MCP được triển khai tốt. Bằng cách cài đặt các máy chủ MCP khác nhau (ví dụ: Slack, Resend, Replicate), Cursor có thể hoạt động như một ứng dụng khách Slack, một trình gửi email hoặc một trình tạo hình ảnh. Một cách mạnh mẽ hơn để tận dụng MCP là cài đặt nhiều máy chủ trên một ứng dụng khách duy nhất để mở khóa các quy trình làm việc mới, chẳng hạn như tạo giao diện người dùng front-end của một trang web và sau đó sử dụng máy chủ MCP tạo hình ảnh cho hình ảnh tiêu đề.

Ngoài các IDE như Cursor, các trường hợp sử dụng MCP hiện tại có thể được phân loại rộng rãi thành quy trình làm việc tập trung vào nhà phát triển, cục bộ và trải nghiệm hoàn toàn mới sử dụng ứng dụng khách LLM.

  • Quy trình làm việc tập trung vào nhà phát triển nhằm mục đích giữ các nhà phát triển trong IDE của họ cho nhiều tác vụ khác nhau. Các ví dụ bao gồm sử dụng máy chủ Postgres và Upstash MCP để quản lý cơ sở dữ liệu và bộ nhớ cache trực tiếp từ IDE, hoặc tận dụng Browsertools MCP để các tác nhân viết mã có quyền truy cập vào môi trường trực tiếp để phản hồi và gỡ lỗi. Các máy chủ MCP cũng có thể thêm ngữ cảnh có độ chính xác cao cho các tác nhân viết mã bằng cách thu thập thông tin từ các trang web hoặc tự động tạo máy chủ từ tài liệu hoặc API, giảm thời gian dành cho việc tích hợp thủ công.
  • Mặc dù các ứng dụng khách tập trung vào mã hóa đã nhận được nhiều sự chú ý nhất, nhưng trải nghiệm hoàn toàn mới đang nổi lên. Claude Desktop được giới thiệu như một điểm khởi đầu cho người dùng không chuyên về kỹ thuật để truy cập các công cụ được hỗ trợ bởi MCP. Các ứng dụng khách MCP chuyên biệt cho các tác vụ tập trung vào kinh doanh như hỗ trợ khách hàng, viết quảng cáo tiếp thị, thiết kế và chỉnh sửa hình ảnh cũng được dự đoán. Thiết kế của ứng dụng khách MCP ảnh hưởng đáng kể đến khả năng của nó và trải nghiệm người dùng tổng thể. Các triển khai như lệnh "@" của Highlight thể hiện các mẫu UX mới để gọi máy chủ MCP và chuyển nội dung được tạo sang các ứng dụng khác. Máy chủ Blender MCP minh họa cách ngôn ngữ tự nhiên có thể được sử dụng để tương tác với các công cụ phức tạp, ngay cả bởi những người dùng nghiệp dư.

Hệ sinh thái MCP đang phát triển, bao gồm các ứng dụng khách và máy chủ, với bản đồ thị trường hiển thị các lĩnh vực hoạt động. Hiện tại, hầu hết các ứng dụng khách chất lượng cao đều tập trung vào mã hóa. Hầu hết các máy chủ MCP đều hoạt động cục bộ và tập trung vào một người dùng duy nhất, điều này một phần là do giao thức hiện chỉ hỗ trợ các kết nối dựa trên SSE và lệnh. Tuy nhiên, việc áp dụng máy chủ MCP ngày càng tăng được kỳ vọng khi hệ sinh thái ưu tiên MCP từ xa và áp dụng giao thức truyền tải HTTP có thể truyền trực tiếp.

Để cải thiện khả năng khám phá và khả năng sử dụng của máy chủ MCP, một làn sóng giải pháp thị trường và lưu trữ máy chủ MCP mới đang nổi lên, chẳng hạn như mcpt của Mintlify, Smithery và OpenTools. Các nền tảng này nhằm mục đích tạo điều kiện thuận lợi cho việc khám phá, chia sẻ và đóng góp các máy chủ MCP mới, tương tự như trình quản lý gói cho ngôn ngữ lập trình hoặc nền tảng khám phá API. Cơ sở hạ tầng và công cụ cũng rất quan trọng đối với khả năng mở rộng và khả năng truy cập. Các công cụ tạo máy chủ (ví dụ: Mintlify, Stainless, Speakeasy) và các giải pháp lưu trữ (ví dụ: Cloudflare, Smithery) đang giảm bớt khó khăn trong việc tạo và triển khai các dịch vụ tương thích với MCP, trong khi các nền tảng quản lý kết nối như Toolbase đang hợp lý hóa việc quản lý khóa và proxy MCP cục bộ.

Bất chấp sự hào hứng, vẫn còn nhiều vấn đề chưa được giải quyết trong việc xây dựng và triển khai với MCP. Chúng bao gồm:

  • Lưu trữ và đa người thuê: Hiện tại, MCP chủ yếu hỗ trợ mối quan hệ một-nhiều giữa một tác nhân AI và các công cụ của nó, gây ra thách thức cho các sản phẩm SaaS đa người thuê cần hỗ trợ nhiều người dùng truy cập vào một máy chủ MCP dùng chung. Biến máy chủ từ xa thành tùy chọn mặc định và cho phép các doanh nghiệp tự lưu trữ máy chủ của họ với các mặt phẳng dữ liệu và điều khiển riêng biệt là những giải pháp tiềm năng. Một chuỗi công cụ hợp lý hóa để triển khai và bảo trì máy chủ MCP ở quy mô lớn cũng là cần thiết.
  • Xác thực: MCP hiện không xác định cơ chế xác thực tiêu chuẩn giữa ứng dụng khách và máy chủ, cũng như không cung cấp khung cho máy chủ quản lý an toàn việc xác thực khi tương tác với API của bên thứ ba. Việc xác thực hiện phụ thuộc vào từng triển khai cụ thể và thường là cục bộ, nơi việc xác thực rõ ràng có thể không phải lúc nào cũng cần thiết. Một mô hình xác thực tốt hơn bao gồm xác thực ứng dụng khách, công cụ và đa người dùng là rất quan trọng để áp dụng MCP từ xa.
  • Ủy quyền: MCP không có mô hình quyền tích hợp. Kiểm soát truy cập hiện ở cấp phiên, có nghĩa là một công cụ hoặc có thể truy cập hoàn toàn hoặc bị hạn chế hoàn toàn. Các cơ chế ủy quyền trong tương lai có thể cho phép kiểm soát chi tiết hơn, nhưng sự phụ thuộc hiện tại vào các luồng ủy quyền dựa trên OAuth 2.1 cho quyền truy cập trên toàn phiên tạo ra sự phức tạp khi số lượng tác nhân và công cụ tăng lên.
  • Cổng: Một cổng tập trung có thể có lợi cho việc xác thực, ủy quyền, quản lý lưu lượng và lựa chọn công cụ khi việc áp dụng MCP mở rộng. Tương tự như các cổng API, nó sẽ thực thi kiểm soát truy cập, định tuyến yêu cầu đến đúng máy chủ MCP, xử lý cân bằng tải và lưu vào bộ nhớ đệm các phản hồi, cải thiện tính bảo mật, khả năng quan sát và khả năng quản lý, đặc biệt là trong môi trường đa người thuê.
  • Khả năng khám phá và khả năng sử dụng của máy chủ MCP: Việc tìm kiếm và thiết lập máy chủ MCP hiện là một quy trình thủ công. Một giao thức và đăng ký khám phá máy chủ MCP tiềm năng đang được chờ đợi, điều này có thể thúc đẩy đáng kể việc áp dụng.
  • Môi trường thực thi: Hầu hết các quy trình làm việc AI đều yêu cầu nhiều lệnh gọi công cụ theo trình tự, nhưng MCP thiếu khái niệm quy trình làm việc tích hợp để quản lý các bước này. Việc yêu cầu mọi ứng dụng khách triển khai khả năng tiếp tục và thử lại là không lý tưởng. Mặc dù hiện tại chúng ta thấy các nhà phát triển khám phá các giải pháp như Inngest để giải quyết vấn đề này, nhưng việc đưa khả năng thực thi có trạng thái thành một khái niệm cơ bản sẽ làm rõ mô hình thực thi cho hầu hết các nhà phát triển.
  • Trải nghiệm ứng dụng khách tiêu chuẩn: Một câu hỏi thường gặp từ cộng đồng nhà phát triển là cách suy nghĩ về việc lựa chọn công cụ khi xây dựng ứng dụng khách MCP: Mọi người có cần triển khai RAG riêng cho các công cụ hay không, hoặc có một lớp đang chờ được tiêu chuẩn hóa?
  • Ngoài việc lựa chọn công cụ, cũng không có các mẫu UI/UX thống nhất để gọi các công cụ (chúng ta đã thấy mọi thứ từ lệnh gạch chéo đến ngôn ngữ tự nhiên thuần túy). Một lớp phía ứng dụng khách tiêu chuẩn cho việc khám phá, xếp hạng và thực thi công cụ có thể giúp tạo ra trải nghiệm nhất quán hơn cho nhà phát triển và người dùng.
  • Gỡ lỗi: Các nhà phát triển máy chủ MCP thường nhận thấy rằng rất khó để làm cho cùng một máy chủ MCP hoạt động dễ dàng trên các ứng dụng khách khác nhau. Thông thường, mỗi ứng dụng khách MCP đều có những đặc điểm riêng và dấu vết phía ứng dụng khách hoặc bị thiếu hoặc khó tìm, khiến việc gỡ lỗi máy chủ MCP trở nên cực kỳ khó khăn. Khi thế giới bắt đầu xây dựng nhiều máy chủ MCP ưu tiên từ xa hơn, một bộ công cụ mới là cần thiết để làm cho trải nghiệm phát triển trở nên hợp lý hơn trên cả môi trường cục bộ và từ xa.

Nhìn về phía trước, nếu MCP trở thành tiêu chuẩn cho quy trình làm việc được hỗ trợ bởi AI, một số tác động được dự đoán:

  • Lợi thế cạnh tranh của các công ty ưu tiên nhà phát triển sẽ phát triển từ việc cung cấp thiết kế API tốt nhất sang việc cung cấp bộ sưu tập công cụ tốt nhất cho các tác nhân sử dụng. Nếu MCP có khả năng tự động khám phá các công cụ, các nhà cung cấp API và SDK sẽ cần đảm bảo rằng các công cụ của họ dễ dàng được khám phá từ tìm kiếm và đủ khác biệt để tác nhân chọn cho một tác vụ cụ thể. Điều này có thể chi tiết và cụ thể hơn nhiều so với những gì các nhà phát triển con người tìm kiếm.
  • Một mô hình định giá mới có thể xuất hiện nếu mọi ứng dụng trở thành ứng dụng khách MCP và mọi API trở thành máy chủ MCP: Các tác nhân có thể chọn các công cụ linh hoạt hơn, dựa trên sự kết hợp giữa tốc độ, chi phí và mức độ liên quan. Điều này có thể dẫn đến một quy trình áp dụng công cụ theo hướng thị trường hơn, ưu tiên các công cụ hoạt động tốt nhất và mô-đun nhất thay vì các công cụ được áp dụng rộng rãi nhất.
  • Tài liệu sẽ trở thành một phần quan trọng của cơ sở hạ tầng MCP, vì các công ty sẽ cần thiết kế các công cụ và API với các định dạng rõ ràng, có thể đọc được bằng máy (ví dụ: llms.txt) và biến máy chủ MCP thành một cấu phần mặc định dựa trên tài liệu hiện có.
  • Bản thân API không còn đủ, nhưng có thể là điểm khởi đầu tuyệt vời. Các nhà phát triển sẽ nhận thấy rằng việc ánh xạ từ API sang công cụ hiếm khi là 1:1. Các công cụ là một trừu tượng cao hơn có ý nghĩa nhất đối với các tác nhân tại thời điểm thực thi tác vụ - thay vì chỉ gọi send_email(), một tác nhân có thể chọn hàm draft_email_and_send() bao gồm nhiều lệnh gọi API để giảm thiểu độ trễ. Thiết kế máy chủ MCP sẽ tập trung vào kịch bản và trường hợp sử dụng thay vì tập trung vào API.
  • Sẽ có một phương thức lưu trữ mới nếu mọi phần mềm theo mặc định trở thành ứng dụng khách MCP, bởi vì đặc điểm khối lượng công việc sẽ khác với lưu trữ trang web truyền thống. Mọi ứng dụng khách sẽ có bản chất đa bước và yêu cầu các đảm bảo thực thi như khả năng tiếp tục, thử lại và quản lý tác vụ dài hạn. Các nhà cung cấp dịch vụ lưu trữ cũng sẽ cần cân bằng tải theo thời gian thực trên các máy chủ MCP khác nhau để tối ưu hóa chi phí, độ trễ và hiệu suất, cho phép các tác nhân AI chọn công cụ hiệu quả nhất tại bất kỳ thời điểm nào.

MCP đã định hình lại hệ sinh thái tác nhân AI, nhưng làn sóng tiến bộ tiếp theo sẽ được xác định bằng cách chúng ta giải quyết các thách thức cơ bản như thế nào. Nếu được thực hiện đúng, MCP có thể trở thành giao diện mặc định cho tương tác giữa AI và công cụ, mở ra một thế hệ trải nghiệm AI tự động, đa phương thức và tích hợp sâu sắc.

Nếu được áp dụng rộng rãi, MCP có thể đại diện cho sự thay đổi trong cách các công cụ được xây dựng, tiêu thụ và kiếm tiền. Chúng tôi rất hào hứng xem thị trường sẽ đưa chúng đến đâu. Năm nay sẽ là then chốt: Liệu chúng ta sẽ thấy sự trỗi dậy của một thị trường MCP thống nhất? Liệu việc xác thực có trở nên liền mạch đối với các tác nhân AI không? Liệu việc thực thi đa bước có thể được chính thức hóa thành giao thức không?

Tham khảo:
https://a16z.com/a-deep-dive-into-mcp-and-the-future-of-ai-tooling/


Comments