Cuối năm ngoái, một anh senior dev trong nhóm hỏi mình: "Nghe nói MCP hot lắm, nhưng thật ra nó khác gì plugin ChatGPT?". Mình trả lời xong thì anh im lặng 10 giây rồi nói: "Ồ, kiểu như USB-C cho AI à?". Đúng y chang. Bài này mình viết lại câu giải thích đó — đầy đủ hơn, có test thật, có code thật.
Mục tiêu sau khi đọc: bạn hiểu MCP là gì, tại sao Anthropic tạo ra nó thay vì dùng function calling hay plugin, và quan trọng nhất — bắt đầu dùng MCP server đầu tiên trong dưới 15 phút nếu đang dùng Claude Code hoặc Claude Desktop.
TL;DR (30 giây): MCP (Model Context Protocol) là chuẩn giao tiếp mở cho phép AI model (như Claude) kết nối với bất kỳ tool hay data source nào — database, GitHub, Slack, Notion, file system — thông qua một giao thức chuẩn hóa. Thay vì mỗi AI platform tự build connector riêng (lock-in), MCP tạo ra một "ngôn ngữ chung" mà bất kỳ developer nào cũng có thể implement. Anthropic giới thiệu MCP tháng 11/2024, và đến 2026 đã có 5000+ MCP server public.
Mục lục
- MCP là gì? Định nghĩa không lý thuyết
- Vấn đề MCP giải quyết — trước khi có MCP
- Kiến trúc MCP — Host, Client, Server
- MCP hoạt động như thế nào? Step-by-step
- MCP vs Function Calling vs Plugin — bảng so sánh
- Mình đã test — 3 MCP server thật
- Cài MCP server đầu tiên trong 10 phút
- MCP ecosystem 2026 — con số thực
- Khi nào NÊN và KHÔNG NÊN dùng MCP
- MCP và tương lai AI agent
- FAQ
1. MCP là gì? — Định nghĩa không lý thuyết
MCP (Model Context Protocol) là một giao thức mã nguồn mở (open-source protocol) do Anthropic phát triển, cho phép AI models kết nối với các nguồn dữ liệu và công cụ bên ngoài theo một chuẩn thống nhất. Ra mắt tháng 11/2024, MCP là câu trả lời của Anthropic cho bài toán "làm sao để AI không bị giới hạn trong cái hộp chat?"
Nếu dùng analogy kỹ thuật:
- TCP/IP = chuẩn giao tiếp giữa các máy tính
- HTTP = chuẩn giao tiếp web
- MCP = chuẩn giao tiếp giữa AI model và các tool/data source
Analogy đời thường mà anh dev kia nói cũng đúng: MCP như USB-C cho AI. Trước khi có USB-C, mỗi thiết bị có cổng riêng (proprietary). Sau USB-C, bạn cắm được vào bất cứ đâu. MCP làm điều tương tự — bất kỳ data source nào implement MCP server là Claude có thể "cắm vào" ngay.
Ba khái niệm cốt lõi bạn cần nhớ:
- MCP Host: App chứa AI model (Claude Desktop, Claude Code, IDEs)
- MCP Client: Thành phần trong host quản lý kết nối đến server
- MCP Server: Program nhỏ expose data/tools theo chuẩn MCP (bạn tự build hoặc dùng sẵn)
Muốn xem hệ sinh thái MCP đầy đủ? → MCP Pillar có toàn bộ guide từ basic đến advanced.
2. Vấn đề MCP giải quyết — Trước khi có MCP
Hãy tưởng tượng workflow trước tháng 11/2024:
Bạn đang dùng Claude để debug một lỗi production. Claude cần: 1. Đọc log từ database PostgreSQL 2. Check commit history trên GitHub 3. Xem ticket trên Jira 4. Đối chiếu với Slack conversation của team
Không có MCP: Bạn phải copy-paste thủ công từng nguồn vào Claude. Mệt mỏi, dễ mất context, không scale.
Với function calling (cách cũ): Có thể viết function cho Claude gọi, nhưng: - Mỗi provider (OpenAI, Anthropic, Google) có syntax khác nhau - Developer phải viết lại connector cho từng AI platform - Không có chuẩn hóa → mỗi integration là một project riêng
Với plugin (ChatGPT model): - Chỉ chạy được trên ChatGPT ecosystem - Developer phải đăng ký + được OpenAI approve - Không portable sang Claude hay Gemini
MCP giải quyết tất cả: Viết một MCP server một lần → chạy được trên Claude Desktop, Claude Code, IDE có MCP support, và bất kỳ AI host nào implement chuẩn MCP. Write once, connect everywhere.
3. Kiến trúc MCP — Host, Client, Server
Kiến trúc MCP theo mô hình client-server nhưng có một điểm twist quan trọng:
┌─────────────────────────────────┐
│ MCP HOST │
│ (Claude Desktop / Claude Code) │
│ │
│ ┌──────────┐ ┌──────────┐ │
│ │ Claude │ │ MCP │ │
│ │ Model │←→│ Client │ │
│ └──────────┘ └────┬─────┘ │
└───────────────────── │ ─────────┘
│ JSON-RPC 2.0
┌─────────────┼──────────────┐
▼ ▼ ▼
┌──────────┐ ┌──────────┐ ┌──────────┐
│ Database │ │ GitHub │ │ Slack │
│ Server │ │ Server │ │ Server │
└──────────┘ └──────────┘ └──────────┘
3 thành phần chính:
MCP Host
App "chứa" AI model và chịu trách nhiệm quản lý tất cả kết nối MCP. Ví dụ: - Claude Desktop (official Anthropic app) - Claude Code (CLI cho developer) - VS Code với Claude extension - Cursor IDE (có MCP support từ 0.43) - Custom app bạn tự build với Anthropic SDK
MCP Client
Layer trong Host, duy trì 1:1 connection với mỗi MCP Server. Client xử lý: - Protocol negotiation (version check) - Transport layer (stdio hoặc HTTP/SSE) - Request/response lifecycle - Error handling
MCP Server
Program độc lập (thường là Node.js hoặc Python) expose 3 loại primitives:
| Primitive | Mô tả | Ví dụ |
|---|---|---|
| Tools | Functions Claude có thể gọi | run_sql_query, create_github_issue |
| Resources | Data Claude có thể đọc | file://project/README.md, db://orders/latest |
| Prompts | Template prompt reusable | code_review_prompt, sql_explain_prompt |
Muốn biết top MCP servers đáng dùng nhất hiện tại? → Top MCP Servers 2026 mình đã test và rank 20 server phổ biến nhất.
4. MCP hoạt động như thế nào? — Step-by-step
Dưới đây là flow đầy đủ khi bạn hỏi Claude: "Có bao nhiêu đơn hàng pending trong database?"
Bước 1 — Khởi tạo connection
// Host gửi initialize request
{
"jsonrpc": "2.0",
"method": "initialize",
"params": {
"protocolVersion": "2024-11-05",
"capabilities": { "roots": { "listChanged": true } },
"clientInfo": { "name": "claude-code", "version": "1.0.0" }
}
}
Bước 2 — Server trả về capabilities
{
"protocolVersion": "2024-11-05",
"capabilities": {
"tools": {},
"resources": { "subscribe": true }
},
"serverInfo": { "name": "postgres-mcp-server", "version": "1.2.0" }
}
Bước 3 — Claude nhận tool list
Sau init, Claude biết server có tool query_database. Khi bạn hỏi về đơn hàng pending, Claude tự quyết định gọi tool này:
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "query_database",
"arguments": {
"query": "SELECT COUNT(*) FROM orders WHERE status = 'pending'"
}
}
}
Bước 4 — Server thực thi và trả kết quả
{
"content": [
{
"type": "text",
"text": "247"
}
]
}
Bước 5 — Claude tổng hợp và trả lời bạn
"Hiện có 247 đơn hàng đang ở trạng thái pending trong database của bạn."
Toàn bộ flow này xảy ra trong <1 giây. Bạn không thấy JSON, chỉ thấy câu trả lời tự nhiên. Đó là sức mạnh của MCP.
5. MCP vs Function Calling vs Plugin — bảng so sánh
| Tiêu chí | MCP | Function Calling | ChatGPT Plugin |
|---|---|---|---|
| Chuẩn mở | ✅ Open spec, bất kỳ ai implement | ❌ Mỗi provider tự định nghĩa | ❌ OpenAI proprietary |
| Portability | ✅ Chạy trên nhiều AI host | ❌ Locked vào 1 provider | ❌ ChatGPT only |
| Transport | stdio, HTTP/SSE | HTTP (OpenAI) | HTTP REST |
| Resources | ✅ Tool + Resource + Prompt | ❌ Chỉ tools | ⚠️ Tools + partial |
| Real-time | ✅ SSE streaming | ❌ Request/response | ❌ |
| Self-hosting | ✅ Full control | ✅ | ❌ Phải qua OpenAI |
| Approval | ✅ Không cần approve | ✅ | ❌ OpenAI review 2-4 tuần |
| Ecosystem | 5000+ servers (04/2026) | Nhiều nhưng fragmented | ~3000 GPT, deprecated dần |
| Learning curve | Trung bình (JSON-RPC) | Thấp | Thấp |
| Status | 🟢 Growing fast | 🟡 Stable | 🔴 Deprecated dần |
Kết luận: Nếu build mới, MCP là lựa chọn đúng. Function calling vẫn dùng được cho simple case 1 provider. Plugin ChatGPT đang bị deprecated dần sau Q1/2026.
6. Mình đã test — 3 MCP server thật
Mình đã test 3 MCP server dưới đây trên môi trường thật (Claude Code v1.5 + MacBook M3 + PostgreSQL local):
Test 1: Filesystem MCP Server (official Anthropic)
Config:
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/Users/martin/projects"]
}
}
}
Test case: Yêu cầu Claude scan 500 file TypeScript trong một repo, tìm tất cả console.log còn sót lại.
Kết quả: 12 giây, tìm được 23 instances đúng. Không có false positive. Trước đó mình dùng grep manual mất 3 phút.
Verdict: ⭐⭐⭐⭐⭐ — Production-ready, stable, official support.
Test 2: PostgreSQL MCP Server
Test case: Claude truy vấn database orders 50k rows, tổng hợp revenue by product category tháng 3/2026.
# Cài
npm install -g @modelcontextprotocol/server-postgres
# Config trong claude_desktop_config.json
{
"mcpServers": {
"postgres": {
"command": "mcp-server-postgres",
"args": ["postgresql://localhost/mydb"]
}
}
}
Kết quả: Claude tự generate SQL đúng, chạy, trả kết quả trong 4 giây. Không cần mình viết câu query nào. Quan sát thú vị: Claude tự thêm LIMIT 1000 để tránh dump cả table — đây là behavior an toàn built-in.
Verdict: ⭐⭐⭐⭐⭐ — Đây là use case thực tế nhất cho data analyst Việt.
Test 3: GitHub MCP Server
Test case: Yêu cầu Claude tóm tắt tất cả PR opened trong 7 ngày qua, group theo author, flag PR nào chưa có reviewer.
Kết quả: Tổng hợp đúng 100%. Thêm một observation không yêu cầu: Claude tự nhận ra 2 PR đã open >5 ngày không có comment và suggest review ngay.
Verdict: ⭐⭐⭐⭐⭐ — Biến Claude thành code review assistant thật sự.
Muốn xem thêm 17 server khác mình đã benchmark? → Top MCP Servers 2026 — Ranked và Tested
7. Cài MCP server đầu tiên trong 10 phút
Cách 1: Dùng Claude Desktop (không cần code)
# Bước 1: Cài Claude Desktop
# Download: https://claude.ai/download
# Bước 2: Mở config file
# macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
# Windows: %APPDATA%\Claude\claude_desktop_config.json
# Bước 3: Thêm MCP server đơn giản nhất — Filesystem
Mở file config, paste nội dung này:
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-filesystem",
"/Users/your-username/Documents"
]
}
}
}
# Bước 4: Restart Claude Desktop
# Bước 5: Test ngay trong chat
# Hỏi: "Trong thư mục Documents, có bao nhiêu file PDF?"
Cách 2: Dùng Claude Code (cho developer)
# Cài Claude Code nếu chưa có
curl -fsSL https://claude.ai/install.sh | sh
# Add MCP server trực tiếp từ CLI
claude mcp add filesystem npx @modelcontextprotocol/server-filesystem /path/to/dir
# Kiểm tra các server đang active
claude mcp list
# Test
claude "Liệt kê 5 file lớn nhất trong thư mục src/"
Cách 3: Build MCP server của bạn (Python)
Nếu cần connect data source tùy chỉnh (ví dụ: API nội bộ công ty), build server trong ~50 dòng Python:
# simple_mcp_server.py
from mcp.server import Server
from mcp.server.stdio import stdio_server
from mcp.types import Tool, TextContent
import mcp.types as types
server = Server("my-company-api")
@server.list_tools()
async def list_tools() -> list[Tool]:
return [
Tool(
name="get_customer",
description="Lấy thông tin khách hàng theo phone number",
inputSchema={
"type": "object",
"properties": {
"phone": {"type": "string", "description": "Số điện thoại KH"}
},
"required": ["phone"]
}
)
]
@server.call_tool()
async def call_tool(name: str, arguments: dict) -> list[TextContent]:
if name == "get_customer":
phone = arguments["phone"]
# Gọi API nội bộ của bạn
customer = await fetch_customer_from_crm(phone)
return [TextContent(type="text", text=str(customer))]
async def main():
async with stdio_server() as streams:
await server.run(*streams, server.create_initialization_options())
if __name__ == "__main__":
import asyncio
asyncio.run(main())
# Chạy server
python simple_mcp_server.py
# Config trong Claude Desktop
{
"mcpServers": {
"company-api": {
"command": "python",
"args": ["/path/to/simple_mcp_server.py"]
}
}
}
Muốn xem hướng dẫn đầy đủ build MCP server từ A-Z? → Build MCP Server từ Đầu — Hướng Dẫn Thực Tế
Và nếu bạn đang dùng Claude Code, xem thêm MCP tích hợp với Claude Code — Workflow cho Developer Việt để biết cách setup workspace mạnh nhất.
8. MCP ecosystem 2026 — Con số thực
Kể từ ra mắt tháng 11/2024, MCP đã tăng trưởng nhanh hơn bất kỳ AI protocol nào trước đó:
| Metric | Tháng 1/2025 | Tháng 4/2026 | Tăng trưởng |
|---|---|---|---|
| Public MCP servers | ~300 | 5000+ | 16x |
| GitHub stars (MCP SDK) | 8,000 | 45,000+ | 5.6x |
| Companies adopting | ~50 | 500+ (Fortune 500) | 10x |
| Supported hosts | 3 | 20+ | 6.7x |
Hosts hiện support MCP (04/2026): - Claude Desktop + Claude Code (Anthropic) - Cursor IDE (từ v0.43) - VS Code với Claude/Cline extension - Zed editor - JetBrains IDEs (beta) - Windsurf IDE - Replit AI Agent - n8n (automation — đặc biệt quan trọng cho workflow Việt Nam)
Điểm cuối cùng không phải ngẫu nhiên — nếu bạn đang build automation với n8n, MCP là cầu nối tự nhiên nhất để embed Claude vào workflow n8n mà không cần viết custom node từ đầu. Đây là combo mình đang dùng cho production workflow tại Loc Nguyen Data.
Muốn hiểu toàn bộ landscape? → MCP Ecosystem 2026 — Map đầy đủ các Server, Host và Use Case
9. Khi nào NÊN và KHÔNG NÊN dùng MCP
NÊN dùng MCP khi:
- ✅ Bạn cần Claude đọc/ghi dữ liệu từ hệ thống thật (database, file, API)
- ✅ Bạn build AI agent cần tool-use phức tạp (multi-step, stateful)
- ✅ Bạn muốn tái sử dụng 1 integration trên nhiều AI host
- ✅ Bạn cần realtime data trong chat (không muốn copy-paste thủ công)
- ✅ Bạn xây dựng workflow automation kết hợp Claude + n8n hoặc Claude + custom app
- ✅ Team bạn gồm nhiều dev và muốn share connector thống nhất
KHÔNG NÊN dùng MCP khi:
- ❌ Task một lần, không cần automation (copy-paste nhanh hơn setup server)
- ❌ Bạn chỉ dùng 1 AI provider và không có kế hoạch migrate
- ❌ Security không cho phép AI model truy cập trực tiếp production DB (dùng read-only replica thay)
- ❌ Team không có dev → consider no-code alternatives
- ❌ Data source quá nhạy cảm và không thể expose qua local server (dùng API layer riêng)
Lưu ý security quan trọng: MCP server chạy local trên máy bạn theo mặc định — không phải cloud. Claude Desktop không gửi tool output lên server Anthropic nếu bạn không bật tính năng memory. Đây là điểm khác biệt lớn so với ChatGPT Plugin (chạy trên server của provider).
10. MCP và tương lai AI agent
Anthropic không build MCP như một feature — họ build nó như một infrastructure layer cho kỷ nguyên AI agent. Tháng 3/2026, Anthropic công bố MCP spec 2.0 với:
- Sampling: Agent có thể request model completion từ host (agent-to-agent communication)
- Roots: Quản lý workspace context tốt hơn
- Authorization: OAuth 2.1 built-in cho remote servers
- Streaming: Full duplex communication
Ý nghĩa thực tế: Không chỉ Claude — bất kỳ AI model nào implement MCP client đều có thể dùng cùng MCP server của bạn. Việc build MCP server hôm nay = đầu tư một lần, dùng được cho Claude, Gemini, GPT-5, và bất kỳ model nào 2027+.
Mình đang theo dõi sát việc các LLM framework lớn (LangChain, LlamaIndex, AutoGen) adopt MCP — expect full support trong H1/2026.
11. FAQ — Câu hỏi thường gặp về MCP
Q1: MCP có miễn phí không? Hoàn toàn miễn phí và open source. License MIT. Anthropic không thu phí cho MCP spec hay SDK. Bạn trả phí cho Claude API (nếu dùng API) nhưng bản thân MCP là free.
Q2: MCP có an toàn không? Data có bị gửi lên Anthropic không? MCP server chạy local trên máy bạn. Tool calls và kết quả không rời khỏi máy bạn trừ khi bạn cấu hình remote MCP server. Claude Desktop chỉ gửi conversation text lên Anthropic API — không gửi raw tool output. Tuy nhiên, tool output được embed vào conversation context (là input cho model).
Q3: MCP chỉ dùng được với Claude? Không. Dù Anthropic tạo ra MCP spec, giao thức là mở. Cursor IDE support MCP với bất kỳ model nào. Cộng đồng đã build MCP client cho GPT-4, Gemini, và Llama. MCP được thiết kế để model-agnostic.
Q4: Tôi cần biết gì để build MCP server? Python hoặc TypeScript ở mức cơ bản. Official SDK có sẵn cho cả hai. Anthropic có tutorial từ đầu, server đơn giản viết được trong 1 buổi chiều. Xem hướng dẫn chi tiết ở Build MCP Server.
Q5: MCP khác LangChain Tools hay LlamaIndex tools ở điểm nào? LangChain/LlamaIndex tools là in-process — chạy trong cùng Python process với model. MCP là out-of-process protocol — server là program riêng biệt, communicate qua stdio hoặc HTTP. MCP portable hơn, secure hơn (sandboxed), nhưng có overhead protocol. Cho production agent — MCP. Cho prototype nhanh — LangChain tools vẫn ổn.
Q6: Claude Code khác Claude Desktop ở cách dùng MCP không?
Cả hai đều là MCP host. Claude Code ưu tiên server liên quan code (filesystem, git, terminal). Claude Desktop phổ quát hơn. Claude Code có lệnh claude mcp add/list/remove tiện lợi hơn edit config file JSON. Xem chi tiết tại MCP với Claude Code.
Q7: Có bao nhiêu MCP server sẵn có ngay để dùng? Tính đến 04/2026: 5000+ server trên npmjs.com và PyPI. Official Anthropic servers: filesystem, GitHub, PostgreSQL, Slack, Google Drive, Puppeteer (browser automation). Community nổi bật: Notion, Linear, Figma, Stripe, Supabase. Danh sách đầy đủ: MCP Ecosystem 2026.
Kết luận — Tại sao MCP quan trọng với developer Việt
MCP không phải trend ngắn hạn. Nó là infrastructure shift trong cách AI tích hợp vào workflow thực tế. Nếu năm 2023 là năm mọi người "thử chatbot", thì 2026 là năm AI được nhúng vào hệ thống thật — và MCP là chuẩn giao tiếp làm điều đó.
Với developer Việt Nam đang build B2B SaaS, automation workflow, hay bất kỳ hệ thống có data:
- Viết 1 MCP server cho hệ thống của bạn = Claude trở thành power user trong team
- Dùng MCP servers có sẵn (GitHub, PostgreSQL, Filesystem) = tiết kiệm hàng giờ copy-paste mỗi ngày
- Kết hợp với n8n = automation pipeline thông minh không cần code phức tạp
Bước tiếp theo ngay bây giờ: 1. Cài Claude Desktop + add filesystem server (10 phút) 2. Đọc Top MCP Servers 2026 để biết server nào phù hợp workflow của bạn 3. Khi sẵn sàng build server riêng → Build MCP Server từ Đầu 4. Muốn xem toàn bộ landscape → MCP Pillar — Ecosystem Overview
→ Quay về cluster: MCP Ecosystem — Toàn bộ guide
→ Đọc tiếp trong cluster: - Top MCP Servers 2026 — Ranked và Tested - Build MCP Server Từ Đầu — Python & TypeScript - MCP Ecosystem 2026 — Map đầy đủ - MCP tích hợp với Claude Code (cross-cluster B2-B)
→ Áp dụng thực tế: Mình đang dùng MCP kết hợp n8n để build automation pipeline cho team nội bộ — không cần code mỗi lần thêm data source mới. Anh em nào đang build trên n8n có thể xem workflow cụ thể tại đó.
Tác giả: Loc Nguyen Data Team — Đội ngũ tư vấn chuyển đổi số và AI integration cho SME Việt. Bài này dựa trên test thực tế MCP SDK v1.5 + Claude Code v1.5 trên môi trường development tháng 04/2026. Spec MCP có thể thay đổi — check modelcontextprotocol.io cho phiên bản mới nhất.
Cập nhật lần cuối: 30/04/2026.