Sat Jun 27 2026 20:00:00 GMT-0400 (Eastern Daylight Time)
Giao thức Ngữ cảnh Mô hình (MCP): Cách Nó Kết Nối AI với Công Cụ của Bạn
MCP là tiêu chuẩn mở của Anthropic để kết nối các trợ lý AI với nguồn dữ liệu và công cụ. Tìm hiểu về mô hình client-server, vận chuyển (transport), khả năng (capabilities) và cách triển khai máy chủ.

Cập nhật lần cuối: June 28, 2026
MCP — viết tắt của Model Context Protocol — là một tiêu chuẩn mở do Anthropic phát hành vào cuối năm 2024 để kết nối các AI assistants và agents với các nguồn dữ liệu và công cụ bên ngoài. Thay vì phải viết một tích hợp tùy chỉnh cho mọi model và mọi công cụ, bạn chỉ cần phơi bày một server MCP và bất kỳ client nào tương thích MCP đều có thể sử dụng nó. Tuần trước tôi đã kết nối một filesystem server và một GitHub server với Claude Code và sự khác biệt về những gì agent thực sự có thể làm là tức thì. Bài viết này sẽ đề cập đến MCP là gì, cách mô hình client-server hoạt động, các loại khả năng cốt lõi, và cách chạy các server trong thiết lập của riêng bạn.
Trả lời nhanh: MCP là gì?
MCP là một giao thức dựa trên JSON-RPC 2.0 tiêu chuẩn hóa kết nối giữa một ứng dụng host AI (client MCP, như Claude Desktop hoặc Claude Code) và các server bên ngoài phơi bày dữ liệu và hành động. Một server MCP duy nhất có thể quảng cáo ba loại khả năng cho client:
- Tools — các hàm mà model có thể gọi (truy vấn cơ sở dữ liệu, gửi tin nhắn, tìm kiếm repo).
- Resources — dữ liệu có cấu trúc mà model có thể đọc (nội dung file, phản hồi API, bản ghi).
- Prompts — các mẫu prompt tái sử dụng, được tham số hóa mà người dùng có thể kích hoạt.
Mục tiêu là tạo ra một "USB-C cho các tích hợp AI": một server, nhiều client, không cần các lớp kết nối riêng biệt theo từng model. Spec và SDK là mã nguồn mở và được duy trì tại modelcontextprotocol trên GitHub, với tài liệu chuẩn tại modelcontextprotocol.io.
Tại sao MCP tồn tại?
Trước khi có MCP, mọi tích hợp công cụ đều là các giải pháp riêng lẻ (one-off). Nếu bạn muốn một assistant đọc các issue của GitHub và cũng truy vấn Postgres, bạn phải viết hai connector tùy chỉnh, sau đó viết lại chúng khi bạn chuyển đổi model hoặc host. Động lực được Anthropic nêu ra là chấm dứt sự trùng lặp này bằng một giao thức chung — tài liệu chính thức mô tả nó là mang lại cho các model "quyền truy cập tiêu chuẩn hóa" vào các file cục bộ, cơ sở dữ liệu và API.
Khía cạnh này rất quan trọng đối với quy trình làm việc agentic (agent). Một agent chỉ có thể trò chuyện thì đó là một chatbot; còn một agent có thể đọc repo của bạn, chạy một query, và gọi công cụ trong một vòng lặp thì đó mới là một worker thực thụ. MCP chính là hệ thống ống dẫn giúp thứ hai trở nên di động. Nếu bạn muốn cái nhìn tổng quan hơn về vị trí này trong thiết kế agent, hãy xem bài viết của chúng tôi về tự động hóa AI agent.
Mô hình client-server hoạt động như thế nào?
MCP tuân theo cấu trúc host-client-server:
- Host — ứng dụng mà người dùng chạy (Claude Desktop, Claude Code, một extension IDE).
- Client — tồn tại bên trong host, duy trì phiên 1:1 với một server.
- Server — một process phơi bày các khả năng qua một transport.
Một host có thể chạy nhiều client, mỗi client nói chuyện với một server. Giao thức là JSON-RPC 2.0, và tôi kiểm tra ba giai đoạn vòng đời sau mỗi khi thêm một server mới:
- Initialize — client gửi phiên bản giao thức, khả năng, thông tin client; server phản hồi bằng thông tin của nó.
- Capability negotiation — cả hai bên khai báo những gì họ hỗ trợ (tools, resources, prompts, sampling, roots).
- Operation — client yêu cầu danh sách công cụ, gọi các công cụ, đọc tài nguyên, và server stream kết quả trở lại.
Các tùy chọn Transport
| Transport | Nơi chạy | Khi tôi sử dụng nó |
|---|---|---|
| stdio | Subprocess cục bộ, giao tiếp qua stdin/stdout | Công cụ phát triển cục bộ, filesystem, git — bất cứ thứ gì trên máy của tôi |
| Streamable HTTP | Server từ xa qua HTTPS với streaming SSE tùy chọn | Các server nhóm dùng chung, tích hợp lưu trữ đám mây |
| SSE (legacy) | Từ xa, server-sent events | Các server cũ đang được loại bỏ; tránh sử dụng cho các bản build mới |
stdio là mặc định cho thiết lập cục bộ và là thứ mà claude mcp add sử dụng trừ khi bạn truyền một URL HTTP. Để tìm hiểu sâu hơn về claude mcp add và quyết định stdio-vs-HTTP, hãy xem hướng dẫn tích hợp MCP Claude Code của chúng tôi.

