MCP Là Gì? Model Context Protocol Giải Thích Đơn Giản (2026)



Sơ đồ kiến trúc Model Context Protocol cho thấy Host kết nối với nhiều MCP Servers trên nền tối
Model Context Protocol: chuẩn kết nối mở giúp AI agent giao tiếp với bất kỳ tool nào qua một giao thức duy nhất
TL;DR

MCP (Model Context Protocol) là chuẩn mở do Anthropic công bố tháng 11/2024, giúp AI agent kết nối với bất kỳ tool hoặc dữ liệu nào qua một protocol thống nhất, thay vì phải viết tích hợp riêng cho từng cặp AI-tool. Hệ sinh thái hiện có hơn 11,000 MCP servers, spec repo đạt 52K+ GitHub stars. OpenAI, Google, Microsoft đã adopt chuẩn này. Bài này giải thích MCP từ đầu, không cần background kỹ thuật sâu.

11/2024
MCP ra mắt
by Anthropic

11K+
MCP servers
trong ecosystem

52K+
GitHub stars
official spec repo

4+
Big Tech đã
adopt MCP

Lần đầu mình nghe đến MCP là cuối năm 2024, khi Anthropic âm thầm công bố trên blog kỹ thuật. Lúc đó mình chưa hiểu tại sao nó quan trọng. Vài tháng sau, khi Claude Code là gì tích hợp MCP support native, mình mới vỡ ra: đây là thứ thay đổi hoàn toàn cách AI agent hoạt động trong thực tế.

Bài này giải thích MCP từ gốc rễ. Tại sao nó ra đời, nó hoạt động thế nào, và bạn có thể dùng nó ngay hôm nay ra sao. Không cần background kỹ thuật sâu để đọc hiểu phần này.

MCP Protocol: One protocol, any tool.
Slide 1/5: MCP Protocol: One protocol, any tool.
N x M Problem vs N + M Solution.
Slide 2/5: N x M Problem vs N + M Solution.
Architecture: Host, Client, Server.
Slide 3/5: Architecture: Host, Client, Server.
Top MCP Servers: 11K+ ecosystem.
Slide 4/5: Top MCP Servers: 11K+ ecosystem.
MCP vs API vs Plugins comparison.
Slide 5/5: MCP vs API vs Plugins comparison.

MCP Là Gì? Định Nghĩa Và Ý Nghĩa Thực Tế

Model Context Protocol (MCP) là một chuẩn giao thức mở, do Anthropic công bố vào tháng 11/2024, cho phép AI model kết nối với các nguồn dữ liệu và công cụ bên ngoài theo một cách thống nhất (modelcontextprotocol.io, 2024). Nói ngắn gọn: MCP là “ngôn ngữ chung” giữa AI và mọi tool bạn muốn nó sử dụng.

Trước MCP, để kết nối ChatGPT với GitHub, bạn cần viết một integration riêng. Kết nối Claude với Postgres là một integration khác. Mỗi cặp AI-tool là một đoạn code tùy chỉnh, khó maintain và khó tái sử dụng. MCP giải quyết bài toán này bằng cách chuẩn hóa toàn bộ lớp kết nối đó.

Cách mình hay giải thích với bạn bè không làm kỹ thuật: MCP giống như cổng USB-C. Trước đây mỗi thiết bị có đầu sạc riêng (micro-USB, Lightning, USB-A). USB-C ra đời và tất cả dùng chung một cổng. MCP làm điều tương tự cho AI và tools bên ngoài.

Van de N nhan M trong tich hop AI truoc khi co MCP
N x M Problem: truoc MCP, moi AI can integration rieng voi moi tool.

Tại Sao Cần MCP? Vấn Đề N×M Trong Tích Hợp AI

