- MCP là giao diện tiêu chuẩn dựa trên trừu tượng hóa API cho phép LLM yêu cầu thực hiện tác vụ mà không cần biết cấu trúc bên trong của công cụ, đồng thời hỗ trợ sử dụng từ xa và cập nhật tự động
- Thông qua kiến trúc Zero-Install, xác thực OAuth và bảo mật sandbox, nó giảm gánh nặng cài đặt và vấn đề quyền hạn, đồng thời cung cấp cùng một môi trường trên mọi nền tảng
- Trong khi đó, Skills gây ra nhiều ma sát trong môi trường thực thi thực tế do phụ thuộc vào cài đặt CLI, độ phức tạp của xác thực và triển khai, cũng như các vấn đề tương thích theo từng nền tảng
- Cần phân biệt Skills là lớp tri thức, còn MCP là lớp kết nối; khi LLM tương tác với hệ thống bên ngoài thì nên dùng MCP, còn khi truyền đạt tri thức mang tính quy trình thì nên dùng Skills
- Các dịch vụ đường hầm đám mây như MCP Nest cho phép truy cập máy chủ MCP cục bộ từ xa, nên được xem là yếu tố cốt lõi để xây dựng môi trường tích hợp AI được chuẩn hóa
Ưu điểm của MCP
- Model Context Protocol (MCP) dựa trên cấu trúc trừu tượng hóa API, trong đó LLM có thể thực hiện tác vụ chỉ bằng cách gửi yêu cầu mà không cần hiểu cách công cụ hoạt động bên trong
- Ví dụ: khi LLM tương tác với DEVONthink, nó gọi
devonthink.do_x() và máy chủ MCP sẽ xử lý toàn bộ phần còn lại
- Có thể sử dụng từ xa theo kiểu Zero-Install, nên phía client chỉ cần chỉ định URL của máy chủ MCP là có thể hoạt động ngay mà không cần cài đặt thêm
- Hỗ trợ cập nhật tự động, vì vậy khi máy chủ MCP từ xa được cập nhật với công cụ hoặc tài nguyên mới, mọi client đều có thể dùng ngay phiên bản mới nhất
- Bảo mật được tăng cường với xác thực dựa trên OAuth, và người dùng không cần tự quản lý token
- Có tính di động cao, có thể truy cập qua cùng một máy chủ MCP trên bất kỳ môi trường nào như Mac, di động hay web
- Nhờ cấu trúc sandbox, nó hạn chế quyền thực thi trực tiếp trên môi trường cục bộ và chỉ phơi bày giao diện đã được kiểm soát
- Thông qua các tính năng tìm kiếm thông minh và cập nhật tự động, chỉ những công cụ cần thiết mới được tải, và ngay cả khi cài cục bộ thì cũng có thể tự động cập nhật khi chạy
Giới hạn và ma sát của Skills
- Skills hữu ích để dạy cho LLM kiến thức hoặc cách sử dụng cụ thể, nhưng khi thực hiện hành động thực tế thì sự phụ thuộc vào CLI trở thành vấn đề
- Phần lớn Skill yêu cầu cài đặt CLI riêng, trong khi các bản web của ChatGPT, Perplexity hay Claude lại không thể chạy CLI
- Điều này dẫn đến các vấn đề sau
- Độ phức tạp khi triển khai: phải phân phối và quản lý CLI dưới dạng binary, NPM,
uv, v.v.
- Vấn đề quản lý bí mật: token xác thực bị lưu dưới dạng văn bản thuần trong file
.env, hoặc phiên xác thực biến mất khi session bị khởi tạo lại
- Sự chia cắt hệ sinh thái: cách cài đặt và cập nhật Skill khác nhau theo từng nền tảng, gây ra vấn đề tương thích và lỗi phân tích YAML
- Lãng phí ngữ cảnh: dù LLM chỉ cần một lệnh gọi hàm duy nhất, nó vẫn phải tải toàn bộ
SKILL.md
- Những Skill có kèm chỉ dẫn kiểu “hãy cài CLI trước” chỉ làm tăng thêm độ phức tạp không cần thiết, và MCP từ xa là phương án thay thế hiệu quả hơn
Tiêu chí chọn công cụ phù hợp
- Khi nào dùng MCP: dùng như một giao diện tiêu chuẩn khi LLM cần kết nối với các hệ thống bên ngoài như website, dịch vụ hay ứng dụng
- Ví dụ: Google Calendar nên xử lý xác thực và thực thi qua MCP từ xa dựa trên OAuth, và không nên yêu cầu cài CLI
- Với Chrome, Hopper, Xcode, Notion, v.v., lý tưởng nhất là mỗi công cụ đều cung cấp endpoint MCP tích hợp sẵn để điều khiển chức năng tương ứng
- Khi nào dùng Skills: nên tập trung vào việc truyền đạt tri thức thuần túy và cung cấp ngữ cảnh
- Dùng để hướng dẫn cách sử dụng các công cụ đã được cài sẵn như
curl, git, gh, gcloud
- Chuẩn hóa thuật ngữ nội bộ, quy trình làm việc và văn phong trong tổ chức
- Chia sẻ tri thức mang tính quy trình như xử lý PDF hay quản lý bí mật (ví dụ cách dùng
fnox)
- Cần phân biệt rõ Skills là lớp tri thức, còn MCP là lớp kết nối
Connector và manual
- Để phân biệt rõ vai trò của Skills và MCP, có đề xuất gọi Skills là sổ tay cho LLM (LLM_MANUAL.md), còn MCP là connector
- Một số ví dụ đang được vận hành thực tế
- mcp-server-devonthink: máy chủ MCP cục bộ cho phép LLM điều khiển trực tiếp DEVONthink
- microfn: cung cấp MCP từ xa tại
mcp.microfn.dev
- Kikuyo: cung cấp MCP từ xa tại
mcp.kikuyo.dev
- MCP Nest: dịch vụ cho phép truy cập từ xa bằng cách tạo đường hầm đám mây cho máy chủ MCP cục bộ (
mcp.mcpnest.dev/mcp)
- Trong một số dự án, Skill dành cho CLI cũng được cung cấp kèm theo, nhưng Skill giải thích cách sử dụng MCP còn hữu ích hơn
- Skill hoạt động như lớp tri thức giải thích về tính năng của MCP, mối quan hệ giữa các công cụ và thời điểm sử dụng
- MCP đảm nhiệm việc kết nối và thực thi thực tế
- Sự kết hợp này giúp LLM tận dụng MCP hiệu quả mà không phải lặp đi lặp lại việc thử sai
Kết hợp MCP và Skill
- Những mẫu không trực quan được phát hiện khi dùng MCP, như lỗi định dạng ngày tháng hay giới hạn tìm kiếm, có thể được tổng hợp thành Skill để tái sử dụng
- Những Skill được tạo theo cách này đóng vai trò như cheat sheet cho MCP, giúp LLM hoạt động chính xác mà không lãng phí token không cần thiết
- Thông qua thư mục
.claude/skills, có thể duy trì hướng dẫn hành vi AI theo từng dự án và quản lý các quy trình dùng thường xuyên dưới dạng dotfiles
- Tương lai của tích hợp AI phụ thuộc vào các giao diện được chuẩn hóa (MCP), còn cách tiếp cận phân mảnh dựa trên CLI nên được tránh
- Có kỳ vọng rằng các dịch vụ lớn như Skyscanner, Booking.com, Trip.com, Agoda.com sẽ cung cấp MCP chính thức
Giới thiệu MCP Nest
- MCP Nest là dịch vụ cho phép các máy chủ MCP chỉ dùng cục bộ (Fastmail, Gmail, v.v.) có thể được truy cập từ xa thông qua đường hầm đám mây
- Có thể dùng giống nhau trên các client hỗ trợ MCP như Claude, ChatGPT, Perplexity
- Có thể duy trì cùng một môi trường MCP trên mọi thiết bị mà không cần phơi bày trực tiếp máy cục bộ
6 bình luận
Chỉ là hai thứ vốn hoàn toàn khác nhau, vậy mà sao những câu chuyện kiểu này cứ liên tục xuất hiện nhỉ
Vì cuối bài phải quảng bá MCP Nest mà.. haha. Có vẻ mấy lập luận mang tính so sánh đang được hưởng ứng khá mạnh.
Skills là kiếm thuật, còn MCP là thanh kiếm.. Mục đích sử dụng khác nhau và cả hai đều cần thiết.
Skills và MCP vốn đảm nhiệm những vai trò khác nhau, nhưng có vẻ chính vì những bài viết như thế này mà mọi người cứ tiếp tục bị nhầm lẫn.
Đã là một ngành AI hỗn loạn với đầy rẫy những kẻ truyền đạo giả danh rồi mà
Ý kiến Hacker News
Điều tôi muốn nhấn mạnh là nên tập trung vào thiết kế công cụ mà LLM cần để làm việc tối ưu, hơn là sở thích cá nhân
MCP lại còn làm tăng ma sát. Ví dụ, nếu làm với hệ thống nhúng thì hãy để LLM có thể trực tiếp debug, reset, chạy emulator, v.v. thông qua một giao diện giám sát dựa trên CLI, rồi tài liệu hóa cách dùng bằng file skill là đủ
Với tác vụ đơn giản thì MCP là không cần thiết. Ví dụ như git hay tính chi phí AWS thì LLM đã xử lý tốt rồi. Chỉ những hệ thống phức tạp mới đáng để tự làm công cụ và tài liệu hóa
Nếu chỉ dùng một lần thì CLI hay API là đủ, nhưng nếu cần truy cập liên tục thì máy chủ MCP sẽ hữu ích
Một MCP được tổ chức tốt có thể chỉ cho agent cách dùng mà không lãng phí prompt. Việc bắt chước truy cập liên tục bằng file skill là không hiệu quả. MCP là cách hiệu quả nhất để tích hợp công cụ bên ngoài vào phiên của agent
.mdhay skill, cần có một chuẩn để sắp xếp vào vị trí tối ưu thông qua vòng lặp tự phản tư tự độngNgay cả tính năng refactor của JetBrains cũng được thay bằng script nên thời gian mỗi phiên giảm từ 5 phút xuống còn 10 giây
Tôi vẫn chưa dùng MCP chút nào. Tổ hợp REST + Swagger + codegen + Claude + skill là đủ
Tranh luận này rốt cuộc là vấn đề lập trình viên cá nhân vs cộng tác ở quy mô tổ chức
Nếu làm một mình và muốn vòng phản hồi nhanh thì CLI tốt hơn, còn nếu cần kiểm soát và tính nhất quán ở cấp tổ chức thì MCP phù hợp hơn
Hiện tại MCP ngốn khá nhiều ngữ cảnh, nhưng dự kiến sẽ được cải thiện bằng cách công bố dần từng phần
Tôi muốn một agent dùng nguyên trạng các công cụ CLI hiện có hơn là API
Tôi đã dùng CLI ở local rồi thì chẳng có lý do gì phải thêm MCP. Tôi cũng không muốn mô hình chạy từ xa
Nếu cần gọi API thì skill là đủ
MCP và Skill không phải quan hệ zero-sum
MCP phụ trách giao diện chuẩn hóa ở tầng hạ tầng, còn Skill đảm nhiệm ngữ cảnh hành vi theo từng dự án
Kết hợp cả hai sẽ có được cả tính ổn định lẫn tính linh hoạt
Phần lớn thảo luận đều xoay quanh những người chạy coding agent ở local
Trong môi trường như vậy, Skill tiện hơn, nhưng người dùng phổ thông lại dùng dịch vụ cloud như ChatGPT
Trong trường hợp này, MCP là lựa chọn mặc định. Xác thực và truy cập từ xa là điểm mạnh
Phải dựng server, và với LLM thì còn là gánh nặng. Skill đơn giản hơn vì mã hóa tài liệu API theo cách thân thiện với LLM
Tôi thích Skill hơn. Vì có thể tái sử dụng nguyên xi các công cụ CLI mà con người dùng
Skill là tài liệu con người có thể đọc và viết, nên LLM và con người cùng chia sẻ công cụ
Trong khi đó MCP buộc phải tạo API mới dành riêng cho LLM, và tài liệu cũng phải quản lý riêng
Skill chỉ được nạp khi cần nên giữ ngữ cảnh gọn gàng
Người chỉ ủng hộ “Skill thôi” thường là không chuyên kỹ thuật, còn kiểu “chỉ CLI” thì hay gặp ở lập trình viên cá nhân
MCP phù hợp với môi trường enterprise. Nó chuẩn hóa xác thực và giao diện
acliổn định hơnMCP dễ cập nhật và triển khai nên ngay cả người không chuyên kỹ thuật cũng dễ tiếp cận
Xét cho cùng, MCP chỉ là một tập con được cấu trúc lại của API
So với API khó truy cập dữ liệu, DB SQL local hiệu quả hơn nhiều
MCP chỉ là thêm một giao thức RPC nữa, và bài toán xác thực vẫn chưa được giải quyết
Tôi cho rằng MCP là cần thiết vì sự phi lý của con người
Nhiều tổ chức vẫn không cung cấp API hay CLI. MCP giúp lấp khoảng trống đứt gãy số này
Trong doanh nghiệp, hệ thống báo cáo hay cấu trúc chính trị đang cản trở tự động hóa, và MCP có thể lách qua các rào cản đó
Skill có vấn đề phình ngữ cảnh vì phải đưa toàn bộ tài liệu vào context
MCP cũng tương tự, nhưng có thể tải dần nhờ chức năng khám phá công cụ
Vấn đề lớn hơn là đầu ra của MCP đi thẳng vào context của agent. Nếu gọi dịch vụ MCP qua CLI thì có thể lọc hoặc cache được
Skill phù hợp để chứa tri thức trực giác, còn MCP hợp với tự động hóa có thể lặp lại
Nếu LLM cứ phải viết đi viết lại cùng một script thì cố định nó thành công cụ sẽ hiệu quả hơn
Nói cách khác, điểm mấu chốt là tiền xử lý bằng script nhiều nhất có thể
Nếu chỉ là script nhỏ thì cứ đưa vào context rồi bảo “hãy dùng cái này” là đủ