/ الدليل / الملعب / Filesystem
● رسمي modelcontextprotocol ⚡ فوري

Filesystem

بواسطة modelcontextprotocol · modelcontextprotocol/servers

امنح Claude وصولاً معزولاً للقراءة والكتابة إلى مجلد واحد — أعد هيكلة الكود ومعالجة المستندات وتحليل السجلات دون Shell

خادم Filesystem MCP المرجعي. يوصل مجلداً واحداً أو أكثر كجذور؛ كل استدعاء أداة محصور بقسوة ضمن تلك الجذور حتى لا يتمكن Claude من الوصول إلى مفاتيح SSH الخاصة بك عبر ../. يدعم تحرير النصوص والبيانات الثنائية والبحث وعلى مستوى السطر. أكثر خادم MCP تثبيتاً لسبب وجيه.

لماذا تستخدمه

الميزات الأساسية

عرض مباشر

كيف يبدو في الممارسة

filesystem.replay ▶ جاهز
0/0

التثبيت

اختر العميل

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-filesystem",
        "/workspace"
      ]
    }
  }
}

افتح Claude Desktop → Settings → Developer → Edit Config. أعد التشغيل بعد الحفظ.

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-filesystem",
        "/workspace"
      ]
    }
  }
}

يستخدم Cursor نفس مخطط mcpServers مثل Claude Desktop. إعدادات المشروع أولى من الإعدادات العامة.

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-filesystem",
        "/workspace"
      ]
    }
  }
}

انقر على أيقونة MCP Servers في شريط Cline الجانبي، ثم "Edit Configuration".

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-filesystem",
        "/workspace"
      ]
    }
  }
}

نفس الصيغة مثل Claude Desktop. أعد تشغيل Windsurf لتطبيق التغييرات.

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "filesystem",
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-filesystem",
        "/workspace"
      ]
    }
  ]
}

يستخدم Continue مصفوفة من كائنات الخادم بدلاً من خريطة.

~/.config/zed/settings.json
{
  "context_servers": {
    "filesystem": {
      "command": {
        "path": "npx",
        "args": [
          "-y",
          "@modelcontextprotocol/server-filesystem",
          "/workspace"
        ]
      }
    }
  }
}

أضف إلى context_servers. يعيد Zed التحميل تلقائيًا عند الحفظ.

claude mcp add filesystem -- npx -y @modelcontextprotocol/server-filesystem /workspace

أمر من سطر واحد. تحقق باستخدام claude mcp list. احذف باستخدام claude mcp remove.

حالات الاستخدام

استخدامات عملية: Filesystem

كيفية إعادة هيكلة دالة عبر قاعدة الكود بأكملها دون كسر أي شيء

👤 المهندسون الذين يعيدون تسمية أو تشكيل واجهة برمجية تُستخدم في ملفات كثيرة ⏱ ~20 min intermediate

متى تستخدمه: تحتاج إلى إعادة تسمية دالة أو تغيير توقيعها أو deinline دالة مساعدة — وهي مستخدمة في 30+ ملف عبر المستودع

المتطلبات الأساسية
  • مستودع git نظيفgit status لا يظهر أي شيء معين — حتى تتمكن من استخدام git diff للمراجعة وgit restore إذا لزم
  • جذر نظام الملفات مقيد بالمستودع — ابدأ باستخدام npx -y @modelcontextprotocol/server-filesystem /abs/path/to/repo
الخطوات
  1. ابحث عن كل موقع استدعاء
    ابحث في قاعدة الكود عن كل استخدام لـ getUserProfile(. جمّع المطابقات حسب الملف وأعطني عدداً لكل ملف.✓ تم النسخ
    → قائمة الملفات مع أعداد المطابقات، بدون تمييز الاختبارات عن المصدر
  2. اختبر التعديل على ملف واحد
    أريني كيف سيبدو التعديل في src/api/users.ts — فرق، وليس الملف كاملاً. لا تكتب بعد.✓ تم النسخ
    → رقعة فرق بسيطة، وليس إعادة كتابة الملف بالكامل
  3. طبّق على جميع الملفات وأبلغ
    طبّق نفس التحويل على كل ملف من الخطوة 1. استخدم edit_file (على مستوى السطر)، وليس write_file (الكتابة فوق). أخبرني بأي ملف لم تطابق فيه النمط بنظافة.✓ تم النسخ
    → سجل نجاح/تخطي لكل ملف

النتيجة: فرق git مركزاً وقابلاً للمراجعة يمكنك تشغيل الاختبارات ضده — بدون إعادة كتابة الملف بأكمله بشكل مفاجئ

المزالق
  • Claude يستخدم write_file ويسقط صامتاً نصف الملف عندما يكون التعديل معقداً — تطلب بوضوح edit_file للتغييرات الموضعية؛ اسمح بـ write_file فقط للملفات التي يتم إنشاؤها من جديد
  • المطابقة تصيب الكود غير ذي الصلة (على سبيل المثال getUserProfileAvatar) — ربط البحث: getUserProfile( بالقوس اللاحق، أو استخدم regex حد الكلمة
اجمعها مع: git · github

تصنيف عطل من خلال قراءة ملفات السجلات الإنتاجية محلياً

👤 مهندسو على الخط الأول مع سجلات على القرص ⏱ ~15 min beginner

متى تستخدمه: لقد قمت بتنزيل مجموعة سجلات من حادث عميل وتحتاج إلى العثور على الإبرة دون معرفة grep

المتطلبات الأساسية
  • السجلات على القرص — قم بالتنزيل/فك الضغط ضمن مجلد /incidents/<ticket>/ مخصص
الخطوات
  1. احصل على نظرة عامة هيكلية
    قائمة الملفات الموجودة تحت /incidents/TICKET-1234/. لكل ملف سجل، أظهر الحجم والطابع الزمني الأول والأخير بداخله.✓ تم النسخ
    → مخزون مقيد بالوقت
  2. ابحث عن مجموعة الأخطاء
    ابحث في جميع ملفات .log عن النمط ERROR|FATAL|panic. أعطني أعلى 10 دقائق كثافة من الضربات.✓ تم النسخ
    → نافذة زمنية مضيقة إلى دقائق، وليس ساعات
  3. اقرأ السياق حول أول fatal
    اقرأ 50 سطراً من السياق حول أول سطر FATAL في app.log. اشرح ما كان النظام يفعله قبل أن ينهار مباشرة.✓ تم النسخ
    → إعادة بناء سردي، وليس ترديد السجل

النتيجة: خط زمني من 5 جمل يمكنك لصقه في وثيقة الحادث

المزالق
  • ملفات السجلات الكبيرة (>50MB) تفجر سياق النموذج — اطلب الاستخراج على أساس head/tail و grep فقط؛ لا تطلب من Claude قراءة الملف بالكامل على أي شيء كبير
اجمعها مع: sentry · github

اطرح أسئلة حول مجلد من ملفات PDF والـ Markdown والمستندات

👤 الباحثون والمحللون الذين لديهم مجموعة من مواد مرجعية ⏱ ~15 min beginner

متى تستخدمه: لديك 50 ورقة/عقد/تقرير في مجلد وتحتاج إلى استخراج حقيقة واحدة محددة أو المقارنة بينها

المتطلبات الأساسية
  • المستندات المنظمة في مجلد واحد — تسطيح في مجلد واحد أو شجرة ضحلة؛ Claude يعبر بشكل أفضل على الهياكل المسطحة
الخطوات
  1. فهرس المجلد
    قائمة كل ملف تحت /research/2026-market-study/. لكل واحد، أخبرني باسم الملف وأول 200 حرف.✓ تم النسخ
    → مخزون مع معاينات سريعة
  2. اطرح السؤال الحقيقي
    أي من هذه المستندات يذكر 'contractual indemnity cap'؟ لكل ضربة، اقتبس الجملة الدقيقة وأعطني اسم الملف.✓ تم النسخ
    → الاستشهادات مع اسم الملف، وليس مجرد انطباعات
  3. تركيب عبر المستندات
    قارن حدود التعويض عبر الوثائق الثلاث التي تحتويها. أيها الأكثر ملائمة لنا ولماذا؟✓ تم النسخ
    → مقارنة جنباً إلى جنب مع الاقتباسات المباشرة

النتيجة: إجابات مع استشهادات اسم الملف + الاقتباس يمكنك التحقق منها في 30 ثانية

المزالق
  • ملفات PDF الممسوحة ضوئياً تستند إلى الصور — البحث حسب المحتوى يفشل — قم بتشغيل OCR أولاً (على سبيل المثال ocrmypdf) أو استخدم MCP PDF مخصص؛ لاحظ الملفات 'غير القابلة للبحث' قبل البدء
  • Claude يختصر ويفقد نسب المصدر — اطلب دائماً اسم الملف + اقتباس دقيق في المطالبة؛ رفض الإجابات بدونها
اجمعها مع: memory

نص مشروع جديد من مواصفات في دور واحد

👤 المهندسون الذين يبدؤون خدمة/مكتبة/نموذج أولي جديد ⏱ ~10 min beginner

متى تستخدمه: لديك فقرة واحدة من المواصفات وتريد تجسيد المحضر (المجلدات و package.json و README و الاختبارات) دون نسخ من repo نموذج

المتطلبات الأساسية
  • دليل مستهدف فارغmkdir /projects/newthing والإشارة إلى جذر نظام الملفات في الوالد
الخطوات
  1. توافق على التخطيط قبل الكتابة
    أريد أداة Node CLI من TypeScript تفعل X. اقترح هيكل المجلد ولائحة كل ملف ستنشئ مع سطر واحد الغرض. لا تكتب بعد.✓ تم النسخ
    → خطة ملف تلو الملف — يمكنك الاعتراض قبل لمس القرص
  2. اكتب الملفات
    يبدو حسناً. أنشئ جميع تلك الملفات تحت /projects/newthing/. استخدم محتوى بسيط وعيد الغرض — لا تعليقات عنصر نائب، لا 'TODO' stubs.✓ تم النسخ
    → الملفات على القرص، ويجب أن تمر tsc --noEmit و npm test في المحاولة الأولى
  3. تحقق بإعادة قراءة
    اقرأ كل ملف أنشأت للتو وتأكد من أن المشروع سيمر tsc --noEmit و npm test. إصلاح أي شيء لن يمر.✓ تم النسخ
    → فحص ذاتي مع إصلاحات ملموسة، وليس التلويح باليد

النتيجة: مشروع هيكلي عامل في 3 دقائق بدلاً من 30

المزالق
  • Claude يكتب الملفات ثم ينسى ما كتبه في منتصف الجلسة — اطلب منها عمل خطة الملف أولاً، ثم الكتابة؛ إعادة القراءة في النهاية تلتقط الانجراف
اجمعها مع: git · github

التركيبات

اجمعها مع خوادم MCP أخرى لتحقيق نتائج x10

filesystem + github

تحرير الملفات محلياً ودفع فرع وفتح PR دون مغادرة الدردشة

أصلح الخطأ الإملائي في src/utils/format.ts:42، ثم ادفع فرع جديد fix/typo-format وافتح PR بعنوان 'fix: typo in format.ts'.✓ تم النسخ
filesystem + git

أجرِ التعديلات واستعرض الفرق وأرتكب — جميعها داخل Claude

أعد هيكلة المساعدين المكررين الثلاثة في src/ إلى util مشترك واحد. أريني الفرق قبل الالتزام، ثم الالتزام برسالة نظيفة.✓ تم النسخ
filesystem + sqlite

اقرأ CSV من القرص وحمله في جدول SQLite للتحليل

اقرأ /data/orders.csv، استدلل الأنواع، وحمله في /data/analysis.db كجدول orders.✓ تم النسخ

الأدوات

ما يوفره هذا الـ MCP

الأداةالمدخلاتمتى تستدعيهاالتكلفة
read_text_file path: str, head?: int, tail?: int اقرأ ملف نصي؛ استخدم head/tail لتجنب تحميل الملفات الضخمة free
read_media_file path: str اقرأ الصور وملفات PDF والصوت كـ base64 لإدخال متعدد الأنماط free
read_multiple_files paths: str[] اقرأ الملفات ذات الصلة دفعة واحدة في دور واحد (أسرع من استدعاءات N) free
write_file path: str, content: str إنشاء ملف جديد أو استبدال كامل — تدميري free
edit_file path: str, edits: [{oldText, newText}], dryRun?: bool تعديلات أأمن على مستوى السطر؛ يفضل دائماً على write_file للملفات الموجودة free
create_directory path: str عمل دليل (تكراري، نمط mkdir -p) free
list_directory path: str ls غير متكرر free
directory_tree path: str نظرة عامة على هيكل المشروع في لمحة free
move_file source: str, destination: str إعادة تسمية أو نقل free
search_files path: str, pattern: str, excludePatterns?: str[] بحث محتوى تكراري — مثل grep free
get_file_info path: str إحصائية ملف دون قراءة محتويات free
list_allowed_directories none تأكيد جذور الخادم المطلقة عند البدء free

التكلفة والحدود

تكلفة التشغيل

حصة API
غير محدود — إنه I/O محلي
الرموز لكل استدعاء
يعتمد على حجم الملف — الميزانية ~1 رمز لكل 4 أحرف من محتوى الملف
التكلفة المالية
مجاني
نصيحة
استخدم search_files و head/tail بدلاً من قراءة الملفات بالكامل. تفريغ سجل 2MB في السياق يكلف ~500k tokens.

الأمان

الصلاحيات والأسرار ونطاق الأثر

الحد الأدنى من الصلاحيات: filesystem-read filesystem-write (إذا كان طفري)
تخزين بيانات الاعتماد: لا بيانات اعتماد — الوصول عبر دلائل الجذر التي تمت تمريرها كـ args
نقل البيانات الخارجي: لا شيء من الخادم — محتويات الملف شحن لموفر LLM الخاص بك عبر عميل MCP كسياق
لا تمنح أبدًا: root=/ root=$HOME root=/etc أو /var

استكشاف الأخطاء

الأخطاء الشائعة وحلولها

Error: Path is not within allowed directories

الملف خارج كل جذر تم تمريره عند البدء. أعد تشغيل الخادم بـ arg جذر إضافي، أو استخدم list_allowed_directories لترى ما هو مسموح بالفعل.

تحقق: اطلب من Claude استدعاء `list_allowed_directories`
ENOENT: no such file or directory

خطأ مسار أو افتراض دليل عمل خاطئ. استخدم directory_tree على الجذر لترى التخطيط الحقيقي.

edit_file: oldText not found

يجب أن يطابق نمط oldText تماماً بما في ذلك المسافات البيضاء. اطلب من Claude read_text_file أولاً ونسخ السلسلة الفرعية الدقيقة.

Huge file freezes the client

لا تقرأ ملفات كاملة أكبر من بضعة MB. استخدم معاملات head/tail على read_text_file، أو search_files للعثور على الأسطر ذات الصلة فقط.

تحقق: تحقق من حجم الملف باستخدام `get_file_info` أولاً

البدائل

Filesystem مقابل البدائل

البديلمتى تستخدمهاالمقايضة
git MCPتحتاج إلى عمليات معرفة الإصدار (diff وblame و log) بدلاً من I/O ملف خاملا أدوات كتابة؛ قراءة فقط من خلال عدسة git
GitHub MCPتعيش الملفات في repo بعيد ولا تريد clone محلييتطلب PAT؛ كمون لكل ملف أعلى بكثير من القرص المحلي
JetBrains MCPتريد ظهور التعديلات في مثيل IDE قيد التشغيل الخاص بك مع أدوات إعادة التشكيليتطلب IDE JetBrains مفتوح؛ أثقل من نظام الملفات العادي

المزيد

الموارد

📖 اقرأ ملف README الرسمي على GitHub

🐙 تصفح القضايا المفتوحة

🔍 تصفح أكثر من 400 خادم MCP و Skills