Model Context Protocol trên laptop - Ranh giới bảo mật và quyền truy cập

Model Context Protocol trên laptop - Ranh giới bảo mật và quyền truy cập

Chia sẻ:

Từ cuối năm 2024, trợ lý AI trên máy tính cá nhân có thể đọc thư mục dự án, tra cơ sở dữ liệu hay điều khiển ứng dụng thông qua Model Context Protocol. Năng lực này đặt ra câu hỏi về ranh giới: tiến trình nào được chạm vào tệp nào, ai duyệt trước khi lệnh ghi được thực thi, và laptop cần cô lập ra sao khi tài liệu đầu vào có thể chứa chỉ thị độc hại.

Model Context Protocol là giao thức mở nối mô hình với dữ liệu

Anthropic công bố Model Context Protocol ngày 25/11/2024 và mô tả đây là tiêu chuẩn mở giúp nhà phát triển xây dựng kết nối hai chiều, an toàn giữa nguồn dữ liệu và công cụ dùng AI. Đợt ra mắt gồm bản đặc tả kèm SDK trên GitHub, khả năng chạy máy chủ MCP cục bộ trong ứng dụng Claude Desktop và một kho máy chủ dựng sẵn cho Google Drive, Slack, GitHub, Git, Postgres, Puppeteer. Theo thông báo ra mắt của Anthropic, Block và Apollo là những doanh nghiệp tích hợp sớm, còn Zed, Replit, Codeium, Sourcegraph đưa giao thức vào công cụ lập trình.

Model Context Protocol kết nối ứng dụng AI trên laptop với tệp và công cụ

Vấn đề Model Context Protocol nhắm tới là sự phân mảnh. Trước đó, mỗi cặp ứng dụng AI và nguồn dữ liệu cần một bộ kết nối viết riêng, nên khối lượng tích hợp phải duy trì phình ra theo cả số ứng dụng lẫn số nguồn dữ liệu. Đặc tả lấy cảm hứng từ Language Server Protocol, chuẩn chung giúp trình soạn thảo mã hỗ trợ nhiều ngôn ngữ lập trình: một máy chủ viết một lần có thể phục vụ mọi ứng dụng tương thích, bất kể mô hình phía sau đến từ hãng nào.

Ngày 9/12/2025, Anthropic chuyển giao Model Context Protocol cho Agentic AI Foundation, quỹ trực thuộc Linux Foundation do Anthropic, Block và OpenAI đồng sáng lập. Ở thời điểm đó, hãng ghi nhận hơn 10.000 máy chủ MCP công khai đang hoạt động và hơn 97 triệu lượt tải SDK Python cùng TypeScript mỗi tháng. Quy mô đó đồng nghĩa số máy chủ chưa qua thẩm định mà laptop có thể cài vào cũng tăng theo.

Kiến trúc host client server và ba nhóm tính năng cốt lõi

Đặc tả Model Context Protocol dùng thông điệp JSON-RPC 2.0 và chia hệ thống thành ba vai. Host là ứng dụng AI khởi tạo kết nối, ví dụ ứng dụng trò chuyện trên desktop hay trình soạn thảo mã có tích hợp AI. Client là bộ kết nối nằm bên trong host, mỗi client giữ liên lạc với đúng một máy chủ. Server cung cấp ngữ cảnh và năng lực, chạy ngay trên laptop hoặc trên hạ tầng từ xa.

Thành phần Vai trò theo đặc tả Ví dụ khi chạy trên laptop
Host Ứng dụng AI khởi tạo kết nối, nơi hiển thị hộp thoại xin phép Ứng dụng trò chuyện desktop, trình soạn thảo mã tích hợp AI
Client Bộ kết nối bên trong host, mỗi client gắn với một máy chủ Kết nối host tạo ra cho từng máy chủ trong tệp cấu hình
Server: Resources Dữ liệu và ngữ cảnh cho mô hình hoặc người vận hành Nội dung tệp, cấu trúc thư mục dự án
Server: Prompts Mẫu thông điệp và quy trình dựng sẵn Mẫu tóm tắt tài liệu, mẫu rà soát mã
Server: Tools Hàm để mô hình gọi thực thi Đọc, ghi, di chuyển, tìm kiếm tệp

