🔌 MCP là gì?
The Model Context Protocol (MCP) là một chuẩn mở được xuất bản bởi Anthropic vào tháng 12 năm 2024 định nghĩa một giao diện chung để kết nối các mô hình AI với công cụ bên ngoài, nguồn dữ liệu và dịch vụ. Trước MCP, mỗi tích hợp AI là một triển khai tùy chỉnh, riêng lẻ. MCP tiêu chuẩn hóa cách các AI clients giao tiếp với các khả năng bên ngoài — vì vậy một lần tích hợp hoạt động với bất kỳ hệ thống AI tương thích nào.
MCP là một giao thức client-server: MCP clients là các hệ thống AI (như Claude, Cursor, VS Code với Copilot) muốn sử dụng các khả năng bên ngoài. MCP servers là các dịch vụ phơi bày những khả năng đó (GitHub, cơ sở dữ liệu, hệ thống tệp, trình duyệt web) thông qua một API tiêu chuẩn mà bất kỳ MCP client nào cũng có thể tiêu thụ.
🔋 Ẩn dụ USB-C
Trước USB-C, mỗi thiết bị có kết nối độc quyền riêng — bộ sạc điện thoại không dùng được cho laptop, cáp hiển thị không hoạt động với thiết bị lưu trữ. USB-C giải quyết điều này bằng một chuẩn chung: một cổng, một cáp, vô số thiết bị.
Các tích hợp AI trước MCP cũng hỗn loạn như vậy. Kết nối Claude với GitHub yêu cầu mã tùy chỉnh. Kết nối GPT-4 với cùng API GitHub lại cần mã tùy chỉnh khác. Thêm một công cụ mới có nghĩa là xây lại tích hợp từ đầu cho mỗi nền tảng AI.
MCP là USB-C cho AI. Một chuẩn duy nhất:
- Xây dựng một MCP server một lần — bất kỳ MCP client nào cũng có thể sử dụng nó
- Chấp nhận một mô hình AI mới — các MCP server hiện có của bạn hoạt động ngay lập tức
- Hệ sinh thái các MCP server phát triển độc lập với việc phát triển mô hình AI
⚙️ Cách MCP hoạt động
MCP sử dụng giao thức JSON-RPC 2.0 trên một lớp vận chuyển (stdio cho server cục bộ, HTTP/SSE cho server từ xa). Giao tiếp tuân theo vòng đời khởi tạo, khám phá khả năng, và xử lý yêu cầu.
Ba nguyên mẫu cốt lõi
| Primitive | Những gì nó phơi bày | Example |
|---|---|---|
| Tools | Các hàm mà AI có thể gọi (do mô hình điều khiển) | search_github_issues, run_sql_query, send_email |
| Resources | Dữ liệu mà AI có thể đọc (do ứng dụng kiểm soát) | file:///workspace/src, db://customers/schema |
| Prompts | Mẫu prompt có thể tái sử dụng (do người dùng kiểm soát) | code-review, summarize-pr, explain-error |
Luồng giao tiếp
- Khởi tạo: Client kết nối tới server, trao đổi phiên bản giao thức và khả năng
- Khám phá: Client yêu cầu danh sách công cụ, tài nguyên và prompt có sẵn
- Gọi: Mô hình AI quyết định gọi một công cụ; client gửi yêu cầu tới server
- Trả về: Server thực thi hành động và trả về kết quả có cấu trúc cho client
- Tiếp tục: Mô hình AI kết hợp kết quả và tiếp tục suy luận
Tùy chọn vận chuyển
| Transport | Phù hợp nhất cho | Notes |
|---|---|---|
| stdio | Công cụ cục bộ, tích hợp CLI | Client khởi chạy server như subprocess; thiết lập đơn giản nhất |
| HTTP + SSE | Dịch vụ đám mây/từ xa, đội nhóm chia sẻ | Server chạy độc lập; hỗ trợ header auth |
| WebSocket | Theo thời gian thực hai chiều (bản nháp) | Đề xuất cho các trường hợp streaming |
🔄 MCP vs Function Calling
Function calling (sử dụng công cụ) là một tính năng tích hợp trong các API AI cụ thể — OpenAI, Anthropic, Google — cho phép bạn định nghĩa các hàm tùy chỉnh mà mô hình có thể gọi. MCP là một lớp phủ lên trên hoặc song song với function calling giúp tiêu chuẩn hóa cách các hàm đó được phát hiện và kết nối.
| Function Calling | MCP | |
|---|---|---|
| Scope | API-specific, per-request | Đa nền tảng, tiêu chuẩn hóa |
| Discovery | Hardcoded in your API call | Dynamic — server advertises capabilities |
| Portability | Tied to one AI provider | Works with any MCP-compatible client |
| Resources | Not standardized | First-class primitive (files, DBs, URIs) |
| Phù hợp nhất cho | Các trường hợp đơn giản, chỉ dùng một nhà cung cấp | Hệ thống production đa-công cụ, đa-mô hình |
Trong thực tế, các MCP server thường dùng function calling bên trong — MCP cung cấp lớp khám phá và kết nối, trong khi function calling xử lý việc gọi công cụ từ LLM.
🏢 Ai hỗ trợ MCP
Việc chấp nhận MCP đã tăng nhanh kể từ khi ra mắt vào tháng 12 năm 2024. Tính đến tháng 4 năm 2026, hệ sinh thái bao gồm:
Các client AI hỗ trợ MCP
- Claude (Anthropic) — hỗ trợ MCP gốc trên Claude.ai và Claude Code
- Cursor — MCP servers cho trợ giúp AI hiểu mã
- VS Code (GitHub Copilot) — tích hợp MCP ở chế độ agent
- Windsurf (Codeium) — hỗ trợ MCP server
- Continue.dev — trợ lý IDE mã nguồn mở với MCP
Các MCP server phổ biến
- Filesystem — đọc/ghi tệp cục bộ (official Anthropic)
- GitHub — repos, PRs, issues, tìm kiếm mã
- PostgreSQL / SQLite — truy vấn cơ sở dữ liệu và khám phá schema
- Brave Search / Exa — tìm kiếm web không cần API keys
- Puppeteer / Playwright — tự động hóa trình duyệt
- Slack / Linear / Notion — tích hợp công cụ năng suất
🚀 Bắt đầu với MCP
Tùy chọn 1: Sử dụng các MCP server hiện có (5 phút)
Cách nhanh nhất để trải nghiệm MCP là dùng Claude Desktop với các server có sẵn. Chỉnh cấu hình Claude Desktop của bạn tại ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/Users/yourname/Documents"]
},
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": { "GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_..." }
}
}
} Tùy chọn 2: Xây dựng một MCP server (30 phút)
SDK chính thức có sẵn cho TypeScript, Python và Kotlin:
// TypeScript MCP server example
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
const server = new Server({ name: "my-server", version: "1.0.0" });
server.setRequestHandler("tools/list", async () => ({
tools: [{
name: "get_weather",
description: "Get current weather for a city",
inputSchema: {
type: "object",
properties: { city: { type: "string" } },
required: ["city"]
}
}]
}));
server.setRequestHandler("tools/call", async (request) => {
const { city } = request.params.arguments;
// ... fetch weather data
return { content: [{ type: "text", text: `Weather in ${city}: sunny, 22°C` }] };
});
const transport = new StdioServerTransport();
await server.connect(transport); 🔐 Cân nhắc bảo mật MCP
Sức mạnh của MCP — cho phép các mô hình AI truy cập công cụ, tệp và dịch vụ — cũng đem lại các rủi ro bảo mật mà các nhà phát triển phải thiết kế để phòng chống.
| Risk | Description | Mitigation |
|---|---|---|
| Chèn prompt (prompt injection) thông qua MCP | Nội dung độc hại trong kết quả công cụ thao túng AI | Làm sạch đầu ra công cụ; sử dụng mô hình suy luận và mô hình hành động tách biệt |
| Server có quyền vượt mức | MCP server có nhiều quyền hơn mức cần thiết | Nguyên tắc ít quyền nhất; ưu tiên read-only khi có thể |
| Confused deputy | AI hành động nhân danh kẻ tấn công mà người dùng không biết | Xác nhận HITL cho các hành động phá hủy/không thể đảo ngược |
| Chuỗi cung ứng server | MCP server bên thứ ba độc hại rút trộm dữ liệu | Chỉ sử dụng server đáng tin cậy, đã được kiểm toán; xem lại mã server |
Để tìm hiểu sâu hơn về các lỗ hổng bảo mật AI — bao gồm cách prompt injection có thể được vũ khí hóa thông qua kết quả công cụ MCP — xem hướng dẫn của chúng tôi: Giải thích Prompt Injection.