
Model Context Protocol là gì và vì sao quan trọng: tổng quan MCP cho người mới bắt đầu xây tích hợp với Claude
Hiểu Model Context Protocol (MCP) là gì, vì sao Anthropic tạo ra nó để chuẩn hoá kết nối LLM với dữ liệu và công cụ, nắm kiến trúc Host-Client-Server
Bạn đang muốn cho Claude đọc database nội bộ, list issue GitHub hay query Notion, nhưng vẫn phải copy-paste thủ công từng kết quả vào chat? Đó chính là pain point mà Model Context Protocol (MCP) sinh ra để giải quyết. Anthropic công bố MCP vào tháng 11/2024 như một tiêu chuẩn mở để chuẩn hoá cách LLM kết nối với dữ liệu và tool bên ngoài. Bài này tóm tắt định nghĩa MCP, kiến trúc Host-Client-Server, một ví dụ thực tế với GitHub MCP server, và những pitfall bảo mật cần biết trước khi tích hợp vào production.
MCP là gì: định nghĩa ngắn gọn cho dev
MCP (Model Context Protocol) là một tiêu chuẩn mở do Anthropic giới thiệu vào tháng 11 năm 2024 [F1]. Hiện tại protocol này được Linux Foundation quản lý, và GitHub cũng đã adopt rồi mở rộng thêm [F1]. Mục tiêu cốt lõi khá đơn giản: tạo một lớp giao tiếp chuẩn để LLM nói chuyện với tool và data source bên ngoài theo cách có cấu trúc.
Vấn đề MCP giải quyết là một bài toán kinh điển trong design tích hợp. Trước khi có protocol chung, mỗi data source hay tool muốn dùng được với LLM đều cần một integration riêng cho từng model. Có M tool và N model, bạn phải maintain M × N kết nối. Với MCP, mỗi tool chỉ implement protocol một lần và mọi LLM tương thích đều hiểu được. Số integration giảm về M + N.
Cách dễ hình dung nhất là so sánh với USB-C: một chuẩn cắm chung cho thiết bị điện tử. MCP đóng vai trò tương tự cho LLM và tool. Nhưng cần phân biệt rõ — MCP không thay thế API, database hay hệ thống nghiệp vụ hiện có. Nó là lớp dịch và điều phối, nhận request có cấu trúc từ AI, route đến đúng hệ thống, rồi dịch response ngược về định dạng model đọc được [F2].
Về kiến trúc, hệ sinh thái MCP có 2 vai trò chính [F5]:
MCP server: expose dữ liệu và hành động của một hệ thống theo cách chuẩn hóa [F5].
MCP client: thường là một AI app như Claude Desktop, tiêu thụ những gì các server công khai [F5].
Trong môi trường hỗ trợ MCP, LLM không chỉ generate text. Model có thể truy cập dữ liệu doanh nghiệp, kích hoạt workflow, gọi API và ra quyết định một cách tự chủ thay mặt người dùng [F4]. Điểm thú vị với dev: bạn không cần hard-code từng API call vào prompt. Model tự discover tool nào có sẵn từ server và quyết định gọi cái nào dựa trên ý định người dùng. Đây là lý do nhiều người mô tả MCP như cách thay thế code tích hợp bằng ngôn ngữ tự nhiên.

