/ الدليل / الملعب / MongoDB
● رسمي mongodb-js 🔑 يتطلب مفتاحك

MongoDB

بواسطة mongodb-js · mongodb-js/mongodb-mcp-server

اسمح لـ Claude بالاستعلام والتجميع وإدارة MongoDB Atlas أو المجموعات المستضافة ذاتياً — مع إعدادات افتراضية للقراءة فقط يمكنك تخفيفها لكل أداة.

يغطي MCP الرسمي من MongoDB كلاً من برنامج التشغيل (CRUD + التجميع على أي مجموعة) ومستوى التحكم في Atlas (قائمة المشاريع والمجموعات والمستخدمين). بشكل افتراضي يعمل في الوضع "للقراءة فقط"؛ قم بتفعيل عمليات الكتابة صراحةً لكل عائلة أوامر عند الحاجة.

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

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

عرض مباشر

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

mongodb.replay ▶ جاهز
0/0

التثبيت

اختر العميل

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

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

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

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

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "mongodb": {
      "command": "npx",
      "args": [
        "-y",
        "mongodb-mcp-server"
      ]
    }
  }
}

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

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "mongodb": {
      "command": "npx",
      "args": [
        "-y",
        "mongodb-mcp-server"
      ]
    }
  }
}

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

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "mongodb",
      "command": "npx",
      "args": [
        "-y",
        "mongodb-mcp-server"
      ]
    }
  ]
}

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

~/.config/zed/settings.json
{
  "context_servers": {
    "mongodb": {
      "command": {
        "path": "npx",
        "args": [
          "-y",
          "mongodb-mcp-server"
        ]
      }
    }
  }
}

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

claude mcp add mongodb -- npx -y mongodb-mcp-server

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

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

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

الإجابة على أسئلة العمل باستخدام خطوط أنابيب تجميع Mongo

👤 مديرو المنتجات والمحللون على منتج مدعوم بـ Mongo ⏱ ~15 min beginner

متى تستخدمه: تحتاج إلى عدد أو مسارات بيع أو قوائم أفضل N ولا تريد تعلم بناء جملة $group/$lookup.

المتطلبات الأساسية
  • سلسلة اتصال للقراءة فقط — Atlas: أنشئ مستخدم قاعدة بيانات بـ readAnyDatabase. مستضاف ذاتياً: مستخدم بدور read على قواعس البيانات ذات الصلة.
الخطوات
  1. اكتشف المجموعات
    اعرض قائمة قواعس البيانات، ثم لـ app_prod اعرض جميع المجموعات وعدد المستندات التقريبي لكل منها.✓ تم النسخ
    → فهرس المجموعة
  2. خذ عينة واستنتج المخطط
    خذ 20 مستند من users و orders. صف الحقول والأنواع التي تراها.✓ تم النسخ
    → وصف المخطط لكل مجموعة
  3. قم بتشغيل التجميع الفعلي
    كم عدد الطلبات التي تم وضعها لكل بلد في آخر 30 يوم؟ رتب تنازلياً وحدد بـ 20.✓ تم النسخ
    → جدول النتائج مع خط الأنابيب المستخدم

النتيجة: إجابات العمل مع الحفاظ على خط الأنابيب الدقيق لإعادة التشغيل.

المزالق
  • التجميعات بدون مؤشرات يمكن أن تفحص مجموعات ضخمة — تحقق دائماً من .explain() أولاً وتأكد من وجود مؤشر داعم؛ وإلا فأضف $match بدقة على حقل مفهرس في أعلى خط الأنابيب
اجمعها مع: notion

استنتج وثق المخطط الفعلي لمجموعة فوضوية

👤 مهندس جديد يتم توظيفه على Mongo غير موثق ⏱ ~25 min intermediate

متى تستخدمه: كانت المجموعة بدون مخطط لمدة 3 سنوات ولا أحد يعرف أي الحقول موجودة فعلاً.

الخطوات
  1. خذ عينة واسعة
    خذ 500 مستند من events. لكل حقل من المستوى الأعلى، أبلغ عن نسبة الحضور ونوع(ها) وقيمة نموذجية.✓ تم النسخ
    → مصفوفة الحضور/النوع حسب الحقل
  2. ابحث عن انحراف المخطط
    أي الحقول لها أنواع متعددة عبر المستندات؟ اجمع حسب (الحقل والنوع) وعد.✓ تم النسخ
    → قائمة الحقول متعددة الأشكال
  3. إنتج نوع TypeScript أو مخطط JSON
    أنشئ واجهة TypeScript للحقول 'المستقرة' (≥95% حضور، نوع واحد). ضع علامة على الباقي كاختياري أو غير معروف.✓ تم النسخ
    → تعريف نوع قابل للاستخدام

النتيجة: مخطط موثق مع خصائص معروفة — الأساس للترحيل أو المدقق.

