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

SQLite

بواسطة modelcontextprotocol · modelcontextprotocol/servers

الاستعلام عن ملف SQLite محلي. مثالي للمشاريع الشخصية والملفات المُصدَّرة أو التحليلات على ملفات اليوميات والسجلات وملفات قواعد البيانات.

مرجع SQLite MCP. يشير إلى ملف SQLite واحد ويعرّض فحص المخطط والاستعلامات المقروءة والاستعلامات المكتوبة (قابلة للتكوين). إعداد صفري، بدون خادم، بدون شبكة — وعلى عكس Postgres MCP، يمكنه أيضاً الكتابة إذا سمحت بذلك.

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

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

عرض مباشر

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

sqlite.replay ▶ جاهز
0/0

التثبيت

اختر العميل

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "sqlite": {
      "command": "uvx",
      "args": [
        "mcp-server-sqlite",
        "--db-path",
        "/data/sample.db"
      ]
    }
  }
}

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

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "sqlite": {
      "command": "uvx",
      "args": [
        "mcp-server-sqlite",
        "--db-path",
        "/data/sample.db"
      ]
    }
  }
}

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

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "sqlite": {
      "command": "uvx",
      "args": [
        "mcp-server-sqlite",
        "--db-path",
        "/data/sample.db"
      ]
    }
  }
}

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

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "sqlite": {
      "command": "uvx",
      "args": [
        "mcp-server-sqlite",
        "--db-path",
        "/data/sample.db"
      ]
    }
  }
}

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

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "sqlite",
      "command": "uvx",
      "args": [
        "mcp-server-sqlite",
        "--db-path",
        "/data/sample.db"
      ]
    }
  ]
}

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

~/.config/zed/settings.json
{
  "context_servers": {
    "sqlite": {
      "command": {
        "path": "uvx",
        "args": [
          "mcp-server-sqlite",
          "--db-path",
          "/data/sample.db"
        ]
      }
    }
  }
}

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

claude mcp add sqlite -- uvx mcp-server-sqlite --db-path /data/sample.db

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

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

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

تحليل ملف CSV/JSON بتحميله في SQLite

👤 محللون ومهندسون يستكشفون البيانات المُصدَّرة ⏱ ~15 min beginner

متى تستخدمه: أرسل لك شخص ملف CSV يحتوي على 200 ألف صف والسؤال 'أي قطاع يحول الأفضل؟' — كبير جداً لجداول البيانات، صغير جداً لقاعدة بيانات حقيقية.

المتطلبات الأساسية
  • ملف المصدر على القرص — احفظ كـ .csv أو .json في مجلد عمل
  • مسار ملف SQLite فارغ — اختر موقعاً مثل /tmp/analysis.db؛ سينشئه MCP
الخطوات
  1. إنشاء الجدول والتحميل
    أنشئ جدول signups في /tmp/analysis.db مطابقاً لأعمدة /data/signups.csv. حمّل جميع الصفوف. أخبرني بعدد الصفوف.✓ تم النسخ
    → جدول تم إنشاؤه، عدد الصفوف يطابق الملف
  2. استكشاف المخطط
    ما الأعمدة الموجودة؟ لكل واحد، ما توزيع القيم (أعلى 5 قيم متميزة للفئات؛ الحد الأدنى/الحد الأقصى/المتوسط للأرقام)؟✓ تم النسخ
    → ملف تعريف لكل عمود
  3. الإجابة على السؤال الفعلي
    جمّع حسب signup_source. لكل واحد، احسب: إجمالي التسجيلات ومعدل التحويل (التسجيلات مع completed_onboarding=true / الإجمالي). رتّب حسب معدل التحويل.✓ تم النسخ
    → جدول على مستوى القرار مع SQL معروض

النتيجة: إجابات قابلة للدفاع عن في 5 دقائق، مع ملف .db يمكنك الاستعلام عنه مجدداً عند ظهور أسئلة جديدة.

المزالق
  • أعمدة CSV تُكتب الأنواع تلقائياً بشكل خاطئ (الأرقام كـ TEXT) — بعد التحميل، قم بتشغيل PRAGMA table_info(signups) و CAST أو أعد إنشاء الأعمدة بأنواع صريحة إذا لزم الأمر
  • سلاسل التواريخ لا ترتب/تقارن بشكل صحيح كـ TEXT — خزّن التواريخ بصيغة ISO 8601 (YYYY-MM-DDTHH:MM:SSZ) بحيث يكون المعجم = الترتيب الزمني؛ أو استخدم julianday() للحسابات
