Trong bài viết kỳ trước, chúng ta đã cùng nhau tìm hiểu về cách agent (tác nhân) nói chuyện với agent (đọc lại bài A2A: How agent talks to agent – Các tác nhân AI giao tiếp với nhau như thế nào?). Và trong bài viết, Lemon’s Tribe cũng có đề cập đến 1 thuật ngữ tên là MCP. Một số người ví von Model Context Protocol (MCP) như một “cổng USB‑C cho AI”. Thuật ngữ tưởng như phức tạp này thực ra chỉ mô tả một chuẩn mở giúp kết nối các mô hình ngôn ngữ lớn (Large Language Models – LLM) với nguồn dữ liệu, công cụ và dịch vụ bên ngoài. Vậy MCP thật sự vận hành và nên được sử dụng như nào? Hãy cùng tìm hiểu trong bài viết kỳ này cùng Lemon’s Tribe nhé.
- MCP là gì?
- Tại sao MCP quan trọng?
- Vai trò của MCP trong hệ thống AI
- Cầu nối giữa mô hình và thế giới
- Quản lý công cụ và dữ liệu theo chuẩn
- Thông báo thời gian thực (real-time)
- Tăng tính bảo mật và quản trị
- Cách sử dụng MCP
- Xây dựng hoặc sử dụng MCP server
- Lập trình và gọi công cụ từ AI
- Những thách thức và rủi ro an ninh
- Cách tối ưu và bảo đảm an toàn khi dùng MCP
- Thiết kế kiến trúc đúng đắn
- Quản lý cấu hình và lỗi
- Tối ưu hiệu năng
- Kiểm soát quyền truy cập và schema
- Tập trung vào dữ liệu thống nhất và bảo vệ quyền riêng tư
- Tuân thủ nguyên tắc bảo mật
- Tạm kết
- Nguồn tham khảo
MCP là gì?
Để tương tác hiệu quả với thế giới, các mô hình AI cần có ngữ cảnh. Tuy nhiên, phần lớn LLM hoạt động như “hộp đen”: chúng được huấn luyện trên hàng tỷ token nhưng gần như tách rời khỏi dữ liệu và công cụ nằm ngoài bộ nhớ ngữ liệu của mình. Mỗi lần muốn tích hợp một nguồn dữ liệu mới (ví dụ Google Drive, Slack, GitHub), nhà phát triển lại phải viết một connector riêng – vừa tốn thời gian, vừa khó bảo trì. MCP được tạo ra để giải quyết vấn đề đó.
Theo trang tài liệu chính thức về MCP, MCP là một chuẩn nguồn mở cho phép các ứng dụng AI hoặc model AI kết nối đến nguồn dữ liệu, công cụ và workflow ngoài mô hình. MCP hoạt động theo kiến trúc client‑server: MCP host (ứng dụng AI như Claude, ChatGPT hoặc Visual Studio Code) khởi tạo một hoặc nhiều MCP client để kết nối tới các MCP server, những server này cung cấp dữ liệu, tài nguyên và công cụ. Điều này tương tự như cổng USB‑C trên máy tính: thay vì phải thiết kế nhiều loại cổng cho từng thiết bị, USB‑C cung cấp một giao diện chung. MCP cũng vậy – nó chuẩn hóa cách LLM giao tiếp với các nguồn dữ liệu khác nhau.1
Anthropic – công ty đứng sau model Claude – mô tả MCP như một chuẩn mở giúp AI “nói chuyện” với các nơi lưu trữ dữ liệu thực tế. Mục tiêu của họ là “thay thế những tích hợp phân mảnh bằng một giao thức duy nhất” để AI có thể truy cập dữ liệu dễ dàng2. MCP giúp chuẩn hóa việc tích hợp AI với công cụ và dữ liệu, từ đó cải thiện độ chính xác, tính liên quan của kết quả3.
Tại sao MCP quan trọng?
MCP ra đời trong bối cảnh các model AI ngày càng mạnh mẽ nhưng gặp hạn chế về ngữ cảnh. Anthropic nhận xét rằng dù các mô hình có tiến bộ về lập luận và chất lượng, chúng vẫn “bị mắc kẹt sau những silo thông tin và hệ thống cũ”. Mỗi tích hợp mới đòi hỏi viết connector riêng, khiến hệ thống khó mở rộng. MCP giải quyết bằng cách tạo một ngôn ngữ chung (JSON‑RPC) cho client và server giao tiếp: client có thể yêu cầu server liệt kê công cụ (ListTools), gọi công cụ (CallTool), liệt kê tài nguyên (ListResources) và đọc tài nguyên (ReadResource)4. Điều đó giảm đáng kể thời gian phát triển và cho phép nhà phát triển xây một lần, dùng ở nhiều nơi.5
Ngoài ra, MCP còn mở rộng khả năng của AI theo hai chiều:
- Đối với mô hình (AI model): AI có thể gọi API, truy cập cơ sở dữ liệu, đọc file, thậm chí điều khiển máy in 3D… thông qua các tool do MCP server cung cấp.6
- Đối với người dùng cuối: Trải nghiệm trở nên mượt mà hơn khi AI có thể xử lý nhiều tác vụ và truy cập dữ liệu cá nhân (lịch, ghi chú, email) với cùng một chuẩn.7
Không phải ngẫu nhiên mà nhiều hãng lớn nhanh chóng áp dụng MCP. Anthropic cung cấp sẵn các MCP server cho Google Drive, Slack, GitHub, Postgres…. Microsoft tích hợp MCP vào Windows thông qua On‑Device Agent Registry (ODR), giúp ứng dụng phát hiện và kết nối tới các MCP server một cách an toàn8. Các nền tảng này cho thấy MCP đã trở thành hạ tầng quan trọng của thế hệ AI tự động.
Vai trò của MCP trong hệ thống AI
Cầu nối giữa mô hình và thế giới
Trong hệ thống AI agent hiện đại, MCP đóng vai trò trung gian giữa LLM (host) và các nguồn dữ liệu. Theo tài liệu kiến trúc của MCP, có ba thành phần chính:
- MCP host: ứng dụng AI (Claude, ChatGPT, Visual Studio Code GitHub Copilot…) quản lý cuộc hội thoại và định nghĩa ngữ cảnh. Host có thể sử dụng nhiều client để kết nối tới các server.
- MCP client: lớp mã kết nối với từng MCP server, nhận metadata về các công cụ/tài nguyên và chuyển kết quả về cho host. Client đảm bảo giao tiếp an toàn, quản lý vòng đời kết nối và xử lý message như
Initialize,ListTools,CallTool.9 - MCP server: dịch vụ cung cấp dữ liệu, công cụ hoặc prompt. Server có thể truy cập file hệ thống, cơ sở dữ liệu, API REST… và trình bày chúng dưới dạng tool/resource/prompt mà AI có thể hiểu.