المزالق
  • قد تفقد 500 مستند متغيرات نادرة لكن مهمة — خذ عينات حسب دلو زمني (واحد شهرياً) لالتقاط الأشكال القديمة
اجمعها مع: filesystem

قم بتدقيق مشاريع Atlas الخاصة بك للأمان والتكلفة

👤 فرق DevOps/المنصة على Atlas ⏱ ~20 min intermediate

متى تستخدمه: ربع سنوياً: تحقق من المجموعات التي تتجاوز الحد، وأيها لديها قوائم سماح IP واسعة، ومن لديه وصول.

المتطلبات الأساسية
  • مفتاح Atlas API عام+خاص — cloud.mongodb.com → Organization Access → API keys؛ محدود بالمشروع
الخطوات
  1. اعرض المشاريع + المجموعات
    اعرض كل مشروع وداخل كل منها كل مجموعة مع المستوى والمنطقة وحالة النسخة الاحتياطية.✓ تم النسخ
    → قائمة جرد كاملة
  2. ضع علامة على الوصول المخاطر
    لكل مشروع، صرّح قائمة وصول IP. ضع علامة على أي إدخال 0.0.0.0/0 مع اسم المشروع.✓ تم النسخ
    → تقرير الوصول المخاطر
  3. اقترح تعديل الحجم
    أي مجموعة على M30+ بأقل من 10GB مستخدمة؟ أوصِ بالخفض.✓ تم النسخ
    → قائمة توفير التكاليف

النتيجة: قائمة إصلاح قصيرة لفريقي الأمان والمالية.

المزالق
  • نطاق مفتاح API ضيق جداً لرؤية كل مشروع — استخدم مفتاح المستوى التنظيمي في الوضع "للقراءة فقط" بدلاً من مفتاح المستوى المشروع
اجمعها مع: notion

اقترح وقم بتنفيذ تنظيف بيانات لمرة واحدة بأمان

👤 مهندس خلفي يصلح خلل بيانات ⏱ ~30 min advanced

متى تستخدمه: سبب خلل كتابات سيئة؛ تحتاج إلى إصلاح ~10k مستند لكن يجب عدم حذف الأخطاء.

المتطلبات الأساسية
  • مستخدم قابل للكتابة (محدود قاعدة البيانات المستهدفة فقط) — Atlas: دور بـ readWrite على تلك قاعدة البيانات فقط، لا شيء آخر
  • --read-only معطل صراحةً لهذه الجلسة — ابدأ MCP بدون --read-only
الخطوات
  1. حدد الإصلاح بعدد
    عد المستندات في users حيث status='active' AND last_login IS NULL AND created_at < 2024-01-01. لا تعدّل أي شيء.✓ تم النسخ
    → عدد التأثر المتوقع، مثل 9,873
  2. تشغيل تجريبي للتحديث
    أظهر خط أنابيب updateMany الذي ستشغله (المرشح + $set)، وأظهر 5 مستندات نموذجية سيتم تغييرها. لا تنفذ.✓ تم النسخ
    → معاينة المرشح + التعيين
  3. نفذ مع حد والتحقق
    شغّل التحديث. ثم أعد تشغيل العدد الأصلي — يجب أن يكون 0. أبلغ عن matchedCount و modifiedCount.✓ تم النسخ
    → الأعداد تطابق التوقع؛ تحقق من أن الاستعلام يعود بـ 0

النتيجة: إصلاح نظيف وقابل للتدقيق مع الأعداد قبل وبعد.

المزالق
  • updateMany بمرشح سيء يحذف المجموعة كلها — شغّل المرشح كـ countDocuments أولاً؛ إذا كان العدد مفاجئاً، توقف وتحقق
  • لا توجد نسخة احتياطية من الشريحة المتأثرة — انسخ المستندات المطابقة إلى مجموعة <collection>_backup_<date> قبل التحديث
اجمعها مع: filesystem

اقترح مؤشرات مفقودة من أنماط الاستعلامات البطيئة

👤 مهندسو الخلفية يبحثون عن مشاكل الأداء ⏱ ~25 min advanced

متى تستخدمه: تطبيقك بطيء على استعلامات Mongo؛ تريد خطة مؤشر موجهة، وليس رمية عشوائية.

الخطوات
  1. تحقق من المؤشرات الموجودة
    لـ orders و users، اعرض كل مؤشر مع مفاتيحه والحجم على القرص.✓ تم النسخ
    → فهرس المؤشرات
  2. توصيف استعلام محدد
    شغّل .explain('executionStats') على هذا الاستعلام [الصق]. أبلغ عن totalDocsExamined مقابل nReturned وخطة المرحلة الفائزة.✓ تم النسخ
    → مخرجات الشرح
  3. اقترح أصغر مؤشر جديد
    بناءً على تلك الخطة، اقترح مؤشر واحد بالضبط سيحول هذا إلى IXSCAN. برّر ترتيب الحقل.✓ تم النسخ
    → أمر createIndex ملموس مع المبرر

النتيجة: توصية مؤشر واحدة قابلة للتبرير لكل استعلام بطيء — لا جدار منها.

المزالق
  • الإفراط في الفهرسة يقتل إنتاجية الكتابة ويضخم التخزين — أضف مؤشراً يخدم >1 استعلام عالي حركة؛ يجب أن تعكس المؤشرات المركبة ترتيب ESR (Equality, Sort, Range)

التركيبات

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

mongodb + notion

جمّع، ثم انشر تقرير قابل للمشاركة

احسب MAU لكل مستوى خطة لآخر 6 أشهر وأنشئ صفحة Notion في 'Growth / Monthly' مع النتائج كجدول.✓ تم النسخ
mongodb + filesystem

احسب نسخة احتياطية من شريحة مجموعة كـ JSONL قبل التنظيف

ابحث عن جميع المستندات في users المطابقة <filter>، احفظ إلى /backups/users-cleanup-<date>.jsonl، ثم احذفها.✓ تم النسخ
mongodb + postgres

التوفيق بين قواعس البيانات عند الترحيل من Mongo

لكل user_id في Mongo users، تحقق مما إذا كان يوجد صف مقابل في Postgres users. أبلغ عن عدم التطابقات.✓ تم النسخ

الأدوات

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

الأداةالمدخلاتمتى تستدعيهاالتكلفة
list_databases بداية أي جلسة استكشاف free
list_collections database: str فهرس قاعدة بيانات free
find database, collection, filter?, projection?, sort?, limit? اقرأ المستندات — أداة القراءة الرئيسية free
aggregate database, collection, pipeline: stage[] التجميع والربط والتحليلات free
count database, collection, filter? دائماً قبل عمليات الكتابة المدمرة — أكد النطاق free
insert_one / insert_many database, collection, document(s) يتطلب --read-only معطل writes
update_one / update_many database, collection, filter, update عاين دائماً المرشح مع العدد أولاً writes
delete_one / delete_many database, collection, filter خطير — يتطلب تأكيد المستخدم الصريح writes
list_indexes database, collection تحليل الأداء قبل اقتراح مؤشرات جديدة free
atlas_list_projects / atlas_list_clusters تدقيق مستوى التحكم في Atlas free

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

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

حصة API
Driver: محدود بحد اتصال المجموعة. Atlas API: 100 طلب/دقيقة لكل مفتاح.
الرموز لكل استدعاء
Find/aggregate: يتغير حسب حجم النتيجة؛ استخدم الإسقاطات والحدود.
التكلفة المالية
مجاني ضد المجموعة الموجودة. Atlas له مستوى M0 مجاني للاختبار.
نصيحة
صرّح دائماً فقط الحقول التي تحتاجها؛ تجد غير المحدودة تعود مستندات كبيرة تستهلك السياق والخروج.

الأمان

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

الحد الأدنى من الصلاحيات: readAnyDatabase (قراءة فقط) أو read على قواعس بيانات محددة
تخزين بيانات الاعتماد: MDB_MCP_CONNECTION_STRING للبرنامج؛ MDB_MCP_API_CLIENT_ID + MDB_MCP_API_CLIENT_SECRET لـ Atlas
نقل البيانات الخارجي: البرنامج يتصل بمجموعتك؛ Atlas API إلى cloud.mongodb.com فقط
لا تمنح أبدًا: dbAdminAnyDatabase userAdminAnyDatabase root

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

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

MongoServerError: Authentication failed

سلسلة الاتصال user/password خاطئة أو المستخدم لا يملك قاعدة بيانات الملائمة. أضف ?authSource=admin لـ Atlas.

تحقق: mongosh '$MDB_MCP_CONNECTION_STRING' --eval 'db.runCommand({ping:1})'
MongoNetworkError: ETIMEDOUT

IP ليست في قائمة السماح بـ Atlas. أضف عنوان IP الحالي في Atlas → Network Access.

تحقق: curl ifconfig.me ثم قارن
not authorized on admin to execute command listDatabases

الدور ضيق جداً. امنح clusterMonitor أو حدد الأدوات على قاعدة بيانات محددة عبر listCollections بدلاً من ذلك.

Write rejected / running in read-only mode

أعد تشغيل MCP بدون --read-only؛ افعل هذا فقط لجلسة الإصلاح المحددة.

البدائل

MongoDB مقابل البدائل

البديلمتى تستخدمهاالمقايضة
Postgres MCPأنت على Postgres، أو تفكر في الترحيل من MongoRelational — مرونة نمط المستند اختفت
DBHubتحتاج إلى MCP واحد لـ Mongo + عدة قواعس بيانات SQLتغطية ميزات Mongo أقل عمقاً من الخادم الرسمي

المزيد

الموارد

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

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

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