Claude

MCP là gì? Cách kết nối Claude với công cụ ngoài qua Model Context Protocol (2026)

H Hoàng Trọng Thuật 21 phút đọc

MCP (Model Context Protocol) là một chuẩn mở do Anthropic phát hành mã nguồn ngày 25/11/2024, cho phép các ứng dụng AI như Claude kết nối tới dữ liệu và công cụ bên ngoài theo một cách thống nhất. Thay vì viết riêng một tích hợp cho từng nguồn, bạn cài một MCP server và Claude tự động thấy được các công cụ mà server đó cung cấp.

Tóm tắt nhanh

  • MCP do Anthropic mở mã nguồn ngày 25/11/2024, kèm spec, SDK và bộ server tham chiếu cho Google Drive, Slack, GitHub, Git, Postgres, Puppeteer.
  • Kiến trúc gồm ba vai: MCP Host (ứng dụng AI, ví dụ Claude Code hoặc Claude Desktop), MCP Client (mỗi server một client riêng) và MCP Server (chương trình cung cấp ngữ cảnh).
  • Server phơi ra ba nguyên thể: Tools (model quyết định gọi), Resources (ứng dụng quyết định nạp), Prompts (người dùng chủ động chọn).
  • Hai kiểu vận chuyển: stdio cho server chạy máy bạn, Streamable HTTP cho server từ xa — HTTP hỗ trợ bearer token, API key và OAuth.
  • Trong Claude Code, một dòng lệnh claude mcp add là đủ để nối; cấu hình lưu ở ~/.claude.json hoặc .mcp.json theo phạm vi bạn chọn.
  • Bản spec hiện hành là 2026-07-28, trong đó Sampling và Logging đã bị đánh dấu deprecated — nếu đọc hướng dẫn cũ, hãy đối chiếu lại.

MCP là gì và giải quyết vấn đề gì?

MCP là giao thức mở chuẩn hóa cách một ứng dụng AI lấy ngữ cảnh và gọi công cụ bên ngoài. Tài liệu chính thức của dự án ví MCP như “cổng USB-C cho ứng dụng AI”: một chuẩn cắm chung thay cho hàng chục sợi cáp riêng.

Vấn đề gốc mà Anthropic nêu khi công bố là các model bị nhốt sau silo dữ liệu — muốn cho AI đọc Google Drive, truy vấn Postgres, đọc issue GitHub thì mỗi nguồn phải có một tích hợp riêng, viết lại từ đầu cho từng ứng dụng. MCP đổi bài toán N×M đó thành N+M: nhà cung cấp dữ liệu viết một server, ứng dụng AI viết một client, hai bên gặp nhau ở giữa.

Điểm mình thấy quan trọng nhất với người làm nội dung và vận hành ở Việt Nam: MCP không phải một tính năng riêng của Claude. Cùng một MCP server chạy được với Claude Code, Claude Desktop, VS Code, Cursor và nhiều client khác. Công sức bạn bỏ ra để dựng một server nối vào WordPress hay Google Sheets của mình không bị khóa vào một hãng.

Nếu bạn muốn hiểu khái niệm MCP ở mức tổng quát, không gắn với Claude, mình đã viết riêng bài MCP là gì? Cách nối AI với công cụ thật của bạn. Bài bạn đang đọc đi sâu vào phần cấu hình thật trong hệ Claude.

Vì sao MCP quan trọng với người dùng Claude?

Vì nó quyết định Claude “với tới” được những gì. Một phiên chat thuần túy chỉ biết những gì bạn dán vào; một phiên có MCP biết đọc cơ sở dữ liệu, tra issue, gọi API nội bộ của bạn.

Sau khi công bố, MCP được các nhóm phát triển lớn tiếp nhận nhanh: thông cáo của Anthropic nêu Block và Apollo là những đơn vị áp dụng sớm, cùng nhóm công cụ lập trình gồm Zed, Replit, Codeium và Sourcegraph. Đến bản spec 2026-07-28, giao thức đã có đủ cơ chế cho môi trường doanh nghiệp: xác thực OAuth, phát hiện năng lực qua server/discover, phân trang, và cả gợi ý cache theo ttlMs.

Một chi tiết ít người để ý nhưng ảnh hưởng trực tiếp tới chi phí: MCP là giao thức stateless. Mỗi request mang theo phiên bản giao thức và năng lực client trong trường _meta, server không suy đoán gì từ request trước. Điều này giúp server dễ scale, nhưng cũng có nghĩa danh sách tool được nạp lại và chiếm token trong ngữ cảnh của bạn. Nối 10 server cùng lúc là cách nhanh nhất để đốt cửa sổ ngữ cảnh trước khi làm được việc gì.