Trước khi MCP ra đời, mỗi nhà phát triển AI phải tự viết integration cho từng cặp model-tool. Nếu bạn có N model AIM tools (GitHub, Slack, database, file system…), bạn cần duy trì đến N×M integrations khác nhau. Con số này tăng theo cấp số nhân và nhanh chóng trở thành cơn ác mộng về bảo trì.

Hãy xét một ví dụ cụ thể: một team nhỏ có 3 AI tools (Claude, GPT-4, Gemini) và 10 công cụ nội bộ (database, CI/CD, monitoring, ticketing…). Họ cần duy trì đến 30 integrations riêng biệt. Mỗi khi một AI model ra bản update hay một tool thay đổi API, mọi integrations liên quan phải được cập nhật lại từ đầu.

MCP chuyển bài toán này thành N+M. Mỗi AI model chỉ cần implement một MCP client. Mỗi tool chỉ cần implement một MCP server. Hai bên giao tiếp qua protocol chung. Thêm một AI mới không đòi hỏi viết lại integration với 10 tools cũ. Thêm một tool mới không đòi hỏi mỗi AI team phải tự adapter riêng.

Ví dụ thực tế: Bạn build một MCP server cho hệ thống monitoring nội bộ của công ty. Bất kỳ AI agent nào hỗ trợ MCP (Claude Code, Cursor, Copilot…) đều có thể dùng ngay, không cần bạn viết thêm một dòng adapter nào. Một lần build, dùng được khắp nơi.

Kien truc MCP Host Client Server Resources Tools Prompts
Kiến trúc MCP: Host → Client → Server → Resources/Tools/Prompts.

Kiến Trúc MCP Hoạt Động Thế Nào?

MCP sử dụng mô hình client-server với ba thành phần chính. Hiểu kiến trúc này giúp bạn biết đang debug ở tầng nào khi gặp vấn đề. Theo tài liệu chính thức MCP, toàn bộ hệ thống gồm Host, Client, và Server.

Thành phần Vai trò Ví dụ thực tế
Host Ứng dụng AI chứa LLM, điều phối toàn bộ luồng Claude Code, Cursor, Claude.ai Desktop
Client Layer trong Host, duy trì kết nối 1:1 với Server MCP client tích hợp trong Claude Code
Server Process riêng, expose tools/resources/prompts cho AI GitHub MCP server, Postgres MCP server
Resources Dữ liệu tĩnh hoặc động mà Server expose ra File content, database records, API responses
Tools Hàm AI có thể gọi để thực thi hành động thực create_issue, run_query, send_message
Prompts Template prompt tái sử dụng được từ Server Code review template, debug checklist

Transport Layer: stdio vs Streamable HTTP

MCP hỗ trợ hai transport layer khác nhau, phù hợp với hai use case chính. Bạn chọn transport dựa trên nơi MCP server chạy, không phải dựa trên loại tool mà server đó serve.

stdio (Standard I/O) dùng cho local servers. Host spawn một subprocess, giao tiếp qua stdin/stdout. Đây là cách phổ biến nhất khi bạn cài MCP server trên máy cá nhân. Latency thấp, setup đơn giản, nhưng chỉ dùng được trên cùng một máy.

Streamable HTTP (thay thế SSE transport từ spec 2025-03-26) dùng cho remote servers. Server chạy trên internet, Claude Code gọi qua HTTP. Phù hợp khi team cần chia sẻ chung một MCP server, hoặc khi bạn deploy server lên cloud production. Một dạng MCP đặc biệt là Channels, cho phép kết nối messaging platforms như Telegram, Discord vào phiên Claude Code để nhận lệnh và gửi kết quả qua chat.

Lưu ý version: Nếu bạn thấy tài liệu cũ nhắc đến “SSE transport”, đó là spec cũ. Từ tháng 3/2025, MCP chính thức chuyển sang Streamable HTTP. Hầu hết SDK đã cập nhật, nhưng một số servers cộng đồng vẫn còn dùng SSE.