Ngoài ba nhóm tính năng phía máy chủ trong bảng, phía client có thể đáp ứng các yêu cầu ngược như Sampling, khi máy chủ nhờ host gọi mô hình, Roots, khi máy chủ hỏi ranh giới thư mục được phép, và Elicitation, khi máy chủ xin thêm thông tin từ người vận hành. Riêng Roots và Sampling đã bị đánh dấu Deprecated trong phiên bản 2026-07-28.

Điểm mấu chốt về an ninh nằm ở vị trí của host. Mọi yêu cầu giữa mô hình và máy chủ đều đi qua host, nên host là nơi hiển thị hộp thoại xin phép, chặn lệnh, ghi nhật ký và áp nguyên tắc quyền tối thiểu cho từng kết nối. Theo nguyên tắc thiết kế, máy chủ không được đọc toàn bộ cuộc hội thoại hay nhìn sang máy chủ khác, nên một máy chủ MCP chỉ nhận phần ngữ cảnh cần thiết.

Máy chủ MCP chạy cục bộ qua stdio trên laptop như thế nào

Đặc tả Model Context Protocol định nghĩa hai cơ chế truyền tải chuẩn là stdio và Streamable HTTP, đồng thời khuyến nghị client hỗ trợ stdio bất cứ khi nào có thể. Với stdio, client khởi chạy máy chủ MCP như một tiến trình con, gửi thông điệp qua stdin và nhận phản hồi qua stdout, còn stderr dành cho nhật ký. Kết nối kiểu này không mở cổng mạng, chỉ host giao tiếp được với tiến trình đó.

Máy chủ MCP chạy cục bộ trên laptop qua stdio dưới dạng tiến trình con

Trên Claude Desktop, cấu hình nằm trong tệp claude_desktop_config.json, đặt tại Library/Application Support/Claude trên macOS và %APPDATA%\Claude trên Windows. Ví dụ chính thức dùng lệnh npx để chạy gói @modelcontextprotocol/server-filesystem, các đường dẫn liệt kê phía sau chính là phạm vi máy chủ được phép đọc ghi. Tài liệu hướng dẫn cảnh báo máy chủ chạy với quyền của tài khoản hệ điều hành đang đăng nhập, tức làm được mọi thao tác tệp mà chủ tài khoản làm được.

Về tài nguyên, phần lớn máy chủ MCP chỉ là tiến trình Node.js hoặc Python đọc tệp, gọi API và trả văn bản, nên mức chiếm dụng CPU và RAM thường nhỏ so với trình duyệt hay IDE đang mở. Phần nặng nằm ở mô hình: khi mô hình chạy ngay trên laptop để dữ liệu không rời thiết bị, dung lượng RAM và VRAM trở thành giới hạn phần cứng chính, như phân tích trong bài Ollama trên laptop: Vận hành AI cục bộ không cần đám mây.

Đặc tả thay đổi theo từng phiên bản ghi bằng ngày

Model Context Protocol đặt tên phiên bản theo định dạng YYYY-MM-DD, ứng với ngày cuối cùng có thay đổi không tương thích ngược. Mỗi bản ở trạng thái Draft, Current hoặc Final, và theo trang Versioning, bản Current hiện hành là 2026-07-28. Bảng dưới tổng hợp số thay đổi lớn mà trang Key Changes của từng bản liệt kê so với bản liền trước.

Phiên bản đặc tả Số thay đổi lớn so với bản trước Thay đổi liên quan bảo mật và vận hành cục bộ
2024-11-05 Bản đầu tiên Truyền tải stdio và HTTP kèm SSE, thông điệp JSON-RPC 2.0
2025-03-26 4 Khung ủy quyền dựa trên OAuth 2.1, Streamable HTTP thay HTTP kèm SSE, chú thích công cụ chỉ đọc hay phá hủy
2025-06-18 9 Bỏ JSON-RPC batching, đầu ra công cụ có cấu trúc, thêm Elicitation, trang Security Best Practices riêng
2025-11-25 9 Đồng ý phạm vi quyền theo từng bước, Elicitation dạng URL, tác vụ tasks thử nghiệm
2026-07-28 9 Bỏ bước bắt tay initialize, giao thức phi trạng thái, Roots, Sampling, Logging chuyển Deprecated