MCP hoạt động thế nào ở bên dưới?

MCP chia làm hai lớp: lớp dữ liệu (data layer) định nghĩa giao thức trao đổi dựa trên JSON-RPC 2.0, và lớp vận chuyển (transport layer) lo kênh liên lạc và xác thực.

Về vai trò, host là ứng dụng AI điều phối; mỗi khi host nối tới một server, nó tạo một client riêng giữ kết nối chuyên biệt với server đó. Server chạy stdio thường phục vụ một client duy nhất trên cùng máy; server chạy Streamable HTTP thường phục vụ nhiều client từ xa.

Ba nguyên thể phía server là phần bạn dùng hằng ngày:

Nguyên thể Bản chất Ai quyết định dùng Phương thức giao thức
Tools Hàm thực thi hành động: ghi DB, gọi API, sửa file Model tools/list, tools/call
Resources Nguồn dữ liệu chỉ đọc, mỗi cái một URI riêng Ứng dụng resources/list, resources/read
Prompts Mẫu chỉ dẫn tái sử dụng, có tham số Người dùng prompts/list, prompts/get

Phía client cũng có nguyên thể riêng. Ở spec 2026-07-28, cái còn hiệu lực là Elicitation — cho phép server hỏi ngược người dùng để lấy thêm thông tin hoặc xin xác nhận trước khi làm việc gì đó, qua phương thức elicitation/create. Hai thứ từng phổ biến trong tài liệu cũ là SamplingLogging đã bị deprecated ở phiên bản này; hướng dẫn mới khuyên tích hợp thẳng với API của nhà cung cấp model, còn log thì ghi ra stderr hoặc dùng OpenTelemetry.

Thông báo thay đổi (notification) hoạt động theo cơ chế opt-in: client mở một luồng dài bằng subscriptions/listen và nêu rõ loại thông báo muốn nhận, server chỉ gửi những loại đã đồng ý. Tài liệu cũng nói thẳng đây là cơ chế “best effort” — có thể mất thông báo khi transport kết nối lại, nên client vẫn nên poll để giữ dữ liệu tươi.

Cài MCP server đầu tiên trong Claude Code như thế nào?

Cách nhanh nhất là dùng lệnh claude mcp add. Dưới đây là quy trình sáu bước mình khuyên bạn theo đúng thứ tự.

  1. Chọn kiểu vận chuyển. Server từ xa dùng --transport http (khuyến nghị); server chạy trên máy bạn dùng --transport stdio. Kiểu sse đã bị đánh dấu deprecated, đừng chọn cho dự án mới.
  2. Chọn phạm vi lưu cấu hình. local (mặc định) lưu vào ~/.claude.json riêng cho từng dự án; project tạo file .mcp.json ở gốc repo để commit và chia sẻ cả nhóm; user lưu ở cấp máy, dùng được ở mọi dự án.
  3. Chạy lệnh thêm server. Với server HTTP: claude mcp add --transport http notion https://mcp.notion.com/mcp. Với server chạy cục bộ, nhớ dấu -- để tách tham số của Claude khỏi lệnh của server: claude mcp add --transport stdio myserver -- python server.py --port 8080.
  4. Xác thực nếu server yêu cầu./mcp trong phiên Claude Code rồi làm theo luồng đăng nhập trên trình duyệt, hoặc dùng claude mcp login <tên-server> ở terminal. Muốn gỡ thông tin đăng nhập thì claude mcp logout <tên-server>.
  5. Kiểm tra. claude mcp list liệt kê toàn bộ server đã cấu hình, claude mcp get <tên> xem chi tiết một server, còn /mcp trong phiên cho biết server đang sống hay chết và có những tool nào.
  6. Dọn thứ không dùng. claude mcp remove <tên>. Bước này quan trọng hơn vẻ ngoài của nó, vì mỗi server còn nối là một mớ định nghĩa tool nằm thường trực trong ngữ cảnh.

Nếu bạn đã cấu hình sẵn server trong Claude Desktop, không cần làm lại từ đầu: claude mcp add-from-claude-desktop nhập thẳng cấu hình đó sang. Chiều ngược lại cũng có — claude mcp serve biến chính Claude Code thành một MCP server để ứng dụng khác gọi vào.