Top MCP servers pho bien nhat GitHub PostgreSQL Brave Playwright
Top MCP Servers: GitHub, PostgreSQL, Brave Search, Filesystem, Playwright, Slack.

Những MCP Servers Phổ Biến Nhất Hiện Nay

Hệ sinh thái MCP đã có hơn 11,000 servers chỉ sau hơn một năm ra mắt (github.com/modelcontextprotocol, 2025). Anthropic duy trì một bộ reference servers chất lượng cao làm điểm khởi đầu tốt nhất. Dưới đây là những cái mình dùng thường xuyên nhất trong workflow hàng ngày tại ongboit.com.

MCP Server Dùng để làm gì Transport
GitHub Tạo issue, review PR, quản lý repo trực tiếp stdio
Filesystem Đọc/ghi file trên máy local có kiểm soát stdio
Postgres Query database, xem schema, chạy SQL stdio
Brave Search Tìm kiếm web realtime, không cần API đắt tiền stdio
Playwright Tự động hóa browser, web scraping, E2E test stdio
Slack Gửi message, đọc channel, tìm kiếm thông tin stdio
Memory Knowledge graph persistent qua nhiều session, kết hợp tốt với Obsidian wiki stdio
WordPress MCP Publish post, upload media, quản lý nội dung Streamable HTTP

Mình dùng WordPress MCP hàng ngày để publish bài lên ongboit.com trực tiếp từ Claude Code mà không cần mở trình duyệt. Nếu bạn quan tâm đến workflow này, xem bài WordPress MCP mình đã viết chi tiết riêng.

Cách Cài MCP Server Trong Claude Code

Claude Code hỗ trợ MCP native qua file cấu hình .mcp.json. Bạn không cần plugin hay extension gì thêm. Cấu hình lưu ở hai cấp: project-level (trong thư mục dự án, chỉ dùng cho project đó) hoặc user-level (áp dụng cho mọi project trên máy). Dưới đây là cách mình cài trong workflow thực tế.

Cấu Hình .mcp.json Cơ Bản

Tạo file .mcp.json trong thư mục project, hoặc tại ~/.claude/.mcp.json cho global config. Cấu trúc JSON khá đơn giản: mỗi server là một entry với tên, command, args và env variables.

{
  "mcpServers": {
    "github": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-github"],
      "env": {
        "GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_your_token_here"
      }
    },
    "filesystem": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-filesystem",
        "/home/user/projects"
      ]
    },
    "postgres": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-postgres"],
      "env": {
        "POSTGRES_CONNECTION_STRING": "postgresql://user:pass@localhost/mydb"
      }
    }
  }
}

Thêm MCP Server Qua CLI Nhanh Hơn

Ngoài cách edit file JSON thủ công, Claude Code cung cấp lệnh claude mcp add để thêm server chỉ bằng một dòng lệnh. Lệnh này tự động cập nhật .mcp.json và validate cấu hình ngay lập tức.

# Thêm GitHub MCP server (scope: project hiện tại)
claude mcp add github -e GITHUB_PERSONAL_ACCESS_TOKEN=ghp_xxx -- npx -y @modelcontextprotocol/server-github

# Thêm global - áp dụng mọi project trên máy
claude mcp add --scope user filesystem -- npx -y @modelcontextprotocol/server-filesystem /home/user

# Liệt kê tất cả servers đang active
claude mcp list

# Kiểm tra status một server cụ thể
claude mcp get github

Sau khi cấu hình xong, Claude Code tự động start các MCP servers khi bạn mở session mới. Gõ /mcp trong chat để xem danh sách servers đang kết nối và trạng thái từng server. Chi tiết về cách quản lý nhiều MCP servers cùng lúc, mình có bài riêng cho chủ đề đó.

So sanh MCP vs API vs Plugins khac nhau cho nao
MCP vs API vs Plugins: standard protocol vs direct connection vs packages.