Với laptop, đáng giá nhất là chuỗi thay đổi quanh chú thích công cụ. Bản 2025-03-26 thêm chú thích cho biết công cụ chỉ đọc hay có tính phá hủy, nhưng đặc tả 2025-06-18 yêu cầu coi các mô tả này là không đáng tin trừ khi đến từ máy chủ tin cậy. Bản 2025-11-25 bổ sung cơ chế xin thêm phạm vi theo từng bước, đúng tinh thần quyền tối thiểu: chỉ cấp quyền khi thao tác đặc quyền lần đầu xuất hiện.

Bản 2026-07-28 đổi cách vận hành Model Context Protocol nhiều nhất: bỏ bước bắt tay initialize, mỗi yêu cầu tự mang phiên bản giao thức và năng lực client. Khi Roots chuyển sang Deprecated, tài liệu gợi ý truyền thư mục qua tham số công cụ, URI tài nguyên hoặc cấu hình máy chủ. Hệ quả là ranh giới thư mục nên được khóa ngay trong cấu hình khởi chạy.

Prompt injection qua tài liệu và giới hạn của cơ chế xác nhận

Prompt injection xảy ra khi văn bản mà mô hình đọc chứa chỉ thị được cài cắm, ví dụ một dòng ẩn trong tệp README yêu cầu gửi khóa SSH ra ngoài. Mô hình không phân biệt chắc chắn đâu là dữ liệu, đâu là mệnh lệnh, nên một tài liệu đọc qua máy chủ MCP có thể biến thành kênh điều khiển. Rủi ro tăng mạnh khi cùng một phiên vừa nạp nội dung không tin cậy, vừa có công cụ ghi tệp hoặc gửi dữ liệu ra mạng, nên quyền tối thiểu cho từng máy chủ là lớp chặn đầu tiên.

Prompt injection qua tài liệu và hộp thoại xác nhận công cụ Model Context Protocol

Hai báo cáo của Invariant Labs minh họa cơ chế này. Tháng 4/2025, nhóm mô tả kiểu tấn công đầu độc công cụ, giấu chỉ thị trong phần mô tả công cụ để dụ tác tử đọc khóa SSH và tệp cấu hình mcp.json, trong khi hộp thoại xác nhận rút gọn che mất tham số thật. Tháng 5/2025, nhóm chỉ ra một issue độc hại trong kho GitHub công khai có thể khiến tác tử dùng máy chủ GitHub làm rò dữ liệu từ kho riêng tư, và nhấn mạnh đây là vấn đề kiến trúc ở tầng tác tử chứ không phải lỗi mã.

Đặc tả Model Context Protocol đặt người vận hành ở trung tâm: host phải có sự đồng ý tường minh trước khi gọi bất kỳ công cụ nào và trước khi đưa dữ liệu cho máy chủ. Dù vậy, mục Security and Trust & Safety trong đặc tả 2025-06-18 cũng thừa nhận giao thức không tự cưỡng chế được các nguyên tắc này ở tầng giao thức. Hộp thoại xác nhận chỉ có giá trị khi hiển thị đủ lệnh, tham số và được đọc kỹ trước khi bấm đồng ý.

Nguyên tắc quyền tối thiểu và cách cô lập máy chủ trên laptop

Nguyên tắc quyền tối thiểu nghĩa là mỗi máy chủ MCP chỉ nhận đúng phạm vi cần cho nhiệm vụ. Với máy chủ tệp, phạm vi đó là danh sách thư mục khai báo khi khởi chạy; máy chủ tham chiếu của dự án từ chối mọi thao tác ngoài các thư mục này và có công cụ list_allowed_directories để xác minh lại. Không nên khai báo cả thư mục home, nơi chứa khóa SSH, tệp .env hay hồ sơ trình duyệt.