Ba loại khả năng là gì, trong thực tế?
Phần lớn giá trị của MCP nằm ở ba loại khả năng này. Đây là cách mỗi loại hoạt động khi model sử dụng nó.
Tools (do model gọi)
Tools là bộ công cụ chính. Model quyết định gọi chúng dựa trên cuộc trò chuyện. Tôi đã chạy một server phơi bày tool search_logs và model tự động gọi nó ngay khi tôi hỏi "tại sao deploy thất bại lúc 2 giờ sáng?". Định nghĩa Tool bao gồm JSON Schema cho các đối số, vì vậy model nhận được đầu vào có kiểu dữ liệu và đã được xác thực.
Resources (do ứng dụng kiểm soát)
Resources được định địa chỉ bằng URI và thường là được người dùng chọn, chứ không phải do model chọn — người dùng đính kèm một resource như file hoặc bản ghi, và host sẽ tiêm nó vào context. Điều này quan trọng đối với việc kiểm soát phạm vi: model chỉ có thể thấy những gì bạn chủ động cung cấp cho nó.
Prompts (do người dùng kích hoạt)
Prompts là các mẫu có đối số hiển thị trong giao diện UI của host dưới dạng slash-commands hoặc mục menu. Đây là khả năng ít được sử dụng nhất — tôi sử dụng chúng để mã hóa "xem lại PR này theo style guide của chúng ta" để tôi không phải dán cùng một hướng dẫn mỗi lần.
Làm thế nào để thiết lập một server MCP?
Thiết lập cụ thể, sử dụng Claude Code làm host. Cấu hình server tương tự hoạt động trong file JSON của Claude Desktop.
- Cài đặt Node.js 20+ (hoặc Python 3.10+ với
uv). - Thêm một reference server, ví dụ: filesystem server:
npx -y @modelcontextprotocol/server-filesystem /Users/you/projects - Đăng ký nó trong Claude Code:
claude mcp add filesystem -- npx -y @modelcontextprotocol/server-filesystem /Users/you/projects - Xác minh kết nối:
claude mcp listsau đó làclaude mcp get filesystem - Khởi động lại host và tìm các tools của server trong phiên làm việc.
Đó là toàn bộ vòng lặp. Các reference servers trong org GitHub bao gồm filesystem, Git, GitHub, Postgres, SQLite, Slack, Google Drive, Puppeteer, và nhiều hơn nữa.
Một server tùy chỉnh tối thiểu (Python)
from mcp.server.fastmcp import FastMCP
mcp = FastMCP("status")
@mcp.tool()
def healthcheck(service: str) -> str:
"""Return the current status of a service."""
return f"{service}: ok"
if __name__ == "__main__":
mcp.run(transport="stdio")
Tôi đã thử nghiệm cái này với một endpoint staging trong khoảng mười phút, bao gồm cả việc kết nối nó vào Claude Code. Đối với các mẫu rộng hơn về phơi bày các dịch vụ nội bộ dưới dạng API có thể gọi bằng agent, hướng dẫn phát triển API AI của chúng tôi đi sâu hơn về auth và rate-limiting.
Hệ sinh thái trông như thế nào vào năm 2026?
Hệ sinh thái đã hợp nhất xung quanh registry chính thức và một số server reference được duy trì tốt. Tôi giữ một danh sách ngắn gọn những cái mà tôi thực sự tin tưởng trong môi trường production:
- filesystem — đọc/ghi file cục bộ với các hạn chế root.
- github — issues, PRs, search, file operations.
- postgres / sqlite — mặc định chỉ đọc, tự kiểm tra schema.
- puppeteer / playwright — tự động hóa trình duyệt cho agents.
- slack — đọc kênh và gửi tin nhắn.
| Capability | Server được sử dụng nhiều nhất | Tư thế an toàn mặc định |
|---|---|---|
| File access | filesystem | Hạn chế ở các root rõ ràng |
| Code host | github | Chủ yếu là đọc; ghi yêu cầu cấu hình rõ ràng |
| Database | postgres | Chỉ đọc trừ khi bạn chọn bật quyền ghi |
| Browser | playwright | Hồ sơ sandbox (Sandboxed profile) |
| Messaging | slack | Token giới hạn theo kênh |
Để điều phối nhiều server đằng sau các subagents — một subagent sở hữu cơ sở dữ liệu, một subagent sở hữu trình duyệt — bài viết của chúng tôi về Claude Code subagents trình bày mẫu team pattern.
Bạn nên lưu ý điều gì?
Đây là phần mà hầu hết mọi người bỏ qua. Các server MCP chạy bằng credentials và quyền truy cập filesystem của bạn, vì vậy phạm vi (scope) rất quan trọng.
- Hãy coi mỗi server như một dependency. Ghim các phiên bản, kiểm tra nguồn trước khi chạy
npxtrên repo của người lạ. Một tool độc hại có thể rò rỉ bất cứ thứ gì mà model nhìn thấy. - Hạn chế root. Server filesystem chỉ an toàn bằng thư mục bạn trỏ nó tới — không bao giờ truyền
/. - Ưu tiên cấu hình database chỉ đọc cho đến khi bạn có lý do cụ thể để bật quyền ghi.
- Chú ý đến prompt injection. Nếu một tool trả về nội dung mà model sau đó hành động dựa trên, đầu vào không đáng tin cậy có thể trở thành hướng dẫn. Giả định bất kỳ resource nào cũng là độc hại (hostile).
- Phạm vi hóa token OAuth. Token Slack và GitHub nên là phạm vi tối thiểu mà server cần, chứ không phải token cá nhân của bạn.
Tôi bắt đầu mọi server mới trong một tài khoản sandbox và theo dõi vài lần gọi tool đầu tiên trước khi tin tưởng nó trong phiên làm việc thực tế.