MCP vs API vs Plugins: Khác Nhau Chỗ Nào?

Nhiều bạn hỏi mình: “MCP khác gì so với gọi API thông thường hay dùng ChatGPT Plugins cũ?” Câu hỏi hay. Ba cơ chế này giải quyết cùng một nhu cầu (kết nối AI với tool ngoài) nhưng theo những cách khác nhau về kiến trúc và khả năng mở rộng dài hạn.

Tiêu chí Direct API Call Plugins (ChatGPT cũ) MCP
Chuẩn hóa Không – mỗi API một kiểu Có, nhưng chỉ OpenAI Mở, multi-vendor
Reusability Thấp – viết lại cho mỗi AI Thấp – lock-in OpenAI Cao – 1 server, mọi AI
Bidirectional Hạn chế Không Có – server sampling
Resources Không có khái niệm Không Có – expose data trực tiếp
Open source N/A Không MIT License
Số integrations cần maintain N x M N x M (chỉ với GPT) N + M

ChatGPT Plugins từng là bước tiến đáng kể. Nhưng nó là giải pháp của OpenAI dành cho OpenAI. MCP khác ở chỗ bất kỳ AI vendor nào cũng có thể implement, và thực tế các vendors lớn đã làm vậy. Đây là lý do MCP thắng về adoption dù Anthropic không phải công ty AI lớn nhất.

Ai Đang Dùng MCP? Mức Độ Adoption Thực Tế

Chỉ trong 5 tháng đầu sau khi ra mắt, MCP đã được ba ông lớn AI cạnh tranh trực tiếp với Anthropic chấp nhận làm chuẩn chính thức. Đây là mức độ adoption hiếm thấy trong lịch sử các chuẩn kỹ thuật mở, và nó xác nhận MCP đang giải quyết đúng pain point của toàn ngành.

OpenAI là cột mốc lớn nhất. Tháng 3/2025, OpenAI chính thức thông báo hỗ trợ MCP cho ChatGPT và Agents SDK. Đây là bước ngoặt vì OpenAI và Anthropic là đối thủ cạnh tranh trực tiếp. Khi một công ty chấp nhận chuẩn của đối thủ, đó là tín hiệu mạnh nhất về giá trị kỹ thuật.

Google tích hợp MCP vào Agent Development Kit (ADK) năm 2025. Microsoft thêm MCP vào GitHub Copilot và Visual Studio Code. Cursor, Windsurf, Zed đều implement MCP client. Repo spec chính thức trên GitHub đạt 52,000+ stars. Con số stars phản ánh cộng đồng đang thực sự dùng, không chỉ quan tâm theo dõi từ xa.

Góc nhìn từ ongboit.com: Mình dùng MCP với Claude Code từ tháng 1/2025. So với thời điểm phải viết custom scripts để kết nối Claude với WordPress, sự khác biệt rất rõ. Thay vì maintain 3 scripts riêng, giờ mình chỉ cần một file .mcp.json. Mỗi tuần tiết kiệm được vài giờ không phải debug integration code.

Bảo Mật MCP: Biết Gì Trước Khi Cài?

Câu hỏi mình nhận nhiều nhất từ reader là: “Cài MCP server của bên thứ ba có nguy hiểm không?” Câu trả lời thành thật là: có rủi ro, nhưng hoàn toàn có thể kiểm soát nếu bạn hiểu cơ chế bảo mật và biết chọn server nào đáng tin.

Permission Prompts và Human-in-the-Loop

MCP hosts như Claude Code yêu cầu xác nhận từ người dùng trước khi thực hiện bất kỳ tool call nào có tác động thực tế. Bạn sẽ thấy prompt “Allow GitHub server to create issue?” trước khi action xảy ra. Đây là lớp bảo vệ quan trọng nhất, nằm ở tầng application host, không phụ thuộc vào từng server riêng lẻ.

