iT邦幫忙

2025 iThome 鐵人賽

DAY 3
0

Filesystem MCP

很多 IDE(例如 Cursor、Roo Code)本來就能讓 AI 操作 Terminal。照理說用 PowerShell / Bash 指令就能達到檔案讀寫,為什麼還要多裝一個 File System MCP?

差別在於 安全性與標準化:

  • 安全邊界:

    • Terminal → 沒有沙盒,AI 一旦下了錯誤指令,可能直接毀資料或影響系統。
    • File System MCP → 只能操作設定過的 root 資料夾,出不了 sandbox。
  • 協定標準化

    • erminal → Windows / Linux / macOS 指令各不相同。
    • MCP → 提供統一的 JSON-RPC 工具介面(read_file、list_directory 等),跨平台一致。
  • 權限控管

    • Terminal → 要嘛全開,要嘛全關。
    • MCP → 可以精細控制哪些目錄可存取、哪些操作允許(例如只讀不刪)。
  • 審計與可觀測性

    • MCP 呼叫工具會被 log 下來,方便稽核與 rollback。

結論: 個人開發時 Terminal 當然能用,但 MCP 的安全與一致性,特別適合團隊或需要 sandbox 的情境。


示範 & 實做

選擇一個 Github 專案。這個鐵人系列主要就是希望可以多摸索、應用、發掘社群公開好用的MCP。
目前 Github 算是開源程式的領導地位,開發者會將自己的MCP丟在上面。

我使用的範例來自這個專案:
👉 modelcontextprotocol/server-filesystem
這是目前Filesystem最熱門,星數最多的。

安裝與測試步驟

  1. 安裝
npm install -g @modelcontextprotocol/server-filesystem
  1. 啟動並指定可以訪問的資料夾
npx @modelcontextprotocol/server-filesystem D:\\T\\mcp_test

出現此圖代表成功
https://ithelp.ithome.com.tw/upload/images/20250917/20178248lzyr49sPSS.png

  1. Roo Code MCP 設定 (Day1的Weather MCP還保留)
{
  "mcpServers": {
    "weather-openmeteo": {
      "command": "npx",
      "args": ["-y", "tsx", "main.ts"],
      "cwd": "D:\\T\\mcp_test\\mcp-weather-server-demo",
      "transport": "stdio"
    },
    "filesystem": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-filesystem",
        "D:\\T\\mcp_test"
      ],
      "transport": "stdio"
    }
  }
}

4.測試效果
https://ithelp.ithome.com.tw/upload/images/20250917/20178248cy51jxKa3y.png


MCP總結:modelcontextprotocol/server-filesystem

Tools

從 Github 可以看到此MCP所有Tools
https://github.com/modelcontextprotocol/servers/tree/main/src/filesystem

讀取

  • 文字檔(read_text_file):整檔讀文字,亦可只讀前/後 N 行。
  • 讀取媒體檔(read_media_file):讀圖片/音訊,回傳 base64 與 MIME。
  • 一次讀多檔(read_multiple_files):並行讀多個路徑;單個失敗不影響整體。

寫入 / 編輯

  • 入檔案(write_file):新建或覆寫指定路徑內容。
  • 編輯檔案(edit_file):支援多段取代、縮排偵測、diff 預覽(可 dryRun)。

目錄操作

  • 目錄(create_directory):必要時自動建立上層;已存在視為成功。
  • 列出目錄(list_directory):列出檔案/目錄並標示 [FILE]/[DIR]。
  • 列出目錄(含大小)(list_directory_with_sizes):加總大小、可依名稱/大小排序。
  • 目錄樹(directory_tree):回傳遞迴樹狀 JSON(含 children)。
  • 移動/更名(move_file):搬移或重新命名檔案/目錄;目的地存在則失敗。

搜尋 / 資訊

  • 搜尋(search_files):遞迴搜尋,支援排除樣式(glob)、大小寫不敏感。
  • 取得檔案資訊(get_file_info):回傳大小、建立/修改/存取時間、型別、權限。

存取控制

  • 允許目錄(list_allowed_directories):回傳目前可讀寫的沙盒路徑。

注意事項

裝好 filesystem mcp,要記得修改 System Prompt。不然預設還是會用Terminal


上一篇
Day2. Weather MCP
系列文
Daily MCP — Model Context Protocol in Practice3
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言