عرض REST API داخلي كـ MCP في أقل من ساعة
متى تستخدمه: لديك API للشركة يجب أن يتمكن الوكلاء من استدعاؤه، ولا تريد كتابة مواصفات العميل من الصفر.
المتطلبات الأساسية
- Python 3.10+ —
python --version - تثبيت uv —
curl -LsSf https://astral.sh/uv/install.sh | sh
الخطوات
-
إنشاء المشروعقم بإنشاء مشروع خادم FastMCP يسمى 'acme-api-mcp' بأداة بدء واحدة. استخدم uv لإدارة الاعتماديات.✓ تم النسخ→ pyproject.toml + server.py مع مثال @mcp.tool يعمل
-
تغليف أهم ثلاث نقاط نهايةيحتوي API الداخلي على نقاط النهاية /orders/{id}، /customers/search، /invoices/{id}/pdf. اكتب أداة FastMCP لكل منها، باستخدام httpx.AsyncClient وقراءة AUTH_TOKEN من env.✓ تم النسخ→ 3 دوال مزينة مع تلميحات النوع + docstrings التي تصبح وصفات الأداة
-
اختبر محليًا مع مفتش MCPقم بتشغيل الخادم باستخدام
uv run mcp dev server.py. افتح المفتش واستدعِ كل أداة بإدخال واقعي.✓ تم النسخ→ تُرجع الأدوات JSON متوقعاً، لا توجد تتبعات مكدس
النتيجة: خادم MCP يعمل يمكنك توجيهه إلى Claude Desktop أو أي عميل MCP.
المزالق
- تسرب الأسرار في وصفات الأداة لأنك طبعتها في docstrings — استخدم docstrings لوصف السلوك وليس الأمثلة برموز حقيقية. حمّل الأسرار من
os.environولا تطبعها أبداً في الأخطاء - خلط المتزامن مع غير المتزامن، يسبب أخطاء حلقة الحدث — اختر أحدهما — إذا كان عميل HTTP غير متزامن، اجعل الأداة كاملة غير متزامنة؛ لا تستدعِ
asyncio.runداخل أداة