Hooks trong Claude Code cho phép bạn thêm lớp kiểm tra tùy chỉnh trước và sau mỗi tool call. Bạn có thể log, validate, hoặc chặn các calls không mong muốn trước khi chúng thực thi. Đây là công cụ quan trọng khi dùng MCP trong môi trường production.

Nguyên Tắc Least Privilege Khi Cấu Hình

Mỗi MCP server chỉ nên có quyền truy cập tối thiểu cần thiết cho công việc của nó. Filesystem server nên được giới hạn vào thư mục cụ thể, không phải toàn bộ ổ đĩa. GitHub server nên dùng Personal Access Token có scope hạn chế, không phải full admin token.

# TRÁNH - quyền truy cập quá rộng
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/"]

# NÊN LÀM - giới hạn thư mục cụ thể
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/home/user/projects/my-app"]

# GitHub token: chỉ scope thực sự cần
# Ví dụ: repo:read, issues:write - không cần admin

Cách Mình Chọn MCP Server Của Bên Thứ Ba

Ba tiêu chí mình dùng khi đánh giá MCP server cộng đồng. Một: source code phải công khai trên GitHub để mình review được code thực sự làm gì. Hai: phải có ít nhất vài trăm stars và issue tracker đang hoạt động. Ba: server không được request permissions ngoài những gì mô tả trong README của nó.

Cảnh báo “Prompt Injection”: Một MCP server độc hại có thể inject instructions vào context của AI thông qua response data. Chỉ cài servers từ nguồn đáng tin cậy. Không cài server từ link ngẫu nhiên dù README trông chuyên nghiệp đến đâu.

MCP Kết Hợp Với Sub-Agents và Skills

Khi bạn đã hiểu MCP cơ bản, bước tiếp theo thú vị hơn nhiều: kết hợp MCP với sub-agents. Claude Code có thể spawn nhiều agent con, mỗi agent dùng một tập MCP servers riêng. Điều này cho phép xử lý song song các tác vụ phức tạp mà bạn không phải tự điều phối thủ công.

Ví dụ thực tế từ workflow của mình: khi publish một bài blog mới, một sub-agent dùng GitHub MCP để commit code. Sub-agent khác dùng WordPress MCP để publish bài. Sub-agent thứ ba dùng Brave Search MCP để verify external links. Cả ba chạy song song, không phải chờ nhau tuần tự.

MCP cũng là nền tảng quan trọng cho Skills trong Claude Code. Skills là các workflow tái sử dụng được định nghĩa sẵn. Kết hợp Skills với MCP servers, bạn có thể build automation pipeline mạnh mà không cần viết code phức tạp. Và nếu muốn xem cách tất cả mảnh ghép lại với nhau, mình đã có bài về sub-agents và orchestration chi tiết hơn.

Câu Hỏi Thường Gặp

MCP có miễn phí không?

Bản thân chuẩn MCP là hoàn toàn miễn phí theo MIT License. Để dùng MCP với Claude Code, bạn cần tài khoản Claude trả phí (Pro $20/tháng trở lên). Hầu hết MCP servers cũng miễn phí. Một số third-party services có tính phí riêng cho API access của họ, ví dụ Brave Search API có giới hạn free tier khoảng 2,000 queries/tháng.

MCP server có thể viết bằng ngôn ngữ lập trình nào?

Anthropic cung cấp SDK chính thức cho TypeScript/JavaScript, Python, Java, Kotlin, C#, và Swift. Cộng đồng đã có thêm SDK không chính thức cho Go, Rust, Ruby. Nếu ngôn ngữ của bạn chưa có SDK, bạn vẫn có thể implement MCP từ đầu vì protocol chỉ là JSON-RPC qua stdio hoặc HTTP, không phức tạp về mặt kỹ thuật cơ bản.

Có thể dùng MCP với AI model nào ngoài Claude không?