Vì sao MCP quan trọng với người xây tích hợp Claude
Trước khi có MCP, việc tích hợp dữ liệu từ các nguồn như database, Notion hay GitHub vào Claude thường đòi hỏi bạn phải copy-paste thủ công. Điều này tạo ra một pain point lớn cho các lập trình viên, làm giảm hiệu suất và tăng nguy cơ sai sót.
MCP đã thay đổi cách chúng ta tương tác với Claude. Nó biến Claude từ một chatbot đơn thuần thành một "agent" thực thụ, có khả năng truy cập dữ liệu doanh nghiệp, kích hoạt quy trình làm việc, gọi API và đưa ra quyết định một cách tự chủ [F4]. Điều này cho phép Claude thực hiện các hành động thực tế thay vì chỉ tạo ra phản hồi [F4].
Một lợi ích đáng kể của MCP là khả năng tái sử dụng. Khi bạn xây dựng một MCP server, nó có thể được sử dụng bởi nhiều ứng dụng AI (client MCP) khác nhau [F5]. Điều này có nghĩa là một server có thể hoạt động với Claude Desktop, Cursor, Windsurf và mọi client MCP tương lai, tối ưu hóa công sức phát triển của team bạn.
Hệ sinh thái MCP đang phát triển mạnh mẽ. Các ông lớn trong ngành du lịch như Booking.com, Expedia, Turkish Airlines, Amadeus và Sabre đều đang áp dụng MCP cho các giải pháp tìm kiếm và đặt chỗ dựa trên AI. Điều này cho thấy tiềm năng và sự chấp nhận rộng rãi của giao thức này.
Việc đầu tư tìm hiểu và xây dựng với MCP mang lại ROI dài hạn. MCP ban đầu được Anthropic giới thiệu vào tháng 11 năm 2024, nhưng hiện đã được Linux Foundation quản lý và chuẩn hóa [F1]. Điều này đảm bảo rằng MCP là một tiêu chuẩn mở, không phải là một công nghệ bị khóa vào một nhà cung cấp duy nhất [F1].
Kiến trúc Host-Client-Server: 3 thành phần cốt lõi
Để hiểu cách MCP hoạt động, mình cần nắm rõ 3 thành phần chính trong kiến trúc của nó: Host, Client và Server. Về cơ bản, MCP hoạt động như một lớp điều phối và dịch thuật, quản lý giao tiếp giữa các tác nhân AI và các nền tảng vận hành [F2]. Điều này cho phép LLM truy cập dữ liệu doanh nghiệp, kích hoạt quy trình làm việc và gọi API một cách tự chủ [F4].
Host là ứng dụng mà bạn tương tác trực tiếp với LLM, ví dụ như Claude Desktop, Cursor hoặc các plugin IDE. Host có nhiệm vụ quản lý vòng đời của phiên làm việc và đảm bảo ranh giới bảo mật. Bên trong Host là Client, một thành phần kết nối 1-1 với một Server. Client xử lý các giao thức bắt tay và định tuyến thông điệp ở cấp độ protocol.
Server là một tiến trình độc lập, đóng vai trò cung cấp các công cụ (tools), tài nguyên (resources) và prompt theo chuẩn MCP [F5]. Server có thể chạy cục bộ qua stdio hoặc từ xa qua HTTP/SSE. MCP không thay thế các hệ thống ghi nhận như PMS hay CRM; thay vào đó, nó là cầu nối để AI tương tác với các hệ thống này [F3].
MCP định nghĩa ba loại primitive chính: Tools là các hàm mà model có thể gọi, Resources là các mô hình dữ liệu mà model có thể đọc, và Prompts là các template mà người dùng có thể kích hoạt. Về mặt truyền tải, các server cục bộ sử dụng stdio, trong khi server từ xa dùng Streamable HTTP. JSON-RPC 2.0 được dùng làm định dạng wire format cho việc giao tiếp.
Mô hình bảo mật của MCP đặt Host vào vị trí kiểm soát quyền truy cập. Người dùng cần phê duyệt các lời gọi tool, đây là hành vi mặc định trong Claude Desktop. Flow tương tác diễn ra như sau: Người dùng gửi yêu cầu đến Host, Host chuyển đến Client, Client kết nối với Server, Server tương tác với hệ thống bên ngoài, và phản hồi được gửi ngược lại theo chuỗi này.
Ví dụ thực tế: gọi GitHub MCP server từ Claude Desktop
Để thấy rõ cách MCP hoạt động, mình sẽ hướng dẫn bạn cài đặt và sử dụng GitHub MCP server với Claude Desktop. Đây là một trong những MCP server phổ biến nhất, giúp Claude tương tác trực tiếp với GitHub của bạn.
Đầu tiên, bạn cần cài đặt GitHub MCP server. Anthropic cung cấp server này thông qua npm. Bạn có thể chạy lệnh sau trong terminal để khởi động server:
npx -y @modelcontextprotocol/server-github
# Đảm bảo bạn đã export GITHUB_TOKEN với quyền truy cập phù hợp
export GITHUB_TOKEN="ghp_YOUR_GITHUB_TOKEN"Sau khi server đã chạy, bạn cần cấu hình Claude Desktop để kết nối với nó. Mở file `claude_desktop_config.json` và thêm cấu hình server vào mục `mcpServers` như ví dụ dưới đây:
{
"mcpServers": [
{
"id": "github",
"url": "http://localhost:3000" // Địa chỉ mặc định của GitHub MCP server
}
]
}Với cấu hình này, khi bạn hỏi Claude trong Claude Desktop (ví dụ với Claude Opus 4.6), nó sẽ tự động phát hiện và sử dụng các tool mà GitHub MCP server cung cấp. Chẳng hạn, bạn có thể hỏi "list 5 PR mới nhất repo X".
Claude sẽ tự động chọn tool `list_pull_requests` từ server để thực hiện yêu cầu của bạn. Server GitHub MCP này expose khoảng 18 tool khác nhau, bao gồm đọc issue, list PR, tìm kiếm code và đăng bình luận. Claude rất thông minh trong việc chọn đúng tool dựa trên prompt của bạn.
Tuy nhiên, có một số hạn chế cần lưu ý. Hiện tại, server này chưa hỗ trợ stream các sự kiện realtime từ GitHub. Ngoài ra, độ trễ khi gọi API sẽ phụ thuộc vào rate limit của GitHub API.

