MCP: Cách Claude Tương Tác Thông Minh Với Các Tệp Cục Bộ Của Bạn.

MCP: Cách Claude Tương Tác Thông Minh Với Các Tệp Cục Bộ Của Bạn.

MCP Claude AI assistants Filesystem Security

Model Context Protocol (MCP) cung cấp một khung bảo mật để các ứng dụng tương tác với hệ thống tệp thông qua các thao tác sandbox. Hướng dẫn này giải thích cách MCP hoạt động, các tính năng chính, và trình bày một ví dụ thực tế sử dụng MCP Filesystem Server.

Model Context Protocol (MCP) là gì?

Model Context Protocol (MCP) là một khung bảo mật mạnh mẽ được thiết kế để cho phép tương tác có kiểm soát giữa các ứng dụng (như trợ lý AI) và các hệ thống bên ngoài, đặc biệt là hệ thống tệp. Hoạt động như một cầu nối an toàn, MCP cho phép các công cụ thực hiện các thao tác như đọc, ghi hoặc tìm kiếm tệp trong một môi trường sandbox dựa trên quyền.

Giao thức này đặc biệt giá trị cho các nhà phát triển muốn tích hợp thao tác hệ thống tệp vào các ứng dụng như VS Code, Claude Desktop, hoặc các môi trường phát triển khác trong khi vẫn duy trì ranh giới bảo mật mạnh mẽ.

Các tính năng chính của MCP

  • Thao tác sandbox: Mọi hoạt động đều diễn ra trong các thư mục được xác định trước, bảo vệ các khu vực nhạy cảm trên hệ thống tệp của bạn.
  • API chuẩn hóa: Một bộ công cụ nhất quán (read_file, write_file, v.v.) có thể truy cập qua một giao diện thống nhất.
  • Thiết kế ưu tiên bảo mật: Các thao tác bị giới hạn trong các thư mục cho phép cùng các tính năng như chỉ gắn kết đọc.
  • Tích hợp linh hoạt: Tương thích với nhiều môi trường như Docker, NPX, VS Code, và Claude Desktop.
Illustration of MCP integration

Giải thích về MCP Filesystem Server

MCP Filesystem Server là một triển khai Node.js được xây dựng đặc biệt để thao tác hệ thống tệp trong khuôn khổ Model Context Protocol. Nó cung cấp một bộ công cụ toàn diện để tương tác với tệp và thư mục một cách kiểm soát.

Các công cụ có trong MCP Filesystem Server

Đây là tổng quan về các chức năng cốt lõi:

  • read_file: Đọc nội dung tệp sử dụng mã hóa UTF-8
  • read_multiple_files: Xử lý nhiều tệp cùng lúc, tiếp tục kể cả khi một số tệp bị lỗi
  • write_file: Tạo mới hoặc ghi đè tệp hiện có
  • edit_file: Cho phép chỉnh sửa chọn lọc theo mẫu, bao gồm dry run và xuất diff kiểu Git
  • create_directory: Tạo thư mục với tùy chọn tạo thư mục cha
  • list_directory: Hiển thị nội dung thư mục với tiền tố rõ ràng [FILE] hoặc [DIR]
  • move_file: Di chuyển hoặc đổi tên tệp và thư mục
  • search_files: Tìm kiếm đệ quy với hỗ trợ mẫu loại trừ
  • get_file_info: Lấy metadata như kích thước, thời gian tạo, và quyền
  • list_allowed_directories: Hiển thị tất cả thư mục có thể truy cập để minh bạch

Tất cả các công cụ này có thể truy cập qua tài nguyên file://system, đóng vai trò là giao diện cho thao tác hệ thống tệp MCP.

Sử dụng MCP với Claude

Để minh họa MCP hoạt động thực tế, chúng ta cùng xem qua một ví dụ sử dụng MCP Filesystem Server với Claude—một trợ lý AI—để thực hiện các thao tác hệ thống tệp phổ biến.

Bước 1: Liệt kê các thư mục được phép

Bước đầu tiên là xác định các thư mục mà Claude có thể truy cập. Chúng tôi sử dụng công cụ list_allowed_directories, kết quả cho thấy hai vị trí được phép:

  • /Users/arshia/Desktop
  • /Users/arshia/Downloads

Điều này xác nhận các thao tác của Claude chỉ bị giới hạn trong hai thư mục này, các phần còn lại của hệ thống tệp được bảo vệ.

Bước 2: Khám phá nội dung thư mục

Tiếp theo, chúng tôi dùng công cụ list_directory để xem có tệp nào trong các thư mục đó. Kết quả như sau:

Đối với /Users/arshia/Desktop:

  • [FILE] DS_Store
  • [FILE] localized

Đối với /Users/arshia/Downloads:

  • [FILE] DS_Store
  • [FILE] localized
  • [DIR] Visual Studio Code.app
  • [FILE] shrek.txt
  • [FILE] claudes diary.pages
  • [FILE] diary.pdf

Điều này tiết lộ có một tệp tên shrek.txt trong thư mục Downloads, cùng với các tệp khác và một thư mục cho Visual Studio Code.