File .mcp.json sinh ra có dạng đơn giản, gồm khóa mcpServers với từng server khai báo type, url (hoặc commandargs), kèm env, headerstimeout nếu cần. Điểm hay cho việc chia sẻ trong nhóm là file này hỗ trợ biến môi trường theo cú pháp ${API_KEY}${API_BASE_URL:-https://api.example.com} — tức là commit được cấu hình mà không commit khóa bí mật.

Có những MCP server nào đáng cài cho creator và SME?

Câu trả lời thực dụng: chỉ cài thứ bạn đụng tới hằng tuần. Bộ server tham chiếu mà Anthropic phát hành cùng ngày công bố đã phủ phần lớn nhu cầu phổ thông — Google Drive, Slack, GitHub, Git, Postgres và Puppeteer.

Nhu cầu công việc Loại server nên nối Kiểu vận chuyển hợp lý
Đọc và soạn tài liệu, brief nội dung Server tài liệu (Google Drive, Notion) HTTP từ xa, xác thực OAuth
Truy vấn số liệu bán hàng, tồn kho Server cơ sở dữ liệu (Postgres, MySQL) stdio chạy cục bộ, tài khoản chỉ đọc
Theo dõi issue, review code Server GitHub hoặc Git HTTP với token cá nhân
Lấy nội dung trang web, chụp màn hình Server trình duyệt (Puppeteer) stdio cục bộ
Trao đổi nội bộ, thông báo Server chat (Slack) HTTP từ xa

Với người Việt làm nội dung, mình xếp thứ tự ưu tiên khác một chút so với hướng dẫn nước ngoài. Thứ nhất là server cơ sở dữ liệu chỉ đọc — nối vào bảng đơn hàng hoặc bảng nội dung, dùng tài khoản readonly, đây là thứ đổi cách làm việc nhiều nhất mà rủi ro thấp nhất. Thứ hai là server tài liệu, vì phần lớn brief và guideline của team đang nằm ở Drive hoặc Notion. Server trình duyệt mình để cuối, vì nó kéo nội dung web lạ vào phiên làm việc — đúng bề mặt tấn công mà mục bảo mật bên dưới cảnh báo.

Kết hợp MCP với Skills và Cowork ra sao?

Ba thứ này giải quyết ba việc khác nhau, và hiểu đúng ranh giới sẽ tiết kiệm cho bạn rất nhiều thời gian cấu hình.

MCP trả lời câu hỏi “Claude với tới được dữ liệu và công cụ nào”. Claude Skills trả lời câu hỏi “Claude làm việc đó theo quy trình nào của bạn” — nó là tri thức và quy trình, nạp theo nhu cầu. Còn Claude Cowork là nơi bạn giao hẳn một đầu việc nhiều bước cho Claude chạy.

Ghép lại thì một quy trình hoàn chỉnh trông như thế này: Skill quy định cấu trúc bài viết và bộ tiêu chí kiểm tra, MCP cấp quyền đọc kho tài liệu và ghi vào hệ thống đích, Cowork là nơi bạn bấm chạy. Thiếu MCP thì Claude làm đúng quy trình nhưng không chạm được dữ liệu thật; thiếu Skill thì Claude chạm được dữ liệu nhưng làm mỗi lần một kiểu.

Về phía tự động hóa không cần ngồi trước máy, MCP hay được ghép với n8n để chạy theo lịch. Nếu bạn đang dựng pipeline dạng đó, bài tự động hóa quy trình no-coden8n là gì là nền tảng nên đọc trước.

Bảo mật và giới hạn cần biết trước khi nối server

Đây là phần mình muốn bạn đọc kỹ nhất. Tài liệu bảo mật của Claude Code nói rõ: hãy xác minh bạn tin tưởng từng server trước khi nối, vì server nào kéo nội dung từ bên ngoài về đều mở ra rủi ro prompt injection — tức nội dung lạ chứa chỉ thị giả mạo hòng lái AI làm việc bạn không yêu cầu.

Vài điểm cụ thể đáng ghi nhớ:

  • Anthropic không kiểm định bảo mật MCP server. Tài liệu ghi rõ họ rà connector theo tiêu chí niêm yết trước khi đưa vào thư mục, nhưng không audit bảo mật hay quản lý bất kỳ MCP server nào. Trách nhiệm chọn server thuộc về bạn.
  • Hộp thoại tin cậy không phải lúc nào cũng bật. Server khai báo trong .mcp.json của dự án cần bạn duyệt tin cậy ở lần dùng đầu, nhưng khi chạy không tương tác bằng cờ -p hoặc qua SDK thì cấu hình được nạp mà không hỏi. Với script chạy tự động, hãy cân nhắc --strict-mcp-config để chỉ nạp đúng server bạn truyền vào.
  • Đặt server ở phạm vi hẹp nhất có thể và cấp tài khoản quyền tối thiểu. Một server truy vấn dữ liệu nên dùng tài khoản chỉ đọc, không dùng tài khoản có quyền ghi.
  • Giới hạn kỹ thuật cũng cần biết: đầu ra của công cụ MCP mặc định giới hạn 25.000 token và cảnh báo từ mốc 10.000 token, chỉnh được qua biến MAX_MCP_OUTPUT_TOKENS. Timeout đặt riêng từng server trong .mcp.json (tối thiểu 1000 mili giây) hoặc đặt chung bằng MCP_TIMEOUT. Công cụ chạy lâu sẽ tự chuyển nền sau khoảng hai phút theo mặc định.

Nguyên tắc thực dụng mình áp dụng: server nào có quyền ghi thì đọc kỹ mã nguồn hoặc chỉ dùng của nhà cung cấp mình đã tin; server nào chỉ đọc thì thoải mái hơn nhưng vẫn tách tài khoản riêng. Và tuyệt đối không nối một server lạ rồi bật chế độ chạy tự động không giám sát ngay trong lần đầu.

Câu hỏi thường gặp

MCP có phải công nghệ riêng của Anthropic không?
Không. Anthropic khởi xướng và mở mã nguồn từ 25/11/2024, nhưng đây là chuẩn mở, hiện được nhiều client hỗ trợ như Claude, ChatGPT, Visual Studio Code và Cursor. Server bạn viết một lần dùng được ở nhiều nơi.

Cài MCP có cần biết lập trình không?
Không bắt buộc. Nối một server có sẵn chỉ là một dòng claude mcp add rồi đăng nhập. Biết code chỉ cần thiết khi bạn muốn tự viết server cho hệ thống nội bộ của mình.

Nên chọn stdio hay HTTP?
Chọn stdio khi server chạy trên chính máy bạn và cần chạm vào file hoặc cơ sở dữ liệu cục bộ — không có độ trễ mạng. Chọn Streamable HTTP khi server do nhà cung cấp vận hành hoặc cần dùng chung cho nhiều người, vì kiểu này hỗ trợ xác thực chuẩn HTTP và OAuth.

Nối nhiều server cùng lúc có sao không?
Có, và cái giá là ngữ cảnh. Danh sách tool của mọi server đang nối đều nằm trong ngữ cảnh phiên làm việc, ăn token trước khi bạn gõ chữ nào. Mình khuyên giữ 2-3 server cho mỗi loại công việc, dùng phạm vi local theo dự án thay vì bật tất cả ở phạm vi user.

Sampling trong MCP còn dùng được không?
Sampling và Logging đã bị đánh dấu deprecated từ phiên bản giao thức 2026-07-28. Nếu bạn đọc hướng dẫn viết trước mốc đó, phần này có thể đã lỗi thời — hãy đối chiếu lại với spec hiện hành trước khi triển khai.

MCP server có tự động cập nhật danh sách tool không?
Có, nhưng theo cơ chế đăng ký. Client phải mở luồng subscriptions/listen và nêu loại thông báo muốn nhận; server chỉ gửi thông báo cho những client đã đăng ký và chỉ khi server khai báo hỗ trợ. Cơ chế này là best effort nên client vẫn cần poll định kỳ.

Làm sao chia sẻ cấu hình MCP cho cả nhóm?
Dùng phạm vi project: cấu hình ghi vào .mcp.json ở gốc repo và commit lên git. Khóa bí mật thì để ở biến môi trường và tham chiếu bằng cú pháp ${API_KEY} trong file, tránh commit thẳng token.

Kết luận

MCP là mảnh ghép biến Claude từ một trợ lý chỉ biết những gì bạn dán vào thành một trợ lý chạm được hệ thống thật của bạn. Cấu hình không khó — phần khó là kỷ luật: chỉ nối thứ cần, cấp quyền tối thiểu, và kiểm tra nguồn gốc server trước khi tin.

Bước tiếp theo hợp lý: đọc bài trụ Claude Code là gì? Hướng dẫn cài đặt và dùng từ A–Z để nắm toàn bộ hệ công cụ, rồi quay lại nối MCP server đầu tiên cho đúng một đầu việc bạn làm mỗi tuần. Làm xong một cái chạy ổn rồi hãy nối cái thứ hai.

Nguồn tham khảo

H

Hoàng Trọng Thuật

Nhà sáng tạo nội dung về AI, YouTube Automation và Affiliate Marketing. Chia sẻ kiến thức thực chiến từ kinh nghiệm vận hành thật.