Nguyên tắc quyền tối thiểu và cô lập máy chủ MCP trên laptop

Lớp thứ hai là môi trường chạy. Trang Security Best Practices khuyến nghị chạy máy chủ MCP cục bộ trong sandbox theo quyền tối thiểu mặc định, hạn chế truy cập tệp, mạng bằng container, chroot hoặc sandbox ứng dụng. README máy chủ tệp hướng dẫn chạy qua Docker, gắn thư mục vào /projects kèm cờ ro để thành chỉ đọc. Với gói máy chủ tải từ nguồn chưa thẩm định trên Windows, cách thử trong môi trường dùng xong là xóa được trình bày ở bài Windows Sandbox: Môi trường tạm thời để thử phần mềm chưa rõ nguồn.

Lớp thứ ba là quy trình. Lệnh khởi chạy cần được xác minh trước khi thêm vào cấu hình, vì trang hướng dẫn bảo mật nêu ví dụ lệnh npx nối kèm curl gửi khóa SSH ra ngoài. Nên ghim phiên bản gói, ưu tiên stdio. Ứng dụng desktop hỗ trợ AI thao tác trên thư mục làm việc cũng cần cấp quyền từng thư mục như hướng dẫn trong bài Claude Cowork: Quy trình thiết lập và thao tác file an toàn, kèm Git để khôi phục khi tác tử ghi nhầm. Gộp ba lớp này, cấu hình Model Context Protocol trên laptop giữ được quyền tối thiểu mà không mất tiện ích.

Câu hỏi thường gặp về Model Context Protocol

Model Context Protocol có tự gửi toàn bộ tệp trên laptop lên đám mây không?

Không. Máy chủ chỉ trả nội dung khi host gọi tài nguyên hoặc công cụ, và đặc tả yêu cầu host xin đồng ý trước khi đưa dữ liệu cho máy chủ, không truyền dữ liệu tài nguyên đi nơi khác khi chưa được phép. Phần nội dung đã nạp vào ngữ cảnh vẫn được gửi tới nhà cung cấp nếu mô hình chạy trên đám mây, nên phạm vi thư mục khai báo quyết định lượng dữ liệu có thể rời laptop.

Máy chủ MCP chạy qua stdio có an toàn hơn chạy qua HTTP trên cùng laptop?

Xét về bề mặt tấn công thì có. Trang hướng dẫn bảo mật khuyên máy chủ dự định chạy cục bộ nên dùng stdio để chỉ client của nó truy cập được. Máy chủ HTTP để quên trên localhost có thể bị trang web độc hại chạm tới qua DNS rebinding, vì vậy đặc tả yêu cầu kiểm tra header Origin, khuyến nghị chỉ lắng nghe 127.0.0.1 và xác thực mọi kết nối.

Laptop cần cấu hình mạnh để chạy máy chủ MCP không?

Thường là không. Máy chủ MCP quản lý tệp chỉ cần Node.js, tác vụ chủ yếu là đọc ghi tệp rồi trả văn bản. Cấu hình chỉ trở thành yếu tố cốt lõi khi chạy luôn mô hình ngôn ngữ ngay trên laptop, lúc đó dung lượng RAM, VRAM và băng thông bộ nhớ quyết định kích thước mô hình khả dụng.

Chú thích readOnlyHint có đủ để tin một công cụ chỉ đọc không?

Không đủ. Máy chủ tệp tham chiếu gắn readOnlyHint cho read_text_file và destructiveHint cho write_file, nhưng đó là thông tin máy chủ tự khai. Đặc tả yêu cầu coi chú thích là không đáng tin trừ khi đến từ máy chủ tin cậy, nên cách chắc chắn nhất để giữ quyền tối thiểu vẫn là gắn thư mục với cờ ro trong container hoặc dùng tài khoản hệ điều hành không có quyền ghi.

← Bài trước

0 phản hồi cho “Model Context Protocol trên laptop - Ranh giới bảo mật và quyền truy cập”

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *