שרת MCP מאומת: Filesystem

שרת ה-MCP לקבצים, אומת בריצה חיה על Mac אמיתי.

  • אומת2026-08-02macOS 14.4.1
  • חבילה@modelcontextprotocol/server-filesystem 2026.7.10
  • מדווח על עצמוsecure-filesystem-server 0.2.0
  • פרוטוקול MCP2025-06-18
  • Nodev25.8.1

התשובה הקצרה

אומת לאחרונה 2026-08-02

שרת ה-MCP לקבצים נותן לעוזר AI גישת קריאה וכתיבה לתיקיות שאתם בוחרים, ומסרב לכל מה שמחוץ להן. זהו שרת הקבצים של פרויקט ה-Model Context Protocol עצמו, הוא רץ על ה-Mac שלכם על גבי stdio, ואינו דורש חשבון, מפתח API או הרשמה כלשהי. לא הסתפקנו במה שכתוב ב-README: הרצנו את השרת, דיברנו איתו בפרוטוקול, ספרנו כל כלי שהוא חושף ושמרנו את הפלט הגולמי, כולל השגיאות המדויקות שהוא מחזיר כשמשהו משתבש. הכל נמצא בעמוד הזה. [1][3][6]

  • כלים

    14, נספרו בריצה חיה

  • אישורי גישה

    לא נדרשים

  • ערוץ תקשורת

    stdio, רץ על ה-Mac שלכם [6]

  • מתחזק

    modelcontextprotocol [1][3]

  • הורדות

    385 אלף בשבוע האחרון [2]

  • רישיון

    MIT, במעבר ל-Apache-2.0 [4]

אימות

איך שרת ה-MCP הזה אומת.

השיטה

הרצנו את השרת עם npx על גבי stdio עם תיקיה מורשית אחת, השלמנו את לחיצת היד של MCP, קראנו ל-tools/list והרצנו קריאת כלי אמיתית אחת. ה-JSON הגולמי נלכד ישירות מהחיבור, וטבלת הכלים למטה היא הלכידה הזו, מילה במילה.

הודעת הפתיחה של השרת

Secure MCP Filesystem Server running on stdio
Client does not support MCP Roots, using allowed directories set from server args: [ '/tmp', '/private/tmp' ]

קריאת כלי אמיתית אחת

tools/call list_directory {"path": "/tmp"}
[FILE] build.log
[DIR] claude-502
[DIR] com.apple.launchd.ugMEiOmS7E

שורות אמיתיות מהתוצאה שנלכדה: מספיק כדי להוכיח שהקריאה נענתה.

כלים

כל הכלים, כפי שנספרו מהשרת הרץ.

השרת ענה ל-tools/list עם 14 כלים בתאריך 2026-08-02. השמות, התיאורים והפרמטרים למטה הם המילים שלו עצמו, מועתקים מהתשובה הזו וללא עריכה.

כלימה הוא עושה
read_fileמיושןpath*tailhead

Read the complete contents of a file as text. DEPRECATED: Use read_text_file instead.

read_text_filepath*tailhead

Read the complete contents of a file from the file system as text. Handles various text encodings and provides detailed error messages if the file cannot be read. Use this tool when you need to examine the contents of a single file. Use the 'head' parameter to read only the first N lines of a file, or the 'tail' parameter to read only the last N lines of a file. Operates on the file as text regardless of extension. Only works within allowed directories.

read_media_filepath*

Read a file and return it as a base64-encoded content block with its MIME type. Image and audio files are returned as image/audio content; any other file type is returned as an embedded resource. Only works within allowed directories.

read_multiple_filespaths*

Read the contents of multiple files simultaneously. This is more efficient than reading files one by one when you need to analyze or compare multiple files. Each file's content is returned with its path as a reference. Failed reads for individual files won't stop the entire operation. Only works within allowed directories.

write_filepath*content*

Create a new file or completely overwrite an existing file with new content. Use with caution as it will overwrite existing files without warning. Handles text content with proper encoding. Only works within allowed directories.

edit_filepath*edits*dryRun

Make line-based edits to a text file. Each edit replaces exact line sequences with new content. Returns a git-style diff showing the changes made. Only works within allowed directories.

create_directorypath*

Create a new directory or ensure a directory exists. Can create multiple nested directories in one operation. If the directory already exists, this operation will succeed silently. Perfect for setting up directory structures for projects or ensuring required paths exist. Only works within allowed directories.

list_directorypath*

Get a detailed listing of all files and directories in a specified path. Results clearly distinguish between files and directories with [FILE] and [DIR] prefixes. This tool is essential for understanding directory structure and finding specific files within a directory. Only works within allowed directories.

list_directory_with_sizespath*sortBy

Get a detailed listing of all files and directories in a specified path, including sizes. Results clearly distinguish between files and directories with [FILE] and [DIR] prefixes. This tool is useful for understanding directory structure and finding specific files within a directory. Only works within allowed directories.

directory_treepath*excludePatterns

Get a recursive tree view of files and directories as a JSON structure. Each entry includes 'name', 'type' (file/directory), and 'children' for directories. Files have no children array, while directories always have a children array (which may be empty). The output is formatted with 2-space indentation for readability. Only works within allowed directories.

move_filesource*destination*

Move or rename files and directories. Can move files between directories and rename them in a single operation. If the destination exists, the operation will fail. Works across different directories and can be used for simple renaming within the same directory. Both source and destination must be within allowed directories.

search_filespath*pattern*excludePatterns

Recursively search for files and directories matching a pattern. The patterns should be glob-style patterns that match paths relative to the working directory. Use pattern like '*.ext' to match files in current directory, and '**/*.ext' to match files in all subdirectories. Returns full paths to all matching items. Great for finding files when you don't know their exact location. Only searches within allowed directories.

get_file_infopath*

Retrieve detailed metadata about a file or directory. Returns comprehensive information including size, creation time, last modified time, permissions, and type. This tool is perfect for understanding file characteristics without reading the actual content. Only works within allowed directories.

list_allowed_directories

Returns the list of directories that this server is allowed to access. Subdirectories within these allowed directories are also accessible. Use this to understand which directories and their nested paths are available before trying to access files.

פרמטרים המסומנים ב-* הם חובה.

התקנה

הגדרות שעובדות, אחת לכל אפליקציה.

העתיקו את הבלוק של האפליקציה שלכם. כל אחד מהם הוא ההגדרה המדויקת שאיתה אימתנו את השרת.

Claude Desktop

פתחו את הקובץ ‎~/Library/Application Support/Claude/claude_desktop_config.json (בתוך Claude Desktop: Settings, אחר כך Developer, אחר כך Edit Config) והוסיפו:

{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-filesystem",
        "/Users/yourname/Documents"
      ]
    }
  }
}

החליפו את נתיב התיקיה בתיקיות שתרצו להרשות (אפשר לרשום כמה), ואז סגרו ופתחו מחדש את Claude Desktop. [7]

Claude Code

פקודה אחת בטרמינל:

claude mcp add filesystem -- npx -y @modelcontextprotocol/server-filesystem ~/Documents

כל מה שאחרי המקף הכפול הוא הפקודה המדויקת ש-Claude Code יריץ. החליפו את ‎~/Documents בתיקיה שתרצו להרשות. [8]

Cursor

הוסיפו ל-‎~/.cursor/mcp.json עבור כל הפרויקטים, או ל-‎.cursor/mcp.json בתוך פרויקט אחד:

{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-filesystem",
        "/Users/yourname/Documents"
      ]
    }
  }
}

Cursor קורא את הקובץ מחדש אחרי הפעלה מחדש. [9]

Routines

בלי קובץ JSON ובלי טרמינל. ב-Routines: Settings, אחר כך Assistant, אחר כך Connections, אחר כך Add MCP Server. העבירו את הטופס ל-Command (stdio) והזינו:

Name        Filesystem
Command     npx
Arguments   -y @modelcontextprotocol/server-filesystem /Users/yourname/Documents