Cách thiết kế này khiến MCP trở nên linh hoạt: host có thể kết nối tới nhiều server để bổ sung khả năng. Trong Visual Studio Code, GitHub Copilot có thể là host và dùng client để kết nối tới server Sentry (theo dõi lỗi) hoặc server filesystem. Host kết hợp danh sách công cụ từ nhiều server thành một registry để LLM biết mình có thể làm gì.10
Quản lý công cụ và dữ liệu theo chuẩn
MCP mô tả chi tiết cấu trúc metadata cho mỗi công cụ: name, title, description và inputSchema. Đây là bản mô tả machine‑readable giúp AI biết chính xác công cụ làm gì và cần những tham số nào. Khi AI gọi một tool, yêu cầu tools/call phải bao gồm tên công cụ và đối số đúng với schema. Trả về của server là một mảng content có thể chứa text, hình ảnh hoặc các loại dữ liệu khác.11
Ngoài công cụ, MCP còn hỗ trợ resource (tương tự file hoặc API endpoint) và prompt – những mẫu tương tác sẵn có. Các client có thể gọi ListResources để liệt kê tài nguyên, ReadResource để lấy dữ liệu, ListPrompts để lấy prompt template…12. Nhờ đó, AI agent không chỉ gọi chức năng mà còn đọc nội dung để xây dựng câu trả lời cho người dùng cuối.
Thông báo thời gian thực (real-time)
Một điểm mạnh khác của MCP là hệ thống notification. Khi server thay đổi danh sách công cụ (thêm hoặc xóa), nó sẽ gửi thông báo notifications/tools/list_changed. Client nhận thông báo sẽ gọi tools/list để cập nhật registry và phản hồi kịp thời. Cơ chế event‑driven này giúp AI luôn biết công cụ nào đang sẵn sàng, không cần polling liên tục.13
Tăng tính bảo mật và quản trị
MCP cho phép triển khai cả local server (chạy trên máy người dùng) và remote server (chạy trên cloud). Ví dụ, Windows ODR hỗ trợ phát hiện và quản lý server cục bộ, cô lập server trong môi trường riêng để giảm nguy cơ tấn công như prompt injection. Người dùng và quản trị viên có thể kiểm soát truy cập, ghi log và audit các hoạt động giữa client và server. Microsoft cho biết ODR bao gồm sẵn connector cho File Explorer, Visual Studio Code và hỗ trợ các framework để xây agent mới.14
Ở cấp độ mã nguồn, nhiều SDK (C#, Python, TypeScript…) đã được phát triển để đơn giản hóa việc xây dựng server và client. Microsoft khuyến khích lập trình viên sử dụng SDK C# để tạo MCP client/server và chuyển đổi giữa các mô hình AI mà không phải thay đổi nhiều code.15
Cách sử dụng MCP
Xây dựng hoặc sử dụng MCP server
Có hai cách chính để khai thác MCP: sử dụng các server có sẵn hoặc tự xây dựng server. Anthropic và cộng đồng đã phát triển hàng nghìn server để truy cập Google Drive, Slack, Postgres, GitHub…16. Bạn chỉ cần cài đặt server, cấp quyền truy cập (ví dụ OAuth) và kết nối qua client. Khi khởi động, client gửi yêu cầu Initialize để thương lượng khả năng, sau đó gửi ListTools để lấy danh sách công cụ. Mỗi công cụ đều có schema giúp AI hiểu cách gọi.
Nếu nguồn dữ liệu của bạn chưa có server sẵn, bạn có thể xây dựng server riêng. Microsoft, Anthropic cung cấp SDK và mẫu code cho nhiều ngôn ngữ. SDK C# cho phép thêm gói ModelContextProtocol qua NuGet và triển khai server theo kiến trúc client‑server. Server nên tuân theo Single Responsibility Principle – mỗi server tập trung vào một chức năng rõ ràng (ví dụ chỉ truy cập cơ sở dữ liệu hoặc chỉ thao tác file) để dễ quản lý và mở rộng17. Thiết kế server “tất cả trong một” rất dễ bị lỗi và khó bảo trì.18
Lập trình và gọi công cụ từ AI
Khi AI agent trò chuyện với người dùng, LLM sẽ quyết định khi nào cần sử dụng công cụ. Ví dụ, người dùng hỏi “Thời tiết hôm nay ở San Francisco?”; model có thể sinh một message yêu cầu gọi tool weather_current với tham số location=San Francisco. Ứng dụng AI (host) sẽ bắt message, gọi tới MCP server tương ứng, nhận kết quả và đưa lại cho LLM để tiếp tục hội thoại. Điều này cho phép AI truy cập dữ liệu thời gian thực mà không cần tái huấn luyện mô hình.19
Quy trình trên dựa trên JSON‑RPC, vì vậy cần đảm bảo ID request unique và tuân thủ schema. Server cũng có thể gửi thông điệp ngược lại như CreateMessage (yêu cầu LLM sinh trả lời) hay Ping để kiểm tra kết nối20. Nhà phát triển cần triển khai logic xử lý hợp lệ cho cả phía client và server.
Những thách thức và rủi ro an ninh
MCP đem lại lợi ích lớn nhưng cũng mở rộng khả năng bị tấn công của AI. Microsoft cảnh báo rằng mọi triển khai server sai cấu hình đều có thể trở thành lỗ hổng. Khi một pattern có thể “mở khóa nhiều hệ thống” thì rủi ro cũng tăng theo. Các câu hỏi như “Ai được phép truy cập?”, “AI được phép làm gì?” trở nên quan trọng.
Trang PivotPointSecurity phân tích nhiều lỗ hổng phổ biến: đánh cắp credentials, prompt injection, tool poisoning, server rogue/shadow, quyền hạn quá mức và xác thực yếu. Họ trích dẫn khảo sát cho thấy 43% server mở có lỗ hổng OAuth, 43% có nguy cơ command injection, 33% cho phép truy cập mạng không giới hạn và 22% cho phép truy cập file ngoài phạm vi. Khi AI có thể gọi các tool để đọc email hoặc truy cập cơ sở dữ liệu, một server bị tấn công có thể dẫn tới rò rỉ dữ liệu nghiêm trọng. Bản chất phi tập trung của MCP (bất kỳ ai cũng có thể triển khai server) khiến việc kiểm soát trở nên khó khăn.21
Thậm chí, Microsoft thừa nhận rằng “ngay cả một server cấu hình sai cũng có thể trao chìa khóa dữ liệu cho AI”. Do đó, họ thiết kế chiến lược “secure by default”: sử dụng server tin cậy, catalog sống để theo dõi, yêu cầu người dùng xác nhận trước khi thực hiện hành động và giới hạn những gì được chia sẻ.22
Cách tối ưu và bảo đảm an toàn khi dùng MCP
Để tận dụng MCP một cách hiệu quả trong doanh nghiệp, cần tuân theo một số best practices từ nhiều nguồn đáng tin cậy:
Thiết kế kiến trúc đúng đắn
Trong bài viết về MCP Best Practices có đề xuất Single Responsibility Principle: mỗi MCP server chỉ nên phục vụ một mục tiêu (truy cập cơ sở dữ liệu, quản lý file, gửi email…). Thiết kế dịch vụ nhỏ gọn giúp dễ bảo trì, mở rộng và tránh lỗi lây lan. Ngoài ra, tài liệu này cũng khuyến cáo xây dựng Defense in Depth – áp dụng các lớp bảo mật như mạng riêng, xác thực mạnh, phân quyền chi tiết, kiểm tra input và giám sát log. Các mẫu Fail‑Safe đảm bảo hệ thống hoạt động bền vững: dùng circuit breaker, bộ đệm, rate limiter để xử lý lỗi. Điều này giúp server có thể degrade nhẹ nhàng khi xảy ra sự cố mà không làm gián đoạn toàn bộ agent.23
Quản lý cấu hình và lỗi
Server nên externalize cấu hình và có các profile cho môi trường khác nhau (dev, UAT, staging, production). Điều này cho phép thay đổi giá trị như timeout, số kết nối, giới hạn rate mà không cần chỉnh sửa code. Bên cạnh đó, cần xây dựng hệ thống xử lý lỗi có cấu trúc, phân loại lỗi từ phía client (invalid input, access denied) đến lỗi server và lỗi external, trả về thông báo rõ ràng. Điều này giúp AI hoặc quản trị viên hiểu nguyên nhân và xử lý đúng.24
Tối ưu hiệu năng
Các MCP server phải đáp ứng nhu cầu truy xuất dữ liệu theo thời gian thực. Trang gốc của MCP đề xuất sử dụng connection pooling, cache nhiều tầng (in‑memory, Redis, database) và xử lý bất đồng bộ để tối ưu tốc độ. Việc giám sát (monitoring) cũng quan trọng; server nên ghi lại số lượng request, độ trễ và số kết nối hoạt động để nhanh chóng phát hiện tắc nghẽn.25
Kiểm soát quyền truy cập và schema
Bài blog Merge.dev nhấn mạnh rằng LLM dễ nhầm lẫn khi schema đặt tên mơ hồ, dẫn tới rủi ro lộ dữ liệu nhạy cảm (ví dụ SN bị hiểu nhầm là social security number). Do đó, server cần áp dụng Access Control Levels (ACL) và Schema enforcement để chỉ cho phép hành động phù hợp quyền hạn và kiểm tra input theo JSON Schema. Ngoài ra, nên đánh giá các tool của server: tên và mô tả phải rõ ràng, tham số phải định nghĩa đầy đủ và có ví dụ minh họa. Server cũng cần hỗ trợ quản lý tốc độ gọi API, retry và pagination để đảm bảo ổn định.26
Tập trung vào dữ liệu thống nhất và bảo vệ quyền riêng tư
Theo K2view, việc triển khai MCP hiệu quả đòi hỏi dữ liệu doanh nghiệp được bảo vệ, thống nhất và giàu ngữ cảnh. Họ khuyến nghị sử dụng một MCP server trung tâm với lớp sematic phong phú và kiểm soát riêng tư ở mức entity, đồng thời cung cấp dữ liệu thời gian thực. K2view cũng chỉ ra những thách thức trong môi trường đa nguồn: dữ liệu không đủ mới, tích hợp nhiều hệ thống như SAP, Salesforce… và thiếu sự hài hòa. Để vượt qua, cần áp dụng các kỹ thuật retrieval‑augmented generation (RAG), chain‑of‑thought prompting, và xây dựng metadata/ontology để hợp nhất dữ liệu. Nói cách khác, MCP chỉ là lớp giao thức; việc tối ưu còn phụ thuộc vào chất lượng và sự điều phối dữ liệu phía sau.27
Tuân thủ nguyên tắc bảo mật
Các chuyên gia an ninh cảnh báo rằng MCP mở ra “một con dao hai lưỡi” giữa tiện ích và nguy cơ. Trang PivotPointSecurity liệt kê nhiều lỗ hổng phổ biến như trộm token OAuth, injection, tool poisoning và server rogue. Họ gợi ý áp dụng các biện pháp phòng vệ: nguyên tắc tối thiểu quyền (least privilege), xác thực mạnh và TLS, kiểm tra input, ghi log, phê duyệt thủ công, quản lý patch và đánh giá code bên thứ ba. Microsoft cũng áp dụng triết lý “secure by default”: chỉ sử dụng server tin cậy, yêu cầu người dùng chấp nhận trước khi thực hiện hành động, theo dõi server và hạn chế dữ liệu chia sẻ28.29
Tạm kết
MCP là một bước tiến đáng kể trong việc chuẩn hóa kết nối giữa mô hình AI và thế giới bên ngoài. Nó giảm đáng kể công sức phát triển, cho phép AI truy cập dữ liệu và công cụ một cách linh hoạt và thúc đẩy sự ra đời của các agent tự động. Như Anthropic mô tả, MCP thay thế hàng loạt connector riêng lẻ bằng một giao thức chung. Microsoft và nhiều hãng khác đã nhanh chóng tích hợp MCP vào sản phẩm của mình, từ Copilot, Visual Studio Code cho tới Windows ODR.
Tuy nhiên, “quyền lực càng lớn thì trách nhiệm càng cao”. MCP mở rộng bề mặt tấn công và yêu cầu nhà phát triển phải cẩn trọng trong thiết kế server, quản lý bảo mật, kiểm soát quyền và quản lý dữ liệu. Để tối ưu MCP, hãy tuân thủ các nguyên tắc kiến trúc như Single Responsibility, Defense in Depth, áp dụng kiểm soát schema, xây dựng hệ thống monitoring, và đảm bảo dữ liệu luôn mới và có ngữ cảnh. Sự phối hợp giữa MCP và các phương pháp khác như RAG, semantic layer sẽ giúp AI trở nên thực sự hữu ích và an toàn.
Với bài viết này, hi vọng bạn đọc của Lemon’s Tribe có cái nhìn rõ ràng về Model Context Protocol: không còn là thuật ngữ khó hiểu, mà là một tiêu chuẩn mở với tiềm năng kết nối trí tuệ nhân tạo tới thế giới thực. Khi được triển khai đúng cách và an toàn, MCP chính là cổng USB‑C giúp AI phát huy tối đa khả năng của mình.
Cheers & Peace!
Nguồn tham khảo
- https://modelcontextprotocol.io/docs/getting-started/intro ↩︎
- https://www.anthropic.com/news/model-context-protocol ↩︎
- https://learn.microsoft.com/en-us/dotnet/ai/get-started-mcp#:~:text=Model%20Context%20Protocol%20,aware%20responses ↩︎
- https://learn.microsoft.com/en-us/dotnet/ai/get-started-mcp#:~:text=Expand%20table ↩︎
- https://www.anthropic.com/news/model-context-protocol ↩︎
- https://modelcontextprotocol.io/docs/getting-started/intro ↩︎
- https://www.anthropic.com/news/model-context-protocol ↩︎
- https://learn.microsoft.com/en-us/windows/ai/mcp/overview#:~:text=MCP%20on%20Windows%20provides%20the,they%20can%20complete%20for%20users ↩︎
- https://learn.microsoft.com/en-us/dotnet/ai/get-started-mcp#:~:text=Expand%20table ↩︎
- https://modelcontextprotocol.io/docs/learn/architecture ↩︎
- https://modelcontextprotocol.io/docs/learn/architecture ↩︎
- https://learn.microsoft.com/en-us/dotnet/ai/get-started-mcp#:~:text=,prompt%20templates%20from%20the%20server ↩︎
- https://modelcontextprotocol.io/docs/learn/architecture ↩︎
- https://learn.microsoft.com/en-us/windows/ai/mcp/overview ↩︎
- https://learn.microsoft.com/en-us/dotnet/ai/get-started-mcp#:~:text=You%20can%20use%20the%20MCP,models%20without%20significant%20code%20changes ↩︎
- https://www.anthropic.com/news/model-context-protocol ↩︎
- https://modelcontextprotocol.info/docs/best-practices/#:~:text=%EF%B8%8F%20Architectural%20Design%20Principles ↩︎
- https://learn.microsoft.com/en-us/dotnet/ai/get-started-mcp ↩︎
- https://modelcontextprotocol.io/docs/learn/architecture ↩︎
- https://learn.microsoft.com/en-us/dotnet/ai/get-started-mcp#:~:text=,allow%20them%20to%20inspect%20the ↩︎
- https://www.pivotpointsecurity.com/what-is-the-model-context-protocol-mcp-in-ai-and-why-does-it-scare-cybersecurity-pros/ ↩︎
- https://www.microsoft.com/insidetrack/blog/protecting-ai-conversations-at-microsoft-with-model-context-protocol-security-and-governance/#:~:text=,%E2%80%9D ↩︎
- https://modelcontextprotocol.info/docs/best-practices/ ↩︎
- https://modelcontextprotocol.info/docs/best-practices/ ↩︎
- https://modelcontextprotocol.info/docs/best-practices/ ↩︎
- https://www.merge.dev/blog/mcp-best-practices ↩︎
- https://www.k2view.com/what-is-mcp-ai/ ↩︎
- https://www.microsoft.com/insidetrack/blog/protecting-ai-conversations-at-microsoft-with-model-context-protocol-security-and-governance/#:~:text=Start%20secure%20by%20default,requiring%20consent%20before%20making%20changes ↩︎
- https://www.pivotpointsecurity.com/what-is-the-model-context-protocol-mcp-in-ai-and-why-does-it-scare-cybersecurity-pros/ ↩︎


Leave a Reply
You must be logged in to post a comment.