اجمعها مع: filesystem · antv-chart

فحص وتحرير قاعدة بيانات SQLite لتطبيق شخصي

👤 المطورون الذين يبنون أدوات CLI أو تطبيقات اليوميات أو البرامج المحلية أولاً ⏱ ~10 min beginner

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

الخطوات
  1. مسح المخطط
    اعرض كل جدول في /Users/me/Library/Application Support/MyApp/data.db. لكل واحد، أظهر المخطط وعدد الصفوف.✓ تم النسخ
    → جرد قاعدة البيانات المباشرة للتطبيق
  2. التحقق من صف
    ابحث عن سجل المستخدم حيث البريد = '[email protected]'. أظهر الصف وأي صفوف ذات صلة في جداول أخرى (الطلبات والجلسات).✓ تم النسخ
    → صورة كاملة لبيانات مستخدم واحد
  3. إصلاح البيانات السيئة
    هناك طلب عالق في حالة 'pending' لهذا المستخدم من قبل يومين. حدّثه إلى 'cancelled'. أظهر SQL قبل التشغيل.✓ تم النسخ
    → معاينة SQL قبل التعديل، ثم تحديث الصف

النتيجة: تصحيح أخطاء التطبيق دون كتابة نصوص SQL التي تُرمى بعيداً.

المزالق
  • قد يكون لدى التطبيق قاعدة البيانات مقفلة مفتوحة بوضع WAL — إذا حصلت على 'database is locked'، أيقف التطبيق، أو الاستعلام عن لقطة القراءة فقط المدمجة WAL عبر ?mode=ro&immutable=1
اجمعها مع: filesystem

بناء تركيبات اختبار حتمية من عينة من بيانات الإنتاج

👤 المهندسون الذين يكتبون اختبارات التكامل ⏱ ~25 min intermediate

متى تستخدمه: تريد بيانات اختبار قابلة للتكرار تشبه الإنتاج لكنها صغيرة وآمنة.

الخطوات
  1. عينة الصفوف المجهولة الهوية
    من /prod-export/orders.db، احصل على عينة 100 صف من orders تغطي كل حالة. أخفِ الهوية عن الأسماء والبريد الإلكتروني.✓ تم النسخ
    → عينة مع معلومات شخصية مجهولة الهوية
  2. احفظ كملف تركيبة
    اكتب الصفوف المأخوذة كعينة إلى /test/fixtures/orders.db كملف SQLite جديد. اشمل المخطط.✓ تم النسخ
    → ملف تركيبة جديد تم إنشاؤه
  3. تحقق من محمل الاختبار الخاص بك
    قم بتشغيل مجموعة الاختبار الخاصة بي (npm test) — هل يختار التركيبة الجديدة؟ إذا لم يكن كذلك، ما أول اختبار فاشل؟✓ تم النسخ
    → تشغيل الاختبارات؛ الأخطاء محددة

النتيجة: تركيبات واقعية لا تنحرف عن أشكال البيانات الحقيقية.

المزالق
  • إخفاء الهوية الذي يكسر سلامة المرجع — أخفِ الهوية عن مفاتيح الربط بثبات (نفس التجزئة) عبر الجداول؛ لا تعشوائي أبداً لكل صف
اجمعها مع: filesystem · github

تحليل ملف السجل/الحدث المدعوم بـ SQLite

👤 المهندسون الذين يصححون أخطاء أدوات CLI أو التطبيقات التي تسجل إلى SQLite ⏱ ~10 min beginner

متى تستخدمه: تخزن العديد من الأدوات الحديثة (homebrew وبعض المتصفحات وذاكرات التطبيقات) الحالة في SQLite. تريد الاستعلام عنها.

الخطوات
  1. تأكد من أنه الملف الصحيح
    افتح ~/Library/Application Support/SomeApp/cache.db. اعرض الجداول وعينة من الصفوف الأخيرة.✓ تم النسخ
    → المخطط المعروف يؤكد أن لديك الملف الصحيح
  2. ابحث عن الإجابة
    كم عدد الإدخالات التي تحتفظ بها ذاكرة التخزين المؤقت لكل مجال مصدر؟ أعلى 20.✓ تم النسخ
    → نتيجة التجميع
  3. اختياري: التنظيف
    احذف الإدخالات من المجالات التي لم يتم الوصول إليها في 90 يوماً. أظهر العدد أولاً، اسأل قبل الحذف.✓ تم النسخ
    → معاينة وتأكيد ثم حذف

النتيجة: إجابات حول سلوك التطبيق دون الحاجة إلى أمر 'stats' مدمج.