Lưu ý bảo mật và pitfall thường gặp
MCP giúp Claude truy cập dữ liệu doanh nghiệp, gọi API và đưa ra quyết định tự chủ [F4]. Tuy nhiên, việc tích hợp này cũng đi kèm với nhiều rủi ro bảo mật ở cả tầng LLM và protocol. Những rủi ro này không thể vá bằng cách cấu hình đơn thuần.
Một trong những rủi ro chính là Prompt Injection thông qua mô tả tool. Các MCP server độc hại có thể nhúng các instruction ẩn vào metadata của tool. Điều này có thể khiến Claude bị hijack và thực hiện các hành động không mong muốn.
Token Leak cũng là một vấn đề nghiêm trọng. Nhiều MCP server cần API token để truy cập các dịch vụ như GitHub hay Supabase. Bạn phải lưu trữ các token này trong secret manager, tuyệt đối không hard-code vào file cấu hình.
Khi cài đặt hơn 5 server, Claude có thể gặp phải tình trạng Tool Confusion, tức là chọn nhầm tool để thực thi. Để giảm thiểu, mình khuyên bạn nên đặt tên tool thật rõ ràng và hạn chế sự trùng lặp chức năng giữa các server.
Cuối cùng là Approval Fatigue. Người dùng thường có xu hướng mặc định click 'allow' cho mọi lời gọi tool mà Claude đề xuất. Vì vậy, điều quan trọng là phải giới hạn phạm vi quyền từ đầu, chỉ cấp quyền read-only nếu có thể.
Để đảm bảo an toàn, bạn nên chạy các MCP server trong môi trường sandbox hoặc container. Đồng thời, hãy log lại mọi lời gọi tool và định kỳ kiểm tra danh sách các server đã cài đặt để phát hiện sớm các bất thường.
Bước tiếp theo: học MCP từ đâu
Để bắt đầu tìm hiểu sâu hơn về Model Context Protocol (MCP), mình gợi ý bạn nên đọc tài liệu chính thức. Trang modelcontextprotocol.io cung cấp bản đặc tả (spec) chi tiết, đặc biệt phần 'Concepts' sẽ giúp bạn nắm vững 80% các trường hợp sử dụng phổ biến.
Sau khi nắm vững lý thuyết, bạn có thể thử cài đặt các MCP server mẫu. Kho lưu trữ `modelcontextprotocol/servers` trên GitHub có sẵn các server starter pack như GitHub, Filesystem và Fetch. Việc này giúp bạn hình dung cách MCP hoạt động trong thực tế.
Nếu muốn tự xây dựng server custom, bạn có thể dùng SDK TypeScript hoặc Python. Cả hai đều khá hoàn thiện và một server tối thiểu chỉ cần khoảng 50 dòng code. Điều này cho phép bạn tích hợp Claude với các hệ thống hoặc API nội bộ một cách linh hoạt.
Để cập nhật những thay đổi mới nhất của spec, bạn nên theo dõi nhóm làm việc MCP của Linux Foundation. Phiên bản giao thức gần đây nhất là bản sửa đổi 2025-06-18. MCP là một tiêu chuẩn mở được Anthropic giới thiệu vào tháng 11 năm 2024 và hiện được quản lý bởi Linux Foundation [F1].
Trong bài viết tiếp theo trên vibeclaude.net, mình sẽ đi sâu vào cách viết một MCP server custom, cũng như so sánh các phương thức truyền tải dữ liệu như stdio và HTTP.
Tổng kết: MCP là lớp chuẩn hoá đáng học nếu bạn đang xây tích hợp với Claude, đặc biệt khi cần kết nối nhiều nguồn dữ liệu nội bộ. Nếu muốn đào sâu hơn, bạn có thể đọc spec chính thức tại modelcontextprotocol.io hoặc xem video gốc để nắm thêm context về cách Anthropic thiết kế protocol này.