Directory listing screenshot Downloads directory contents

Ảnh chụp màn hình hiển thị các yêu cầu và phản hồi list_directory cho các thư mục Desktop và Downloads

Bước 3: Thử đọc một tệp

Sau khi xác định shrek.txt, chúng tôi thử đọc nội dung của nó bằng công cụ read_file. Ban đầu chỉ cung cấp tên tệp shrek.txt, nghĩ rằng công cụ sẽ tự tìm trong các thư mục cho phép.

Kết quả lỗi như sau:
“Access denied – path outside allowed directories: /shrek.txt not in /Users/arshia/Desktop, /Users/arshia/Downloads.”
Lỗi này xuất hiện vì MCP yêu cầu đường dẫn tệp đầy đủ để đảm bảo an toàn.

Failed file read attempt

Ảnh 2: Ảnh chụp màn hình thể hiện việc đọc tệp thất bại cùng thông báo lỗi

Bước 4: Đọc tệp thành công

Sau khi điều chỉnh, chúng tôi cung cấp đường dẫn đầy đủ /Users/arshia/Downloads/shrek.txt cho công cụ read_file. Lần này thao tác thành công, trả về nội dung tệp:

Request
{
  `path`: `/Users/arshia/Downloads/shrek.txt`
}
Response

Can you see what im writing here? If you do check this out: 

⢀⡴⠑⡄⠀⠀⠀⠀⠀⠀⠀⣀⣀⣤⣤⣤⣀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ 
⠸⡇⠀⠿⡀⠀⠀⠀⣀⡴⢿⣿⣿⣿⣿⣿⣿⣿⣷⣦⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀ 
⠀⠀⠀⠀⠑⢄⣠⠾⠁⣀⣄⡈⠙⣿⣿⣿⣿⣿⣿⣿⣿⣆⠀⠀⠀⠀⠀⠀⠀⠀ 
⠀⠀⠀⠀⢀⡀⠁⠀⠀⠈⠙⠛⠂⠈⣿⣿⣿⣿⣿⠿⡿⢿⣆⠀⠀⠀⠀⠀⠀⠀ 
⠀⠀⠀⢀⡾⣁⣀⠀⠴⠂⠙⣗⡀⠀⢻⣿⣿⠭⢤⣴⣦⣤⣹⠀⠀⠀⢀⢴⣶⣆ 
⠀⠀⢀⣾⣿⣿⣿⣷⣮⣽⣾⣿⣥⣴⣿⣿⡿⢂⠔⢚⡿⢿⣿⣦⣴⣾⠁⠸⣼⡿ 
⠀⢀⡞⠁⠙⠻⠿⠟⠉⠀⠛⢹⣿⣿⣿⣿⣿⣌⢤⣼⣿⣾⣿⡟⠉⠀⠀⠀⠀⠀ 
⠀⣾⣷⣶⠇⠀⠀⣤⣄⣀⡀⠈⠻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⠀⠀⠀⠀⠀⠀ 
⠀⠉⠈⠉⠀⠀⢦⡈⢻⣿⣿⣿⣶⣶⣶⣶⣤⣽⡹⣿⣿⣿⣿⡇⠀⠀⠀⠀⠀⠀ 
⠀⠀⠀⠀⠀⠀⠀⠉⠲⣽⡻⢿⣿⣿⣿⣿⣿⣿⣷⣜⣿⣿⣿⡇⠀⠀⠀⠀⠀⠀ 
⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣷⣶⣮⣭⣽⣿⣿⣿⣿⣿⣿⣿⠀⠀⠀⠀⠀⠀⠀ 
⠀⠀⠀⠀⠀⣀⣀⣈⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠇⠀⠀⠀⠀⠀⠀⠀ 
⠀⠀⠀⠀⠀⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠃⠀⠀⠀⠀⠀⠀⠀⠀ 
⠀⠀⠀⠀⠀⠀⠹⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠟⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀ 
⠀⠀⠀⠀⠀⠀⠀⠀⠉⠛⠻⠿⠿⠿⠿⠛⠉

Shrek
  • Một câu hỏi kiểm tra người đọc có nhìn thấy nội dung hay không
  • Hình ASCII art mô tả khuôn mặt Shrek
  • Dòng chữ “Shrek” ở cuối

Thao tác thành công xác nhận MCP có thể đọc tệp khi được cung cấp đúng đường dẫn trong thư mục được phép.

Bài học rút ra từ ví dụ

Bài thực hành này làm nổi bật một số khía cạnh quan trọng khi dùng MCP:

  1. Cần đường dẫn đầy đủ: Các công cụ như read_file yêu cầu đường dẫn tệp tuyệt đối, không chỉ tên tệp.
  2. Sandbox hiệu quả: Việc thất bại ban đầu cho thấy mô hình bảo mật của MCP hoạt động đúng như thiết kế.
  3. Khám phá tuần tự là tốt nhất: Sử dụng công cụ liệt kê thư mục giúp điều hướng hệ thống tệp dễ dàng hơn.

Phương pháp hay nhất khi triển khai MCP