المزالق
  • تعديل قاعدة بيانات التطبيق المباشرة أثناء تشغيل التطبيق قد يفسدها — أغلق التطبيق دائماً أولاً، أو اعمل على نسخة من ملف .db
اجمعها مع: filesystem

التركيبات

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

sqlite + filesystem

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

اقرأ /data/orders.csv مع filesystem MCP، استدل بالأنواع، وحمّل إلى /tmp/analysis.db كجدول orders عبر sqlite MCP.✓ تم النسخ
sqlite + antv-chart

الاستعلام عن قاعدة بيانات SQLite ورسم النتائج بيانياً

من /tmp/analysis.db، احصل على التسجيلات الشهرية لعام 2026. ارسمها كرسم بياني عمودي عبر antv-chart.✓ تم النسخ
sqlite + github

تحليل البيانات، كتابة الاكتشافات في قضية GitHub

قم بتشغيل تحليل الإساءة على /tmp/users.db. أنشئ قضية GitHub في acme/analytics ملخصة أعلى 3 اكتشافات مع ملحق SQL.✓ تم النسخ

الأدوات

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

الأداةالمدخلاتمتى تستدعيهاالتكلفة
list_tables none الخطوة الأولى في أي جلسة free
describe_table table_name: str فحص مخطط جدول واحد free
read_query query: str (SELECT only) قم بتشغيل SELECT — آمن افتراضياً free
write_query query: str (INSERT/UPDATE/DELETE) تعديل البيانات — مقيد؛ يتطلب الموافقة الصريحة في معظم العملاء free
create_table query: str (CREATE TABLE ...) DDL — إنشاء أو تعديل المخطط free
append_insight insight: str إضافة اكتشاف إلى مذكرة الجلسة (يستخدمه بعض العملاء لإنشاء تقرير) free

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

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

حصة API
غير محدود — محلي
الرموز لكل استدعاء
استعلامات المخطط: صغيرة. مجموعات النتائج تتسع مع عدد الصفوف — استخدم دائماً LIMIT للاستعلامات الاستكشافية
التكلفة المالية
مجاني
نصيحة
أضف LIMIT 100 إلى كل استعلام استكشافي وأزله فقط عندما تعرف ما ستحصل عليه مقابلاً.

الأمان

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

تخزين بيانات الاعتماد: لا توجد بيانات اعتماد. ملف قاعدة البيانات هو أي مسار تطلقه عبر --db-path.
نقل البيانات الخارجي: لا يوجد من الخادم. نتائج الاستعلام ترسل إلى مزود LLM الخاص بك كسياق.
لا تمنح أبدًا: لا تشر أبداً إلى ملف يحتفظ ببيانات حساسة إلا إذا كنت تقصد أن يراها النموذج

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

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

database is locked

عملية أخرى (غالباً التطبيق الذي يملك قاعدة البيانات) تحتفظ بالقفل. أغلق تلك العملية أو انسخ ملف .db والاستعلام عن النسخة.

تحقق: lsof <db file>
no such table: X

ملف قاعدة البيانات خاطئ أو المخطط ليس ما تعتقد. قم بتشغيل list_tables لترى ما يوجد فعلاً. تحقق من حجة الإطلاق --db-path في تكوين عميل MCP.

datatype mismatch / unexpected NULL

SQLite مكتوب ديناميكياً — عمود معلن كـ INTEGER يمكنه أن يحتفظ بـ TEXT. استخدم CAST(col AS INTEGER) دفاعياً، أو أصلح عند التحميل.

Disk image is malformed

قاعدة بيانات تالفة، غالباً من قتل عملية أثناء الكتابة. جرب sqlite3 file.db .recover > out.sql وأعد البناء من التفريغ.

البدائل

SQLite مقابل البدائل

البديلمتى تستخدمهاالمقايضة
Postgres MCPالوصول المتزامن للمستخدمين المتعددين أو قاعدة البيانات المتصلة بالشبكة أو أنت بالفعل على Postgresيحتاج إلى خادم؛ Postgres MCP هو القراءة فقط بالتصميم
DuckDB (via shell)نفس نموذج ملف واحد لكن لتحليلات OLAP الشكل مع عمليات مسح أسرع بكثيرلا يوجد MCP من الطرف الأول حتى الآن؛ عمودي لذا خصائص أداء مختلفة
dbHubتحتاج إلى MCP واحد لـ SQLite + Postgres + MySQL + آخرينأحدث؛ أقل اختباراً في المعارك

المزيد

الموارد

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

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

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