MCP (Model Context Protocol) - Nó giống như một chiến binh thực thụ âm thầm và lặng lẽ...

Nội dung bài viết

Video học lập trình mỗi ngày

Hai video nói về idempotency key bạn đã xem nó chưa - Một bước tiến nhảy vọt khi Stripe Payment sử dụng. Lợi dụng tính ACID của SQLconcurrency = 10 trong consumer kafka đã có thể xử lý được hàng triệu payment request mà không bị trùng lặp (duplicated)...

01- Cách triển khai Idempotency đơn giản và hiệu quả của Stripe's API. Tôi sẽ show và áp dụng thế này

02 - Sự khác biệt đơn giản đó là INSERT IGNORE của Stripe API

MCP là gì — giải thích theo cách tôi hiểu

Hêy da... Hơn 40 roài mà AI nó cứ vởn xung quanh, tiếng ồn ngày càng rõ rệt, nhưng thưa dần. Điều đó cũng dễ hiểu, yêu nhanh thì nhanh chán vậy thôi. Tôi kể cho anh em nghe chuyện này.

Công nghệ giống như thức ăn vậy, mỗi ngày một món, rất đa dạng. Ai thích ăn món nào thì bàn luận món đó. Cũng không ngoại lệ đó là công nghệ rất nhanh đi ngoại trừ tư duy. Nay Cursor update version loại bỏ một số tính năng, mai OpenAI tích hợp một số gia vị... Mới học hôm nay, tuần sau loại bỏ. Việc chạy theo cảm xúc của mấy "thằng" này mất thời gian quá...

Ví dụ, vừa rồi thấy ông bạn triển khai MCP hay quá... Kiểu sử dụng Claude Desktop hay một IDE nào đó mà có thể query MySQL từ đó mới đã. Đó mới là thứ cần học. Thế là mình đi tìm hiểu... Chuyện hay tiếp thế này.

Thế éo nào mà tìm mấy blog + youtube đọc và xem. Video thì chuyển cảnh chuyên nghiệp, blog thì viết tô đậm, nghiêng quá bro. Thế mà 3, 4 bài, 2, 3 cái video vẫn chưa hiểu cái kiến trúc MCP hoạt động sao... Éo xem nữa. Đọc trang chính thống. Cũng may thói quen đọc vẫn còn kakaaka..

Nay tôi giải thích lại theo cách hiểu của tôi, nếu anh em cùng hoàn cảnh như tôi thì đọc thử xem có clear hơn không.

Nó giống như việc, khi sử dụng IDEA thì mình chỉ làm việc basic trên đó, ví dụ như hỏi cách select, procedure... xong thì copy đó vào tool MYSQL rồi run. Có MCP rồi thì nó tự làm trên đó luôn vì mình đã config cho phép nó truy cập vào. Kể ra hay phết...


Kiến trúc MCP — nhìn vào diagram này

MCP nó là kiến trúc client-server. Nghe xong là mắt díp lại rồi đúng không. Thôi bỏ đó. Tôi dùng cái ví dụ thực tế hơn.

Giống như mày đi ăn quán bún bò vậy. Anh em ở đây xem như "mày" hết nhé. Miền trung quê mình có vậy khà khà....

Mày bước vào quán — quán đó chính là MCP Host. Là Claude Desktop, là VS Code, là cái IDE mày đang dùng. Nó là nơi mày tương tác, nơi mọi chuyện bắt đầu.

Trong quán có một thằng chạy bàn. Mày gọi món, nó ghi xuống rồi chạy vô bếp truyền đạt. Chính xác hơn: nó chỉ phụ trách đúng một bếp, không chạy lăng quăng. Đó là MCP Client — nằm bên trong Host, giữ kết nối 1 chọi 1 với bếp. Muốn kết nối 3 bếp thì cần 3 thằng chạy bàn khác nhau.

Bếp là MCP Server. Bếp không biết mày là ai, không cần biết. Bếp chỉ nhận order từ thằng chạy bàn rồi làm việc. Bếp cung cấp cho mày 3 thứ:

  • Tools — hành động: nấu món này, query cái kia, gọi API nọ
  • Resources — nguyên liệu: dữ liệu, file, schema để LLM đọc
  • Prompts — công thức sẵn: template để làm nhanh, không cần gõ lại từ đầu

Nguyên liệu trong tủ lạnh của bếp chính là Local Resources — file trên máy, database MySQL ngay đó. Còn khi bếp cần gọi nhà cung cấp bên ngoài — gọi API, lấy data từ internet — đó là Remote Resources.

Đời thực — quán bún bò:

Quán bún bò (nơi mày ngồi)
  └── Chạy bàn A ──[gọi món]──► Bếp A ──► Tủ lạnh A (rau, giá, hành sẵn trong bếp)
  └── Chạy bàn B ──[gọi món]──► Bếp B ──► Tủ lạnh B (thịt bò, xương hầm sẵn)
  └── Chạy bàn C ──[gọi món]──► Bếp C ──► Gọi nhà cung cấp ngoài chợ (hàng không có sẵn)

Kỹ thuật — MCP:

Host (Claude Desktop / IDE)
  └── MCP Client ──[MCP Protocol]──► MCP Server A ──► Local Data Source A
  └── MCP Client ──[MCP Protocol]──► MCP Server B ──► Local Data Source B
  └── MCP Client ──[MCP Protocol]──► MCP Server C ──► Web APIs / Internet
Quán bún bòMCP
Quán (nơi mày ngồi gọi món)Host — Claude Desktop, VS Code
Chạy bàn (1 đứa/1 bếp)MCP Client — 1 client/1 server
BếpMCP Server
Tủ lạnh trong bếpLocal Resources — file, DB local
Nhà cung cấp ngoài chợRemote Resources — API, Internet

Vậy thôi. Cái diagram nhìn rối vì nó vẽ đủ mọi mũi tên, nhưng bản chất chỉ là:

mày → quán → chạy bàn → bếp → nguyên liệu


Tại sao MCP lại hay?

Cái hay của MCP là nó chuẩn hóa cái "chạy bàn và bếp" đó.

Hôm nay bếp của mày là MySQL, mai đổi sang PostgreSQL hay Notion hay GitHub — cái quán không cần biết, thằng chạy bàn không cần đổi. Chỉ cần bếp mới nói cùng ngôn ngữ MCP là xong.

Đó là lý do ông bạn tôi xài Claude Desktop query MySQL được mà nhìn nó đã vậy. Không phải magic. Là architecture.

Học cái tư duy đó, còn tool nào xài cũng được.


Dùng MCP khi nào thì phát huy — khi nào thì thôi

Nói thật luôn, không vòng vo.

Nên dùng khi:

  • Mày muốn LLM (Claude, hay bất kỳ AI nào hỗ trợ) truy cập được data thực tế của mày — database, file hệ thống, API nội bộ — mà không cần copy-paste thủ công
  • Mày build tool cho team, muốn chuẩn hóa cách AI tương tác với hệ thống, mai mốt đổi AI khác cũng không cần viết lại
  • Workflow của mày lặp đi lặp lại: hỏi AI → AI cần xem data → mày lại mở file lên copy → dán vào chat. Cái vòng lặp đó mệt thì MCP giải quyết được

Không cần đụng tới khi:

  • Mày chỉ chat với AI bình thường, hỏi đáp, giải thích code — không cần MCP, dư thừa
  • Project nhỏ, một mình làm, data đơn giản — setup MCP Server tốn công hơn lợi ích nó mang lại
  • Mày đang học AI, chưa rõ mình cần gì — đừng vội, hiểu vấn đề trước rồi tính

Lời khuyên thật — không phải để nghe cho vui

Tôi thấy nhiều anh em đọc bài, xem video xong hào hứng lắm. Setup MCP ngay tối hôm đó. Hôm sau khoe. Tuần sau quên.

Không phải vì MCP không hay. Mà vì chưa có bài toán thực sự cần nó.

Công nghệ không tự tạo ra nhu cầu. Nhu cầu có trước, rồi mới tìm công nghệ phù hợp. Làm ngược lại thì mày đang giải bài toán không tồn tại — tốn thời gian mà không ra sản phẩm, không ra kinh nghiệm.

Bài này tôi viết để anh em hiểu MCP là gì, hoạt động ra sao. Hiểu xong thì cất vào đầu. Khi nào gặp bài toán phù hợp — tự nhiên mày sẽ nhớ ra và lôi nó ra dùng đúng lúc.

Còn nếu đọc xong chỉ để biết — vậy cũng được. Biết mà không làm càn còn hơn làm mà không hiểu.

Chúc anh em một ngày vui vẻ...

Có thể bạn đã bị missing