Bài học chính
MCP là một giao thức nhỏ giải quyết một vấn đề thực tế: nó cho phép một server phơi bày tools, resources và prompts cho bất kỳ host AI tương thích nào, loại bỏ gánh nặng tích hợp N-times-M. Cơ chế rất đơn giản — khởi tạo, đàm phán, vận hành qua stdio hoặc HTTP — nhưng tư thế an toàn là phần quyết định nó có thuộc quy trình làm việc của bạn hay không. Hãy chạy các server mà bạn có thể kiểm toán (audit), giới hạn nghiêm ngặt credentials của chúng, và giả định đầu vào không đáng tin cậy là độc hại. Làm được điều đó thì MCP là cách sạch nhất để biến một assistant thành một agent thực sự có thể chạm vào hệ thống của bạn.

Credit hình ảnh
- Source code hiển thị trên màn hình giám sát — photo by Markus Spiske on Pexels
- Một nhà phát triển đang gõ trên laptop trong khi cấu hình server trong terminal — photo by Vlada Karpovich on Pexels
- Bố cục mạch điện trừu tượng tượng trưng cho kiến trúc phân lớp — photo by Christina Morillo on Pexels
Sử dụng các công cụ miễn phí trong khi bạn theo dõi hướng dẫn.
Đọc tiếp

Wed Mar 25 2026 20:00:00 GMT-0400 (Eastern Daylight Time)
Công cụ Thay đổi Kích thước Ảnh Hàng loạt: Giảm kích thước hàng trăm ảnh cùng lúc (Miễn phí)
Giảm kích thước hàng trăm ảnh theo lô miễn phí bằng công cụ trình duyệt, ImageMagick, XnConvert hoặc script Python. Tận hưởng tiết kiệm dung lượng thực tế và quy trình xử lý hàng loạt an toàn.

Wed Mar 18 2026 20:00:00 GMT-0400 (Eastern Daylight Time)
Bộ Chuyển Đổi WebP: Hướng Dẫn Chuyển Ảnh Sang WebP (Kích Thước Thực)
Chuyển đổi ảnh JPEG và PNG sang định dạng WebP để tối ưu hóa kích thước tệp web. Bài viết bao gồm các kích thước đo thực tế, lệnh cwebp, phương pháp sử dụng Python/trình duyệt, cùng chiến lược dự phòng (fallback) cho JPEG/PNG.

Wed Mar 11 2026 20:00:00 GMT-0400 (Eastern Daylight Time)
Real-ESRGAN AI Upscaling: Cách thức hoạt động và khi nào nên sử dụng nó
Bài viết này giải thích Real-ESRGAN là gì, cách thức hoạt động của super-resolution dựa trên GAN, những điểm mạnh (như upscaling 4x ảnh và tác phẩm nghệ thuật), cũng như các giới hạn khi nó thất bại, kèm theo lệnh sử dụng chi tiết.