Dựa trên kinh nghiệm và tính năng của MCP Filesystem Server, chúng tôi khuyến nghị các thực hành sau:

  • Luôn kiểm tra quyền trước: Sử dụng list_allowed_directories trước khi thao tác.
  • Dùng đường dẫn tệp đầy đủ: Cung cấp đường dẫn tuyệt đối để tránh lỗi và mơ hồ.
  • Kiểm thử chỉnh sửa bằng Dry Run: Khi dùng edit_file, hãy xem trước thay đổi với dryRun: true trước khi áp dụng thật.
  • Lên kế hoạch cho kết quả thành phần: Công cụ như read_multiple_files tiếp tục kể cả khi có tệp thất bại.
  • Thực thi quyền tối thiểu: Khi cấu hình server, dùng gắn kết chỉ đọc cho những thư mục không cần chỉnh sửa.

Kết luận

Model Context Protocol (MCP) và Filesystem Server của nó mang lại một phương pháp mạnh mẽ, an toàn để thao tác hệ thống tệp trong môi trường kiểm soát. Ví dụ với Claude cho thấy cách dùng thực tế các công cụ như list_directoryread_file, đồng thời nhấn mạnh nguyên tắc quan trọng như dùng đường dẫn đầy đủ và hiểu ranh giới quyền truy cập.

Bằng cách tuân thủ các phương pháp hay nhất đã trình bày, bạn có thể tận dụng MCP để tích hợp an toàn thao tác hệ thống tệp vào ứng dụng hoặc quy trình phát triển của mình.

Với các nhà phát triển muốn triển khai MCP vào dự án, tài liệu chính thức trên GitHub cung cấp hướng dẫn chi tiết và đầy đủ về triển khai.

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

Model Context Protocol (MCP) là gì?

Model Context Protocol (MCP) là một khung bảo mật cho phép tương tác có kiểm soát, sandbox giữa các ứng dụng—như trợ lý AI—và hệ thống tệp. Nó cho phép đọc, ghi, tìm kiếm tệp và các thao tác khác trong các thư mục được phép nghiêm ngặt.

MCP giữ các tệp của tôi an toàn như thế nào?

MCP thực thi thao tác sandbox bằng cách giới hạn mọi hành động trong các thư mục được xác định trước. Nó ngăn chặn truy cập trái phép, yêu cầu đường dẫn tệp đầy đủ cho các thao tác, và hỗ trợ tùy chọn như gắn kết chỉ đọc cho các vị trí nhạy cảm.

Claude hoặc trợ lý AI khác có thể truy cập toàn bộ hệ thống tệp của tôi qua MCP không?

Không, các ứng dụng sử dụng MCP chỉ có thể tương tác với các thư mục đã được cho phép rõ ràng. Mọi cố gắng truy cập tệp ngoài các thư mục này sẽ bị chặn, đảm bảo ranh giới bảo mật mạnh mẽ.

Các công cụ chính nào có trong MCP Filesystem Server?

Các công cụ chính bao gồm read_file, write_file, edit_file, create_directory, list_directory, move_file, search_files, get_file_info, và list_allowed_directories. Tất cả thao tác đều được thực hiện qua một API chuẩn hóa.

Các phương pháp hay nhất khi sử dụng MCP là gì?

Luôn kiểm tra thư mục được phép trước khi thao tác, cung cấp đường dẫn tệp đầy đủ, sử dụng dry run khi chỉnh sửa, lên kế hoạch cho kết quả thành phần, và cấu hình thư mục với quyền tối thiểu. Những thực hành này giúp đảm bảo vừa an toàn vừa tích hợp hiệu quả.

Arshia là Kỹ sư Quy trình AI tại FlowHunt. Với nền tảng về khoa học máy tính và niềm đam mê AI, anh chuyên tạo ra các quy trình hiệu quả tích hợp công cụ AI vào các nhiệm vụ hàng ngày, nâng cao năng suất và sự sáng tạo.

Arshia Kahani
Arshia Kahani
Kỹ sư Quy trình AI

Trải nghiệm FlowHunt với Truy Cập Tệp AI An Toàn

Khám phá cách công cụ AI của FlowHunt tận dụng MCP để tương tác an toàn, kiểm soát với các tệp cục bộ của bạn. Xây dựng workflow AI của riêng bạn một cách an toàn và hiệu quả.

Tìm hiểu thêm

MCP Server Code Sandbox
MCP Server Code Sandbox

MCP Server Code Sandbox

MCP Server Code Sandbox cung cấp môi trường an toàn, đóng gói bằng container để thực thi mã nguồn, cho phép trợ lý AI và công cụ phát triển chạy, kiểm thử và qu...

6 phút đọc
AI Security +5
MCP: Giao Thức Ngữ Cảnh Mô Hình
MCP: Giao Thức Ngữ Cảnh Mô Hình

MCP: Giao Thức Ngữ Cảnh Mô Hình

Model Context Protocol (MCP) là một giao diện tiêu chuẩn mở cho phép các Mô hình Ngôn ngữ Lớn (LLM) truy cập an toàn và nhất quán vào các nguồn dữ liệu, công cụ...

5 phút đọc
AI Large Language Models +4