הערך בשדה ה-Arguments מתפצל לפי רווחים, לכן השתמשו בנתיב תיקיה מלא בלי רווחים, שמתחיל ב-/Users. לחצו קודם על Test Connection: שרת תקין עונה עם מספר הכלים שלו. [10]

בלי טרמינל

איך מגדירים את שרת ה-MCP‏ Filesystem בלי טרמינל.

אם מעולם לא פתחתם את הטרמינל ואין לכם כוונה להתחיל, זה המסלול שלכם. Routines היא אפליקציית Mac שמריצה שרתי MCP בשבילכם: ממלאים שלושה שדות פעם אחת, והכלים של השרת זמינים ל-AI שלכם בצ׳אט ובשגרות מתוזמנות.

  1. 01

    התקינו את Routines

    הורידו את האפליקציה מ-getroutines.ai/download, גררו אותה ל-Applications והתחברו.

  2. 02

    פתחו את הגדרות ה-MCP

    לחצו על החשבון שלכם בתחתית סרגל הצד ובחרו Settings. פתחו את הקטע Assistant, אחר כך את הלשונית Connections, גללו אל MCP Servers ולחצו על Add MCP Server.

  3. 03

    בחרו Command (stdio)‎

    אם זה שרת ה-MCP הראשון שלכם, תופיע שורת Quick Add עם תבנית Filesystem שממלאת את הטופס כולו בשבילכם. אחרת העבירו את הטופס ל-Command (stdio): השרת הזה הוא פקודה, לא כתובת אינטרנט.

  4. 04

    כוונו אותו לתיקיה אחת

    Name: Filesystem. Command: npx. Arguments: ‎-y @modelcontextprotocol/server-filesystem, אחריו רווח והנתיב המלא של התיקיה שתרצו להרשות, למשל ‎/Users/yourname/Documents. כתבו את הנתיב במלואו, מתחיל ב-/Users, בלי רווחים.

  5. 05

    בדקו, ואז הוסיפו

    השאירו את Environment Variables ריק, השרת הזה לא צריך משתנים. לחצו Test Connection: Routines מפעילה את השרת ומדווחת כמה כלים היא מצאה, ארבעה עשר עבור השרת הזה. אחר כך לחצו Add Server.

  6. 06

    השתמשו בו

    הכלים עובדים בצ׳אט מיד. כדי לתת לשגרה מתוזמנת להשתמש בהם, פתחו את השגרה, מצאו את הכרטיס Tools & connections וסמנו את השרת תחת Apps.

רעיונות לשגרות

שגרות ששווה לתזמן.

אחרי שהשרת מחובר, שגרה מתוזמנת יכולה להשתמש בכלים שלו גם כשאתם לא מול המסך. העתיקו פרומפט, הדביקו אותו ב-Routines ובחרו שעה. הפרומפטים כתובים באנגלית בכוונה, מדביקים אותם בדיוק כפי שהם.

דוח קבצים של יום שישי

פרומפט

Every Friday at 16:00, look through my Documents folder, list every file added this week with a one-line note on what it is, and save the list as weekly-files.md in that same folder.

סדרן לתיקיית ההורדות

פרומפט

Every Monday at 9:00, list everything in my Downloads folder with sizes, flag anything larger than 500 MB or untouched for 30 days, and write the list to downloads-review.md so I can decide what to delete.

סידור ערב לפתקים

פרומפט

Every evening at 18:30, read the files changed today in my Notes folder, add a one-line summary to the top of each file that has none, and save the changes.

פתרון תקלות

השגיאות שנתקלנו בהן, ומה פתר אותן.

שגיאות אמיתיות שנלכדו בריצת האימות, מודפסות בדיוק כפי שהשרת החזיר אותן.

השרת עולה אבל נראה תקוע

מה רואים

Usage: mcp-server-filesystem [allowed-directory] [additional-directories...]
Note: Allowed directories can be provided via:
  1. Command-line arguments (shown above)
  2. MCP roots protocol (if client supports it)