Có. Sau khi OpenAI adopt MCP vào 3/2025, ChatGPT và Agents SDK của OpenAI đều hỗ trợ. Google ADK, GitHub Copilot, Cursor, Windsurf, Zed cũng implement MCP client. Nếu bạn build một MCP server hôm nay, nó hoạt động với tất cả các AI clients này mà không cần chỉnh sửa thêm gì.

MCP server chạy ở đâu: trên máy hay trên cloud?

Cả hai đều được. Stdio transport dùng cho servers chạy local trên máy bạn. Streamable HTTP dùng cho servers chạy remote trên cloud. Đa số developers bắt đầu với stdio vì đơn giản hơn, rồi chuyển sang remote khi cần chia sẻ server cho cả team hoặc deploy lên production environment.

Cài nhiều MCP servers có làm chậm Claude Code không?

Ít ảnh hưởng đến tốc độ trả lời, nhưng ảnh hưởng đến context window. Mỗi MCP server khi connected sẽ inject tool descriptions vào context của model. Nếu bạn cài 20 servers với tổng cộng 200 tools, phần context dành cho tool schemas có thể chiếm vài nghìn tokens. Mình recommend chỉ enable servers thực sự cần cho project hiện tại, thay vì cài global tất cả.

MCP có thay thế function calling của LLM không?

MCP không thay thế function calling mà là một lớp trừu tượng ở trên. MCP sử dụng function calling của LLM bên dưới để thực thi tool calls. Điều MCP thêm vào là chuẩn hóa cách tools được định nghĩa, discovered, và gọi, độc lập với từng AI vendor. Nói cách khác: function calling là cơ chế, MCP là chuẩn dùng cơ chế đó.

Làm sao tìm MCP servers phù hợp với use case của mình?

Ba nguồn mình hay dùng: kho chính thức tại github.com/modelcontextprotocol/servers (curated, chất lượng cao), awesome-mcp-servers trên GitHub (community list rộng hơn), và mcp.so (marketplace có search và rating cộng đồng). Bắt đầu với official servers, rồi mở rộng ra community servers khi bạn đã biết cách đánh giá chất lượng.

Tool Normalization: Khi MCP server đăng ký tools với Claude Code, mỗi tool được rename thành mcp__<server>__<tool>. Ví dụ: tool read_file từ server filesystem trở thành mcp__filesystem__read_file. Điều này quan trọng khi viết permission rules: "allow": ["mcp__filesystem__read_file"] chứ không phải "allow": ["read_file"]. MCP tools đi qua cùng permission pipeline như native tools, deny rules, mode check, allow rules đều áp dụng.

Kết Luận

MCP không phải buzzword của năm. Đây là một chuẩn kỹ thuật thực sự đang giải quyết một vấn đề thực sự. Trong chưa đầy 18 tháng từ khi ra mắt, nó đã được OpenAI, Google, và Microsoft chấp nhận, hơn 11,000 servers cộng đồng được xây dựng, và spec repo đạt 52,000+ GitHub stars. Tốc độ adoption này không đến từ marketing mà đến từ giá trị kỹ thuật thực chất.

Nếu bạn đang dùng Claude Code hay bất kỳ AI coding tool nào khác, hiểu MCP sẽ giúp bạn khai thác tool đó hiệu quả hơn nhiều. Và nếu bạn đang build internal tools cho team, wrap chúng trong một MCP server là khoản đầu tư rất đáng giá.

Bước tiếp theo thực tế nhất: thử cài Filesystem hoặc Brave Search MCP server và dùng thử 30 phút. Sau đó đọc thêm về cách quản lý MCP servers trong Claude Code để biết các tips nâng cao hơn về organization và performance. Xem thêm: Roadmap Claude Code từ zero đến power user.

Tài nguyên chính thức:
– Spec và docs: modelcontextprotocol.io
– GitHub organization: github.com/modelcontextprotocol
– Reference servers: github.com/modelcontextprotocol/servers

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *