/ الدليل / الملعب / Azure Data API Builder (MCP)
● رسمي Azure 🔑 يتطلب مفتاحك

Azure Data API Builder (MCP)

بواسطة Azure · Azure/data-api-builder

أداة Microsoft الرسمية مفتوحة المصدر التي تحوّل Azure SQL وCosmos DB وPostgres وMySQL إلى نقاط نهاية REST + GraphQL + MCP — بملف إعدادات، بلا كود.

Data API Builder (DAB) هو الطريقة الرسمية التي تدعمها Azure لوضع مخازن البيانات العلائقية أو NoSQL خلف بروتوكولات معروفة بما فيها MCP. تكتب ملف إعداد JSON يسرد الكيانات والعلاقات والسياسات؛ يُشغّل DAB عملية تعرضها كـ REST وGraphQL و(منذ 2026) أدوات MCP. يدعم Azure SQL وSQL Server وCosmos DB (NoSQL + PostgreSQL) وPostgres وMySQL وAzure Data Lake. المصادقة عبر Static Web Apps أو Easy Auth أو JWT.

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

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

عرض مباشر

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

azure-data-api-builder-mcp.replay ▶ جاهز
0/0

التثبيت

اختر العميل

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "azure-data-api-builder-mcp": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "-v",
        "${PWD}/dab-config.json:/App/dab-config.json:ro",
        "-e",
        "DAB_ENVIRONMENT=Production",
        "mcr.microsoft.com/azure-databases/data-api-builder:latest",
        "--ConfigFileName",
        "/App/dab-config.json"
      ]
    }
  }
}

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

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "azure-data-api-builder-mcp": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "-v",
        "${PWD}/dab-config.json:/App/dab-config.json:ro",
        "-e",
        "DAB_ENVIRONMENT=Production",
        "mcr.microsoft.com/azure-databases/data-api-builder:latest",
        "--ConfigFileName",
        "/App/dab-config.json"
      ]
    }
  }
}

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

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "azure-data-api-builder-mcp": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "-v",
        "${PWD}/dab-config.json:/App/dab-config.json:ro",
        "-e",
        "DAB_ENVIRONMENT=Production",
        "mcr.microsoft.com/azure-databases/data-api-builder:latest",
        "--ConfigFileName",
        "/App/dab-config.json"
      ]
    }
  }
}

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

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "azure-data-api-builder-mcp": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "-v",
        "${PWD}/dab-config.json:/App/dab-config.json:ro",
        "-e",
        "DAB_ENVIRONMENT=Production",
        "mcr.microsoft.com/azure-databases/data-api-builder:latest",
        "--ConfigFileName",
        "/App/dab-config.json"
      ]
    }
  }
}

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

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "azure-data-api-builder-mcp",
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "-v",
        "${PWD}/dab-config.json:/App/dab-config.json:ro",
        "-e",
        "DAB_ENVIRONMENT=Production",
        "mcr.microsoft.com/azure-databases/data-api-builder:latest",
        "--ConfigFileName",
        "/App/dab-config.json"
      ]
    }
  ]
}

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

~/.config/zed/settings.json
{
  "context_servers": {
    "azure-data-api-builder-mcp": {
      "command": {
        "path": "docker",
        "args": [
          "run",
          "--rm",
          "-i",
          "-v",
          "${PWD}/dab-config.json:/App/dab-config.json:ro",
          "-e",
          "DAB_ENVIRONMENT=Production",
          "mcr.microsoft.com/azure-databases/data-api-builder:latest",
          "--ConfigFileName",
          "/App/dab-config.json"
        ]
      }
    }
  }
}

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

claude mcp add azure-data-api-builder-mcp -- docker run --rm -i -v ${PWD}/dab-config.json:/App/dab-config.json:ro -e DAB_ENVIRONMENT=Production mcr.microsoft.com/azure-databases/data-api-builder:latest --ConfigFileName /App/dab-config.json

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

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

استخدامات عملية: Azure Data API Builder (MCP)

كشف قاعدة بيانات Azure SQL لـ Claude مع صلاحيات قائمة على الأدوار

👤 فرق Azure؛ المحللون الذين يحتاجون للاستعلام لا مجرد التفريغ ⏱ ~30 min intermediate

متى تستخدمه: لديك Azure SQL داخلي وتريد لوكيل الذكاء الاصطناعي قراءته مع صلاحيات صارمة لكل جدول، لا صلاحيات admin مطلقة.

المتطلبات الأساسية
  • سلسلة اتصال Azure SQL — من Azure Portal → SQL DB → Connection strings
  • Docker مثبّت محلياً — Docker Desktop أو أي OCI runtime
الخطوات
  1. توليد dab-config.json
    Create a DAB config that exposes the Customers and Orders tables read-only over MCP. Connect to my Azure SQL via env var DAB_CONN.✓ تم النسخ
    → dab-config.json مكتوب بكلا الكيانين وactions: ["read"]
  2. التشغيل محلياً
    Spin up DAB locally via Docker on port 5000 and verify the MCP endpoint responds.✓ تم النسخ
    → GET /api/Customers يُرجع صفوفاً؛ قائمة أدوات MCP تُظهر الكيانات
  3. الربط مع Claude
    Add the local DAB MCP to my Claude config and ask: 'Top 10 customers by orders in 2026.'✓ تم النسخ
    → Claude يُرجع النتيجة بتأليف استدعاءات قراءة

النتيجة: Claude يستطيع الاستعلام من قاعدة البيانات ضمن حدود مُهيَّأة صارمة، لا عبر SQL مباشر.

المزالق
  • جدار حماية Azure SQL يحجب IP Docker المحلي — أضِف IP في Azure Portal → SQL Server → Networking، أو شغّل DAB داخل Azure

تغليف Cosmos DB NoSQL خلف طبقة GraphQL+MCP

👤 الفرق الموجودة على Cosmos والتي تريد وصول LLM بدون API مخصص ⏱ ~40 min advanced

متى تستخدمه: لديك حاوية Cosmos NoSQL وتحتاج وصول قراءة/كتابة من Claude مع سياسات على مستوى الحقل.

المتطلبات الأساسية
  • حساب Cosmos DB + حاوية — من Azure Portal — سجّل سلسلة الاتصال وأسماء قاعدة البيانات والحاوية
الخطوات
  1. إعداد الكيان
    Add an entity for Cosmos container products with a JSON schema mapped from the actual docs. Allow read+update; require role 'editor' for updates.✓ تم النسخ
    → dab-config.json مُحدَّث مع كتلة الصلاحيات
  2. ضبط Easy Auth
    Add a JWT auth provider config with the issuer of my Entra tenant.✓ تم النسخ
    → كتلة المصادقة مضافة؛ DAB يفرّضها
  3. التحقق من السياسات
    Try a write as anonymous (should fail), then with editor token (should succeed).✓ تم النسخ
    → 401 ثم 200 — يثبت تطبيق السياسات

النتيجة: سطح Cosmos آمن لـ Claude — القراءات مفتوحة، الكتابات محمية.

المزالق
  • مخطط Cosmos ديناميكي لكن DAB يتطلب أنواع GraphQL — أرفق ملف GraphQL schema؛ DAB يتراجع إلى REST إن لم تفعل

كشف stored procedure كأداة MCP

👤 مديرو قواعد البيانات ذوو منطق عمل متصلّب في TSQL ⏱ ~25 min advanced

متى تستخدمه: stored procedures موجودة تُرمّز قواعد الأعمال وتُفضّل كشفها لـ Claude بدلاً من الوصول المباشر للجداول.

الخطوات
  1. تعريف الكيان
    In dab-config, add entity GetSalesByRegion of type stored-procedure pointing to dbo.usp_GetSalesByRegion. Map parameters to MCP tool inputs.✓ تم النسخ
    → stored proc يظهر كأداة MCP قابلة للاستدعاء
  2. الاختبار
    Call GetSalesByRegion for region='APAC', period='2026Q1'.✓ تم النسخ
    → صفوف النتائج مُرجَعة

النتيجة: منطق الأعمال يبقى في قاعدة البيانات، الذكاء الاصطناعي يستدعيه فقط.

المزالق
  • stored proc يُرجع مجموعات نتائج متعددة — DAB يُرجع الأولى فقط؛ أعد البناء إلى مجموعة واحدة أو قسّم إلى إجراءات متعددة

التركيبات

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

azure-data-api-builder-mcp + filesystem

حفظ dab-config.json ومخطط GraphQL المولَّد في مستودعك

Save dab-config.json and schema.graphql under /db/dab/.✓ تم النسخ
azure-data-api-builder-mcp + github

فتح PR عند تغيير إعداد DAB

Diff against main; if changed, open PR titled 'DAB config update'.✓ تم النسخ

الأدوات

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

الأداةالمدخلاتمتى تستدعيهاالتكلفة
list_entities (none) اكتشاف ما هو مكشوف free
<entity>.read filter?, top?, select?, orderby? قراءة عادية؛ استبدل <entity> 1 DB query per call
<entity>.create fields object فقط عند السماح بـ create في الصلاحيات 1 DB insert
<storedproc> configured params منطق أعمال مُغلَّف 1 DB call

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

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

حصة API
مرتبط بطبقة Azure DB الخاصة بك
الرموز لكل استدعاء
100–2000 بحسب الصفوف المُرجَعة
التكلفة المالية
DAB مجاني؛ تدفع تكلفة قاعدة البيانات. Docker المحلي بدون تكلفة إضافية.
نصيحة
استخدم top + select لإبقاء مجموعات النتائج محدودة كي تبقى تكاليف token قابلة للتنبؤ

الأمان

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

الحد الأدنى من الصلاحيات: DB read role (e.g. db_datareader for read-only)
تخزين بيانات الاعتماد: سلسلة الاتصال عبر متغير بيئة أو Azure Managed Identity (مفضّل في Azure)
نقل البيانات الخارجي: تبقى داخل Azure إن نشرت DAB في Azure
لا تمنح أبدًا: db_owner DDL rights

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

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

Login failed for user

تحقق من سلسلة الاتصال — DAB يحتاج حساب SQL أو Entra موجود؛ جدار الحماية يسمح للمضيف

تحقق: شغّل `sqlcmd` من نفس المضيف بنفس بيانات الاعتماد
الكيان لا يظهر في قائمة أدوات MCP

أعِد تشغيل DAB بعد تعديل dab-config.json — الإعداد يُحمَّل مرة واحدة عند بدء التشغيل

تحقق: تحقق من سجلات الحاوية لـ 'Entity X registered'
أنواع GraphQL مفقودة لـ Cosmos

أرفق schema.graphql مع dab-config.json أو اضبط GraphQL.Mode = REST-only

البدائل

Azure Data API Builder (MCP) مقابل البدائل

البديلمتى تستخدمهاالمقايضة
Hasuraتريد سطح GraphQL أكثر صقلاً ولا تحتاج MCP بعدHasura أوسع نطاقاً لكن أثقل؛ DAB متوافق مع Azure وأخف وزناً
Direct Postgres MCP / Postgres MCP serverلست على Azure وتريد فقط وصول Postgres خاماًPostgres MCP أبسط؛ DAB يفرض سياسة لكل كيان/صف

المزيد

الموارد

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

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

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