MCP (Model Context Protocol) là giao thức mở do Anthropic phát triển, giúp các ứng dụng AI kết nối với dữ liệu, công cụ và dịch vụ bên ngoài theo cách thống nhất. Thay vì mỗi nhà phát triển phải xây dựng kết nối riêng biệt cho từng nguồn dữ liệu, MCP cung cấp một chuẩn chung để AI có thể tương tác với mọi thứ từ Google Drive đến cơ sở dữ liệu SQL hay hệ thống quản lý dự án.
Bài viết này sẽ giải thích cách MCP hoạt động, phân biệt với các phương pháp truyền thống như API và plugin, đi sâu vào các thành phần cốt lõi, và hướng dẫn áp dụng thực tế với các ví dụ cụ thể. Cuối cùng, bạn sẽ hiểu rõ khi nào nên sử dụng MCP và cách bảo mật khi triển khai.
MCP khác gì so với API truyền thống và plugin?
API truyền thống: Mỗi kết nối là một dự án riêng
Khi AI cần lấy dữ liệu từ hệ thống bên ngoài qua API, nhà phát triển phải:
- Nghiên cứu tài liệu API của từng dịch vụ
- Xử lý xác thực (OAuth, API key) theo cách riêng của mỗi nhà cung cấp
- Chuyển đổi định dạng dữ liệu đầu ra cho phù hợp với AI
- Duy trì code khi API thay đổi
Ví dụ: Để AI đọc file từ Google Drive, bạn phải tích hợp Google Drive API. Muốn thêm Dropbox? Lặp lại toàn bộ quy trình với Dropbox API. Mỗi kết nối thêm là một lớp phức tạp mới.
Plugin: Giải pháp riêng lẻ cho từng nền tảng
Plugin của ChatGPT hay extension của Claude hoạt động tốt trong hệ sinh thái riêng, nhưng:
- Chỉ chạy trên nền tảng đó (plugin OpenAI không dùng được cho Claude)
- Nhà phát triển phải xây dựng và duy trì nhiều phiên bản
- Người dùng bị khóa vào một nhà cung cấp AI duy nhất
MCP: Một chuẩn cho mọi kết nối
MCP giải quyết bài toán này bằng cách đặt lớp trung gian thống nhất. AI giao tiếp với MCP client, client này kết nối với các MCP server. Mỗi MCP server chịu trách nhiệm dịch chuẩn MCP sang ngôn ngữ của dịch vụ cụ thể.
Kết quả: Một khi AI hỗ trợ MCP, nó có thể sử dụng mọi MCP server có sẵn mà không cần code thêm.
| Tiêu chí | API truyền thống | Plugin | MCP |
|---|---|---|---|
| Tính thống nhất | Mỗi API có cách triển khai riêng | Phụ thuộc nền tảng AI | Một chuẩn cho mọi kết nối |
| Khả chuyển | Cần viết lại cho từng dự án | Không thể chuyển nền tảng | Dùng được trên mọi AI hỗ trợ MCP |
| Chi phí bảo trì | Cao, tăng theo số lượng kết nối | Trung bình, phân tán theo nền tảng | Thấp, tập trung vào MCP server |
| Trải nghiệm người dùng | Không nhất quán | Tốt trong hệ sinh thái riêng | Nhất quán trên mọi ứng dụng |
Các thành phần cốt lõi của MCP
MCP Client: Điểm tiếp xúc của AI
MCP client là thành phần tích hợp trong ứng dụng AI (Claude Desktop, IDE như Cursor, hoặc các công cụ tự động hóa). Client chịu trách nhiệm:
- Khám phá các MCP server có sẵn
- Quản lý kết nối đến server
- Chuyển tiếp yêu cầu từ AI đến server phù hợp
- Xử lý phản hồi và trả về cho AI
Ví dụ thực tế: Trong Claude Desktop, bạn cấu hình MCP server trong file claude_desktop_config.json. Khi khởi động, Claude tự động phát hiện các server này và hiển thị khả năng của chúng.
MCP Server: Cầu nối đến thế giới bên ngoài
MCP server là chương trình độc lập triển khai giao thức MCP ở một phía, và giao tiếp với dịch vụ cụ thể ở phía còn lại. Server có thể được viết bằng Python, TypeScript, Go hoặc ngôn ngữ khác.
Một MCP server cung cấp ba loại khả năng chính cho AI:
| Loại khả năng | Mô tả | Ví dụ |
|---|---|---|
| Tools | Hành động AI có thể thực hiện | Gửi email, tạo file, chạy query SQL |
| Resources | Dữ liệu AI có thể đọc | Nội dung file, cấu trúc database, danh sách task |
| Prompts | Template hướng dẫn AI | Cách phân tích log, format báo cáo, xử lý dữ liệu |
Tools: Khi AI cần hành động
Tools là các hàm có thể thực thi mà AI có thể gọi. Khác với việc AI chỉ trả lời bằng text, tools cho phép AI tác động lên hệ thống.
Ví dụ cụ thể: MCP server cho PostgreSQL có thể cung cấp tool execute_query. Khi người dùng hỏi “Doanh thu tháng 3 là bao nhiêu?”, AI nhận ra cần dữ liệu từ database, gọi tool với query phù hợp, nhận kết quả và tổng hợp câu trả lời.
Resources: Dữ liệu AI có thể truy cập
Resources là các nguồn dữ liệu chỉ đọc mà AI có thể tham khảo. Khác với tools, resources không thay đổi trạng thái hệ thống.
Ví dụ: MCP server kết nối Google Drive expose resource dạng gdrive://{file_id}. AI có thể đọc nội dung file mà không cần người dùng copy-paste. Điều này đặc biệt hữu ích khi làm việc với tài liệu dài hoặc nhiều file.
Prompts: Hướng dẫn có cấu trúc
Prompts trong MCP là các template được định nghĩa trước, giúp AI xử lý tác vụ theo cách nhất quán. Đây khác với prompt thông thường ở chỗ chúng được version control và chia sẻ qua MCP server.
Ví dụ: MCP server cho hệ thống monitoring có thể cung cấp prompt “Phân tích log lỗi” với hướng dẫn cụ thể về cách nhóm lỗi, xác định nguyên nhân gốc và đề xuất fix.
Ví dụ thực tế: AI đọc và phân tích dữ liệu từ Google Drive
Tình huống
Bạn là quản lý marketing cần tóm tắt báo cáo hiệu suất quý 3. File nằm trong Google Drive, dung lượng 50 trang, có nhiều bảng biểu.
Cách làm truyền thống
- Mở Google Drive, tìm file
- Download hoặc mở file
- Copy nội dung quan trọng
- Paste vào chat AI
- Vượt quá context limit, phải chia nhỏ
- Mất 15-20 phút chỉ để chuẩn bị dữ liệu
Cách làm với MCP
- Cấu hình MCP server Google Drive một lần
- Trong Claude Desktop, hỏi: “Tóm tắt báo cáo Q3 trong thư mục Marketing, tập trung vào chỉ số conversion rate và chi phí acquisition”
- AI tự động:
- Liệt kê file trong thư mục Marketing qua resource
- Đọc nội dung file báo cáo Q3
- Trích xuất dữ liệu conversion rate và CAC
- Tạo tóm tắt có cấu trúc
Thời gian: 30 giây đặt câu hỏi, 10-15 giây chờ AI xử lý.
Chi tiết kỹ thuật
MCP server Google Drive hoạt động như sau:
- Resource:
gdrive://folder/{folder_id}liệt kê file,gdrive://file/{file_id}đọc nội dung - Tool:
search_filestìm kiếm theo tên hoặc nội dung - Prompt: Có thể định nghĩa sẵn cách format tóm tắt báo cáo marketing
Khi AI quyết định cần dữ liệu, nó gọi MCP client, client gọi MCP server, server gọi Google Drive API và trả ngược dữ liệu về.
Ví dụ thực tế: AI truy vấn database và tạo báo cáo
Tình huống
Bạn cần phân tích xu hướng doanh thu theo vùng miền. Dữ liệu nằm trong PostgreSQL, bạn biết SQL cơ bản nhưng viết query phức tạp mất thời gian.
Quy trình với MCP
Bước 1: Cấu hình MCP server PostgreSQL
{
"mcpServers": {
"postgres": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-postgres"],
"env": {
"DATABASE_URL": "postgresql://user:pass@localhost:5432/sales_db"
}
}
}
}
Bước 2: Tương tác tự nhiên
Người dùng: “So sánh doanh thu theo vùng miền tháng 3 với tháng 2, chỉ rõ vùng nào tăng trưởng mạnh nhất”
AI thực hiện:
- Gọi tool
list_tablesđể xem cấu trúc database - Gọi tool
describe_tablecho bảngordersvàregions - Tự động viết query SQL:
SELECT
r.region_name,
SUM(CASE WHEN o.order_date >= '2024-03-01'
AND o.order_date < '2024-04-01'
THEN o.amount ELSE 0 END) as march_revenue,
SUM(CASE WHEN o.order_date >= '2024-02-01'
AND o.order_date < '2024-03-01'
THEN o.amount ELSE 0 END) as feb_revenue
FROM orders o
JOIN regions r ON o.region_id = r.id
GROUP BY r.region_name
- Gọi
execute_queryvới câu lệnh trên - Phân tích kết quả, tính % tăng trưởng, xác định vùng dẫn đầu
- Trình bày kết luận dạng bảng so sánh
Lợi ích so với cách truyền thống
| Khía cạnh | Cách cũ | Với MCP |
|---|---|---|
| Thời gian chuẩn bị | 10-15 phút viết query | 0, chỉ cần đặt câu hỏi |
| Độ chính xác | Phụ thuộc kỹ năng SQL | AI tự tối ưu query |
| Khả năng lặp lại | Lưu query riêng, dễ thất lạc | Lịch sử chat lưu ngữ cảnh |
| Chia sẻ | Gửi file SQL hoặc screenshot | Người khác dùng cùng MCP server |
Bảo mật và quyền truy cập: Những điều cần biết
Nguyên tắc cơ bản: MCP server chạy local
Điều quan trọng cần hiểu: MCP server thường chạy trên máy local của bạn, không phải trên cloud. Điều này có nghĩa:
- Ưu điểm: Dữ liệu nhạy cảm không rời khỏi máy, credential lưu local
- Rủi ro: Nếu máy bị xâm nhập, attacker có quyền MCP server đó
Không nên cấp quyền quá rộng
Lỗi phổ biến nhất khi cấu hình MCP server là dùng account có quyền cao hơn cần thiết.
Ví dụ sai lầm:
Cấu hình MCP server PostgreSQL với user postgres (superuser) thay vì tạo user chỉ có quyền SELECT trên bảng cần thiết. Nếu AI bị lừa thực thi lệnh nguy hại, toàn bộ database có nguy cơ bị xóa.
Cách làm đúng:
| MCP Server | Quyền tối thiểu cần thiết | Quyền không nên cấp |
|---|---|---|
| PostgreSQL | SELECT trên bảng cụ thể |
DROP, DELETE, UPDATE nếu chỉ đọc |
| Google Drive | Quyền đọc thư mục cụ thể | Quyền xóa, quyền truy cập toàn bộ Drive |
| Slack | Quyền đọc kênh cụ thể | Quyền gửi tin nhắn, quyền admin workspace |
| GitHub | Quyền đọc repo cụ thể | Quyền push, quyền xóa repo |
Xác thực và credential
MCP server lưu credential theo các cách:
- Biến môi trường: An toàn nhất, không lộ trong config file
- File config: Tiện nhưng cần đặt quyền read-only (chmod 600)
- Keychain/Secret manager: Lý tưởng nếu MCP server hỗ trợ
Không bao giờ commit file config chứa credential vào git.
Kiểm soát từng lần gọi tool
Một số MCP client (như Claude Desktop) yêu cầu xác nhận người dùng trước khi thực thi tool. Tính năng này nên bật cho các tool có thể thay đổi dữ liệu:
execute_queryvớiINSERT/UPDATE/DELETEsend_emailcreate_file/delete_file
Ví dụ cấu hình bảo mật tốt
{
"mcpServers": {
"postgres_readonly": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-postgres"],
"env": {
"DATABASE_URL": "postgresql://analytics_read:{{DB_PASSWORD}}@localhost:5432/prod_db"
}
}
}
}
Với user analytics_read trong PostgreSQL chỉ có:
GRANT SELECT ON TABLE sales.orders TO analytics_read;
GRANT SELECT ON TABLE sales.customers TO analytics_read;
-- Không có quyền trên bảng users, payments, admin tables
Khi nào nên sử dụng MCP?
Trường hợp MCP mang lại giá trị cao
Làm việc với nhiều nguồn dữ liệu
Khi AI cần kết hợp thông tin từ Google Drive, Slack, GitHub và database nội bộ. Thay vì 4 integration riêng biệt, một MCP client xử lý tất cả.
Tự động hóa workflow phức tạp
Ví dụ: Hệ thống tự động đọc email support → truy vấn database lịch sử khách hàng → tạo draft trả lời → gửi Slack cho team lead duyệt. MCP cho phép AI điều phối chuỗi này qua nhiều tool.
Xây dựng công cụ nội bộ
Công ty có hệ thống CRM tự phát triển. Viết MCP server một lần, toàn bộ team dùng AI tương tác với CRM mà không cần training riêng.
Trường hợp MCP có thể không cần thiết
Chỉ một kết nối đơn giản
Nếu chỉ cần AI gọi một API cố định, viết trực tiếp có thể nhẹ hơn. MCP thêm lớp abstraction không cần thiết.
Yêu cầu latency cực thấp
MCP thêm một hop (AI → MCP client → MCP server → dịch vụ). Với ứng dụng real-time như giao dịch tài chính, kết nối trực tiếp có thể tốt hơn.
Hệ sinh thái đóng
Nếu toàn bộ chạy trong một nền tảng (chỉ dùng OpenAI với plugin của họ), MCP không mang lại lợi ích thêm.
Các MCP server phổ biến và cách bắt đầu
MCP server chính thức từ Anthropic
| Server | Chức năng | Ngôn ngữ |
|---|---|---|
server-filesystem |
Đọc/ghi file local | TypeScript |
server-postgres |
Truy vấn PostgreSQL | TypeScript |
server-sqlite |
Làm việc với SQLite | Python |
server-github |
Tương tác GitHub | TypeScript |
MCP server từ cộng đồng
Cộng đồng đóng góp nhiều server cho dịch vụ phổ biến:
- Google Drive: Đọc file, tìm kiếm, quản lý thư mục
- Slack: Đọc tin nhắn, gửi thông báo
- Notion: Truy cập database, tạo page
- Brave Search: Tìm kiếm web thay vì dùng Bing API
- Puppeteer: Điều khiển browser để scrape hoặc test
Bước đầu tiên để thử MCP
Với Claude Desktop (khuyên dùng cho người mới):
- Cài đặt Claude Desktop
- Tạo file
~/Library/Application Support/Claude/claude_desktop_config.json(macOS) hoặc%APPDATA%\Claude\claude_desktop_config.json(Windows) - Thêm MCP server đầu tiên, ví dụ filesystem:
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/Users/yourname/Documents"]
}
}
}
- Khởi động lại Claude, kiểm tra biểu tượng 🔨 (tools) xuất hiện
Với IDE như Cursor:
Cursor hỗ trợ MCP từ phiên bản 0.40+. Vào Settings → MCP, thêm server tương tự như trên.
Tự xây dựng MCP server
Nếu cần kết nối hệ thống nội bộ, có thể viết MCP server riêng:
# Ví dụ đơn giản với Python SDK
from mcp.server import Server
from mcp.types import Tool, TextContent
app = Server("my-custom-server")
@app.list_tools()
async def list_tools():
return [
Tool(
name="query_internal_api",
description="Truy vấn API nội bộ",
inputSchema={"type": "object", "properties": {"endpoint": {"type": "string"}}}
)
]
@app.call_tool()
async def call_tool(name, arguments):
if name == "query_internal_api":
# Gọi API nội bộ
result = await internal_api_call(arguments["endpoint"])
return [TextContent(type="text", text=result)]
Hạn chế và hướng phát triển của MCP
Hạn chế hiện tại
Phụ thuộc vào client hỗ trợ
Không phải mọi ứng dụng AI đều hỗ trợ MCP. Tính đến đầu 2025, chủ yếu Claude Desktop, Cursor, và một số công cụ chuyên biệt hỗ trợ đầy đủ.
Chưa có registry chính thức
Tìm MCP server còn phụ thuộc GitHub search hoặc community curation. Chưa có npm/pip-style registry để khám phá và cài đặt dễ dàng.
Version và compatibility
MCP đang phát triển nhanh, các server cũ có thể không tương thích với client mới. Cần theo dõi changelog khi upgrade.
Xu hướng phát triển
MCP cho agent tự chủ
Hiện tại MCP chủ yếu dùng cho AI hỗ trợ người dùng. Tương lai gần sẽ thấy MCP cho autonomous agent tự đưa ra quyết định và thực thi chuỗi hành động phức tạp.
Remote MCP server
Hiện tại MCP server chạy local. Anthropic đang phát triển chuẩn cho remote MCP server, cho phép SaaS cung cấp MCP endpoint mà người dùng chỉ cần kết nối.
Tích hợp sâu hơn với enterprise
Các công cụ quản lý MCP server ở quy mô doanh nghiệp: audit log, role-based access control, centralized credential management.
Câu hỏi thường gặp về MCP
MCP có miễn phí không?
Giao thức MCP là mở và miễn phí. Tuy nhiên, việc chạy MCP server có thể tốn phí nếu server gọi dịch vụ trả phí (như Google Drive API với quota cao).
MCP có an toàn hơn kết nối trực tiếp không?
Không tự động an toàn hơn. MCP là chuẩn giao tiếp, bảo mật phụ thuộc cách cấu hình: quyền truy cập hợp lý, credential bảo vệ, và kiểm soát người dùng.
Có thể dùng MCP với ChatGPT không?
ChatGPT chính thức chưa hỗ trợ MCP. Có thể dùng workaround qua API với custom client, nhưng không phải trải nghiệm native như Claude Desktop.
MCP thay thế API không?
Không. MCP sử dụng API bên dưới. Nó là lớp abstraction giúp AI dùng API dễ hơn, không thay thế bản thân API.
Làm sao biết MCP server nào đáng tin cậy?
Ưu tiên: (1) Server chính thức từ Anthropic, (2) Server có nhiều star/fork trên GitHub với maintenance active, (3) Review code trước khi chạy server từ nguồn không quen thuộc.
Kết luận
MCP (Model Context Protocol) mở ra cách tiếp cận mới để AI tương tác với thế giới bên ngoài: thống nhất, có cấu trúc, và dễ mở rộng. Thay vì xây dựng integration riêng cho từng dịch vụ, nhà phát triển tập trung vào MCP server, người dùng tận hưởng trải nghiệm nhất quán trên mọi AI client.
Điểm mấu chốt khi áp dụng: bắt đầu với một use case cụ thể (đọc Google Drive hoặc truy vấn database), cấu hình quyền truy cập tối thiểu cần thiết, và mở rộng dần khi quen thuộc với mô hình.
Nếu đang xây dựng hệ thống AI cho team hoặc doanh nghiệp, việc đánh giá MCP sớm sẽ giúp tránh nợ kỹ thuật khi chuẩn này trở thành mặc định trong ngành.