At least one directory must be provided by EITHER method for the server to operate.
Secure MCP Filesystem Server running on stdio
Started without allowed directories - waiting for client to provide roots via MCP protocol

הפתרון

הפעלתם אותו בלי ארגומנט של תיקיה. הגרסה הנוכחית לא יוצאת: היא מדפיסה את ההערה הזו ומחכה שהלקוח יספק תיקיות דרך פרוטוקול ה-roots של MCP, שלא כל לקוח תומך בו (לקוח הבדיקה שלנו לא תמך). הוסיפו לפחות נתיב תיקיה אחד אחרי שם החבילה והפעילו מחדש.

Access denied על תיקיה שלא רשמתם

מה רואים

Access denied - path outside allowed directories: /etc not in /tmp, /private/tmp

הפתרון

עובד כמתוכנן: השרת מסרב לכל נתיב מחוץ לתיקיות שרשמתם בהפעלה. גרמנו לשגיאה הזו בכוונה כשביקשנו את /etc בזמן שרק /tmp היה מורשה. בקשו נתיב בתוך תיקיה מורשית, או הוסיפו את התיקיה לארגומנטים והפעילו מחדש. על Mac השרת עוקב אחרי קישורים סימבוליים בעצמו, ולכן התרת /tmp התירה בפועל גם את /private/tmp.

ENOENT בקריאת קובץ

מה רואים

ENOENT: no such file or directory, open '/private/tmp/definitely-does-not-exist-mcp-verify-2026.txt'

הפתרון

הנתיב לא קיים: בדרך כלל שגיאת הקלדה, קובץ ששמו שונה או קידומת נתיב לא מדויקת. בקשו מהעוזר להריץ קודם list_directory על תיקיית האב ולבחור את הקובץ מהרשימה.

לקוח ה-MCP לא מצליח להפעיל את השרת בכלל

הפתרון

הפקודה npx שייכת ל-Node.js. אם Node לא מותקן על ה-Mac, כל לקוח בעמוד הזה ייכשל בשלב ההפעלה עוד לפני שהשרת מספיק לומר משהו. התקינו Node מ-nodejs.org, הפעילו מחדש את לקוח ה-MCP ונסו שוב.

שאלות נפוצות

שאלות שאנשים שואלים.

מה זה שרת ה-MCP לקבצים?

זהו שרת הגישה לקבצים של פרויקט ה-Model Context Protocol עצמו. אחרי החיבור, עוזר AI כמו Claude יכול לקרוא, לחפש, לערוך ולסדר קבצים בתוך התיקיות שהרשיתם במפורש, ושום דבר מחוץ להן. הוא רץ כתהליך מקומי על ה-Mac שלכם ומדבר עם אפליקציית ה-AI על גבי stdio. [5][6]

אילו כלים כלולים בשרת ה-MCP לקבצים?

השרת הרץ חושף 14 כלים: קריאה (read_text_file, read_media_file, read_multiple_files, ולצדם read_file שהוכרז כמיושן), כתיבה ועריכה (write_file, edit_file), תיקיות (create_directory, list_directory, list_directory_with_sizes, directory_tree, move_file), חיפוש (search_files) ומטא-נתונים (get_file_info, list_allowed_directories). הטבלה למעלה היא פלט ה-tools/list החי, מילה במילה.

האם שרת ה-MCP לקבצים בטוח?

הוא תחום לתיקיות שאתם מציינים בהפעלה, ובדקנו את הגדר: בקשה ל-/etc בזמן שרק /tmp היה מורשה החזירה שגיאת גישה, המודפסת בקטע פתרון התקלות למעלה. הסיכון האמיתי הוא היקף: write_file דורס בלי אזהרה, לכן הרשו תיקיה אחת ספציפית, לא את כל תיקיית הבית, והרחיבו רק כשמשימה דורשת זאת.

צריך טרמינל כדי להגדיר אותו?

