/ الدليل / الملعب / FastAPI MCP
● مجتمع tadata-org ⚡ فوري

FastAPI MCP

بواسطة tadata-org · tadata-org/fastapi_mcp

بسطر واحدٍ من الكود، وحوّل كل مسار FastAPI إلى أداة MCP — المخططات من نماذج Pydantic الخاصة بك، والمصادقة من البرامج الوسيطة الخاصة بك.

يقوم fastapi-mcp بتغليف تطبيق FastAPI موجود ويكشف مساراته كأدوات MCP. تُولّد مخططات الأدوات من نماذج Pydantic الخاصة بك للطلبات والاستجابات. برامج المصادقة الوسيطة الموجودة لديك تعمل دون تعديل. الطريق الأسرع من 'لديّ API بـ Python' إلى 'يمكن للوكلاء استدعاؤه'.

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

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

عرض مباشر

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

fastapi-mcp.replay ▶ جاهز
0/0

التثبيت

اختر العميل

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

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

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "fastapi-mcp": {
      "command": "uvx",
      "args": [
        "fastapi-mcp"
      ]
    }
  }
}

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

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "fastapi-mcp": {
      "command": "uvx",
      "args": [
        "fastapi-mcp"
      ]
    }
  }
}

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

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "fastapi-mcp": {
      "command": "uvx",
      "args": [
        "fastapi-mcp"
      ]
    }
  }
}

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

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "fastapi-mcp",
      "command": "uvx",
      "args": [
        "fastapi-mcp"
      ]
    }
  ]
}

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

~/.config/zed/settings.json
{
  "context_servers": {
    "fastapi-mcp": {
      "command": {
        "path": "uvx",
        "args": [
          "fastapi-mcp"
        ]
      }
    }
  }
}

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

claude mcp add fastapi-mcp -- uvx fastapi-mcp

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

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

استخدامات عملية: FastAPI MCP

كشف تطبيق FastAPI موجود كـ MCP دون إعادة هيكلة

👤 مطورو الواجهات الخلفية الذين لديهم خدمة FastAPI تعمل ⏱ ~30 min intermediate

متى تستخدمه: أنت بالفعل تنشر API لـ FastAPI. تريد من الوكلاء استخدامه. لا تريد قاعدة أكواد متوازية.

المتطلبات الأساسية
  • تطبيق FastAPI عامل مع نماذج Pydantic على الطلبات والاستجابات — إذا كانت مساراتك ترجع dict، أعد الهيكلة إلى Pydantic BaseModel أولاً — وإلا ستكون مخططات الأدوات object
الخطوات
  1. التثبيت والتركيب
    أضف fastapi-mcp إلى مشروعي. في ملف main.py الخاص بي، بعد app = FastAPI()، أضف FastApiMCP(app).mount(). أظهر الفرق.✓ تم النسخ
    → فرق بسيط؛ الخادم لا يزال يعمل
  2. تحقق من ظهور الأدوات
    شغّل الخادم. اتصل باستخدام npx -y mcp-remote http://localhost:8000/mcp. اعرض قائمة الأدوات — هل تظهر جميع مسارات GET/POST الخاصة بي؟✓ تم النسخ
    → الأدوات مدرجة، الأسماء تطابق operation_ids المسارات
  3. صفّ ما يتم الكشف عنه
    لا أريد الكشف عن مسارات /admin/*. أعد التكوين باستخدام include_operations أو استبعد حسب العلامة.✓ تم النسخ
    → مسارات الإدارة لم تعد في قائمة الأدوات

النتيجة: API الموجود لديك الآن قابل للعنونة عبر MCP بدون تكرار المخططات أو المنطق.

المزالق
  • كل مسار يصبح أداة — بما في ذلك الداخلية التي لم تنوِ الكشف عنها — عيّن صراحة include_tags=['public'] أو exclude_operations=[...] قبل النشر المباشر
  • المسارات بدون operation_id تحصل على أسماء تم إنشاؤها مثل read_item_items__item_id__get — قبيحة — دائماً عيّن operation_id صريح على المسارات: @app.get('/items/{id}', operation_id='get_item')
اجمعها مع: fastmcp

كشف تطبيق FastAPI مصادق عليه كـ MCP دون كسر المصادقة

👤 مطورو الواجهات الخلفية الذين لديهم bearer/OAuth2 على FastAPI ⏱ ~30 min intermediate

متى تستخدمه: مسارات FastAPI الخاصة بك تستخدم Depends(get_current_user) — تحتاج إلى أن تعمل عند استدعاؤها عبر MCP.

المتطلبات الأساسية
  • تبعية مصادقة موجودةDepends(oauth2_scheme) أو ما يعادله
الخطوات
  1. مرّر رأس Authorization
    كوّن fastapi-mcp لإعادة توجيه رأس Authorization من سياق MCP إلى المسار الأساسي. أشر لي إلى الإعدادات.✓ تم النسخ
    → تغيير الإعدادات؛ المسارات الآن تستقبل الرأس
  2. اختبر استدعاء مصرح
    استدعِ نقطة النهاية المحمية عبر MCP. أولاً بدون رمز (توقع 401)، ثم مع رمز صحيح (توقع 200).✓ تم النسخ
    → 401 غير مصرح، 200 مصرح — نفس HTTP المباشر
  3. وثّق إعداد الجانب العميل
    اكتب إعداد mcp-remote الذي يحتاجه المستخدمون حتى يمرّر Claude Desktop الخاص بهم رأس Authorization.✓ تم النسخ
    → مقطع إعداد عميل يمكن نسخه

النتيجة: المصادقة مفروضة بنفس الطريقة سواء تم استدعاؤها من curl أو من وكيل.

المزالق
  • الوكيل يستخدم عن طريق الخطأ رمز جذر طويل الأجل — أنشئ رموز محدودة النطاق قصيرة الأجل لكل مستخدم؛ قم بالتدوير بقوة — تعامل مع MCP مثل أي عميل API آخر

نشر نقطة نهاية MCP جنباً إلى جنب مع API الموجود لديك

👤 مهندسو المنصات ⏱ ~45 min advanced

متى تستخدمه: تشغّل FastAPI على Cloud Run / Fly / Render. تريد من MCP أن يشاركك النشر.

الخطوات
  1. ثبّت على مسار مستقر
    ثبّت fastapi-mcp في /mcp. تأكد من أن /docs (Swagger) و /mcp كلاهما يعمل من نفس العملية.✓ تم النسخ
    → كلا المسارين يستجيبان
  2. كشف عبر بوابة الدخول الموجودة لديك
    حدّث إعداد Cloud Run / nginx / API gateway الخاص بي لتوجيه /mcp إلى هذه الخدمة مع انتهاءات الوقت المتوافقة مع SSE (بدون تخزين مؤقت، خمول طويل).✓ تم النسخ
    → الاتصال البعيد mcp-remote يتصل بنجاح
  3. وثّق إعداد العميل
    اكتب README الموجه للفريق: كيفية إضافة هذا MCP إلى Claude Desktop + Cursor.✓ تم النسخ
    → إعداد نسخ واللصق لكل عميل

النتيجة: نشر واحد، بروتوكولان (REST + MCP)، بدون بنية تحتية إضافية.

المزالق
  • وكيل يخزن مؤقتاً استجابات SSE، الاتصال يبدو معلقاً — عطّل التخزين المؤقت للوكيل — nginx: proxy_buffering off؛ Cloud Run: بالفعل جيد؛ Cloudflare: فعّل البث
اجمعها مع: cloud-run · vercel

التركيبات

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

fastapi-mcp + fastmcp

استخدم fastapi-mcp للمسارات القديمة، FastMCP لأدوات خاصة بالوكيل الجديدة في نفس العملية

ثبّت fastapi-mcp لمساراتي /api/* الموجودة وسجّل 3 أدوات FastMCP جديدة لعمليات خاصة بالوكيل فقط مثل bulk_sync.✓ تم النسخ
fastapi-mcp + cloud-run

نشر REST + MCP معاً على Cloud Run

خذ خدمة FastAPI الخاصة بي، أضف fastapi-mcp، حزمها في حاوية، ونشرها على Cloud Run مع مصادقة IAM على /mcp.✓ تم النسخ

الأدوات

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

الأداةالمدخلاتمتى تستدعيهاالتكلفة
FastApiMCP(app, **options) app: FastAPI, include_operations?, exclude_operations?, include_tags?, exclude_tags?, name?, description? توصيل وقت البناء — أنشئ مرة واحدة عند البدء free
.mount(path='/mcp') path? مباشرة بعد الإنشاء free
Auto-generated tools derived from each FastAPI route's request/response models لا إجراء — تظهر بمجرد التثبيت same as your route

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

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

حصة API
يرث من API الخاص بك
الرموز لكل استدعاء
نفس استدعاءات HTTP المباشرة — بدون تكلفة إضافية
التكلفة المالية
مجاني، مفتوح المصدر
نصيحة
استبعد مسارات الإدارة والتصحيح المطولة من MCP — إنها تلوّث قائمة أدوات الوكيل وتكلّف الرموز في كل list_tools

الأمان

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

تخزين بيانات الاعتماد: أياً كانت FastAPI تستخدم — fastapi-mcp لا تضيف طبقة مصادقة جديدة
نقل البيانات الخارجي: أينما تذهب مساراتك بالفعل

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

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

Tools appear but calls return 422 validation errors

مسارك يستخدم dict بدلاً من Pydantic BaseModel — MCP يمرّر JSON مكتوب وروتك لا يمكنه تحليله. أعد الهيكلة إلى BaseModel.

Route exists at /items but no matching tool

تتخطى fastapi-mcp المسارات بدون response_model أو operation_id في بعض الحالات. أضف response_model=ItemOut و operation_id='get_item'.

تحقق: curl http://localhost:8000/openapi.json | jq '.paths'
Auth dependency doesn't fire when called via MCP

كوّن إعادة توجيه الرأس في خيارات FastApiMCP. إذا كانت التبعية الخاصة بك تقرأ ملفات تعريف الارتباط بدلاً من الرؤوس، انتقل إلى مصادقة قائمة على الرأس — MCP ليس لديها جرة ملفات تعريف الارتباط.

SSE hangs behind nginx

أضف proxy_buffering off; proxy_cache off; proxy_read_timeout 3600s; إلى كتلة موقع /mcp.

البدائل

FastAPI MCP مقابل البدائل

البديلمتى تستخدمهاالمقايضة
FastMCPحقل أخضر — لا توجد تطبيق FastAPI موجود، فقط كتابة خادم MCPDX أنظف للمشاريع الجديدة؛ fastapi-mcp تفوز في إعادة التركيب
Hand-written SDK serverتحتاج إلى تحكم دقيق على أسماء الأدوات والأوصاف والمخططاتكود أكثر، صيانة أكثر — عادة لا يستحق

المزيد

الموارد

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

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

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