לא. ב-Routines ממלאים שלושה שדות בהגדרות ולוחצים Test Connection; המדריך למעלה מראה כל לחיצה. Claude Desktop דורש עריכה חד-פעמית של קובץ JSON קטן. רק Claude Code הוא כלי טרמינל מטבעו. [10][7]

הוא דורש מפתח API או חשבון?

לא. אין למה להירשם ואין אישור גישה להדביק: לכן זה שרת ה-MCP הקל ביותר להתחיל איתו. הפקודה npx מורידה את החבילה ממאגר החבילות הציבורי של npm בריצה הראשונה, כך שההפעלה הראשונה צריכה חיבור לאינטרנט; אחריה החבילה שמורה על ה-Mac. [1]

למה npm מציג גרסה 2026.7.10 אבל השרת מדווח 0.2.0?

שני המספרים אמיתיים ולכדנו את שניהם. תהליך הפרסום של npm מטביע גרסה מבוססת תאריך בזמן הפרסום, ולכן המאגר מציג 2026.7.10. על גבי MCP, השרת הרץ מדווח בעצמו את שמו וגרסתו הפנימית, secure-filesystem-server 0.2.0. אותו קוד, שתי שיטות מספור. [1]

אילו אפליקציות יכולות להשתמש בשרת ה-MCP לקבצים?

כל לקוח MCP שמסוגל להפעיל שרת stdio מקומי: Claude Desktop, Claude Code, Cursor ו-Routines כולם יכולים, וההגדרה המדויקת לכל אחד נמצאת למעלה. השרת עצמו זהה בכל לקוח; רק המקום שבו מדביקים את ההגדרה משתנה. [7][8][9][10]

מקורות

כל טענה חיצונית, עם קבלה.

כל מה שבעמוד הזה שלא ראינו בעצמנו בריצה מקושר כאן, עם התאריך שבו קראנו אותו. לגבי השאר, הריצה עצמה היא הקבלה.

  1. [1]

    npm registry: @modelcontextprotocol/server-filesystemנקרא בתאריך 2026-08-02

    Latest version 2026.7.10, published 2026-07-10.

  2. [2]

    npm downloads API: last weekנקרא בתאריך 2026-08-02

    385,247 downloads for the week ending 2026-08-01.

  3. [3]

    GitHub: modelcontextprotocol/serversנקרא בתאריך 2026-08-02

    89,138 stars and a push dated 2026-08-02 at access time, per the GitHub API.

  4. [4]

    modelcontextprotocol/servers LICENSE fileנקרא בתאריך 2026-08-02

    The project states it is transitioning from the MIT License to Apache-2.0; docs are CC-BY-4.0.

  5. [5]

    Filesystem server README (src/filesystem)נקרא בתאריך 2026-08-02
  6. [6]

    Filesystem server source: index.tsנקרא בתאריך 2026-08-02

    Instantiates StdioServerTransport: the server speaks stdio.

  7. [7]

    modelcontextprotocol.io: Connect to local MCP serversנקרא בתאריך 2026-08-02

    The official Claude Desktop quickstart; its example server is this one.

  8. [8]

    Claude Code docs: MCPנקרא בתאריך 2026-08-02

    The claude mcp add syntax for local stdio servers.

  9. [9]

    Cursor docs: Model Context Protocolנקרא בתאריך 2026-08-02

    The mcp.json shape and file locations.

  10. [10]

    Routines: Connectorsנקרא בתאריך 2026-08-02

    How Routines runs one-click OAuth connectors and any MCP server.

העמוד הזה מתאר את Filesystem כפי שהתנהג בריצה מתוארכת אחת על Mac אחד. גרסאות משתנות: אם משהו כאן כבר לא תואם למה שאתם רואים, תאריך הלכידה בראש העמוד אומר בן כמה הצילום.

מאחורי המדריך הזה

Routines, האפליקציה שמאחורי המדריך הזה, מריצה שרתי MCP כמו זה בלי טרמינל: כך עובדים המחברים. הפתקים שלכם נשארים קובצי markdown על ה-Mac שלכם, אין חשבון ענן לשלם, והיא עובדת גם בלי אינטרנט. להורדת Routines