/ الدليل / الملعب / MCP Python SDK
● رسمي modelcontextprotocol ⚡ فوري

MCP Python SDK

بواسطة modelcontextprotocol · modelcontextprotocol/python-sdk

Python SDK الرسمي لبروتوكول Model Context Protocol — ابنِ خوادم وعملاء في 30 سطراً، مشحون بـ FastMCP-compatible decorators.

Python SDK الرسمي الذي تصونه Anthropic لـ MCP. يوفر خادماً (mcp.server.fastmcp.FastMCP)، وعميلاً (mcp.client.session.ClientSession)، وأوليات منخفضة المستوى. يُستخدم كمرجع مبدئي لمطابقة المواصفة — عند الشك، هذا هو المصدر الحقيقي. تم دمج FastMCP القائم على decorators من jlowin/fastmcp.

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

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

عرض مباشر

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

mcp-python-sdk.replay ▶ جاهز
0/0

التثبيت

اختر العميل

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "mcp-python-sdk": {
      "command": "uvx",
      "args": [
        "--with",
        "mcp",
        "python",
        "-m",
        "mcp.server.example"
      ],
      "_inferred": true
    }
  }
}

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

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "mcp-python-sdk": {
      "command": "uvx",
      "args": [
        "--with",
        "mcp",
        "python",
        "-m",
        "mcp.server.example"
      ],
      "_inferred": true
    }
  }
}

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

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "mcp-python-sdk": {
      "command": "uvx",
      "args": [
        "--with",
        "mcp",
        "python",
        "-m",
        "mcp.server.example"
      ],
      "_inferred": true
    }
  }
}

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

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "mcp-python-sdk": {
      "command": "uvx",
      "args": [
        "--with",
        "mcp",
        "python",
        "-m",
        "mcp.server.example"
      ],
      "_inferred": true
    }
  }
}

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

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "mcp-python-sdk",
      "command": "uvx",
      "args": [
        "--with",
        "mcp",
        "python",
        "-m",
        "mcp.server.example"
      ]
    }
  ]
}

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

~/.config/zed/settings.json
{
  "context_servers": {
    "mcp-python-sdk": {
      "command": {
        "path": "uvx",
        "args": [
          "--with",
          "mcp",
          "python",
          "-m",
          "mcp.server.example"
        ]
      }
    }
  }
}

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

claude mcp add mcp-python-sdk -- uvx --with mcp python -m mcp.server.example

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

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

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

بناء أول خادم MCP بـ Python في أقل من 10 دقائق

👤 مطورو Python الجدد على MCP ⏱ ~15 min beginner

متى تستخدمه: تريد كشف دالة Python لـ Claude.

المتطلبات الأساسية
  • Python 3.10 أو أحدث — uv أو pyenv
الخطوات
  1. التثبيت والهيكلة
    Use uv to install mcp. Create server.py with one tool: get_weather(city) that calls a public API.✓ تم النسخ
    → ملف 10 أسطر مع decorator @tool
  2. التشغيل عبر stdio
    Run mcp dev server.py. Open the MCP Inspector and verify the tool listing.✓ تم النسخ
    → الأداة قابلة للاستدعاء من inspector
  3. الإضافة إلى Claude Desktop
    Add to claude_desktop_config.json. Test from Claude.✓ تم النسخ
    → استجابة حية في المحادثة

النتيجة: خادم MCP يعمل بـ Python مسجَّل مع Claude.

المزالق
  • استخدام print() في المعالج يكسر stdio — استخدم logging إلى stderr؛ لا تكتب أبداً إلى stdout

كتابة اختبارات تكاملية لخادم MCP باستخدام عميل SDK

👤 المطورون الذين ينشرون MCPs للإنتاج ⏱ ~30 min intermediate

متى تستخدمه: تحتاج إلى اختبارات CI تُثبت أن MCP يتصرف بشكل صحيح.

الخطوات
  1. تشغيل الخادم
    Use mcp.client.stdio to spawn server.py and call list_tools(). Assert expected names.✓ تم النسخ
    → الاختبار ينجح
  2. استدعاء كل أداة
    For each tool, call with a representative input and assert the output schema.✓ تم النسخ
    → جميع الأدوات مُتحقَّق منها
  3. الربط مع pytest
    Convert into pytest fixtures so CI runs them on every PR.✓ تم النسخ
    → إطار اختبار قابل لإعادة الاستخدام

النتيجة: خادم MCP مع ثقة بأن الأدوات لن تتراجع.

بث مخرجات أداة طويلة الأمد إلى Claude أثناء تنفيذها

👤 المطورون الذين يبنون MCPs للبناء والنشر أو المحاكاة الطويلة ⏱ ~45 min advanced

متى تستخدمه: تستغرق الأداة دقائق وتريد تقدماً في المحادثة لا بعد انتهائها.

الخطوات
  1. استخدام نقل HTTP القابل للبث
    Switch from stdio to streamable HTTP. Yield progress events from the tool.✓ تم النسخ
    → يُظهر Claude مخرجات جزئية أثناء التنفيذ
  2. إضافة الإلغاء
    Honor cancel requests so user can abort if the tool takes too long.✓ تم النسخ
    → الإلغاء يعمل في منتصف التشغيل

النتيجة: أدوات تبدو في الوقت الفعلي حتى عندما تكون بطيئة.

التركيبات

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

mcp-python-sdk + mcp-go-mark3labs

متعدد اللغات — الأداء الحرج بـ Go، وعلوم البيانات بـ Python

Use mcp-python-sdk for the model-serving MCP, mcp-go for the high-throughput one.✓ تم النسخ
mcp-python-sdk + mcp-registry

نشر MCP Python الخاص بك في السجل الرسمي

Submit metadata to modelcontextprotocol/registry once your server passes its tests.✓ تم النسخ

الأدوات

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

الأداةالمدخلاتمتى تستدعيهاالتكلفة
FastMCP name, version? إنشاء الخادم على المستوى الأعلى 0
@server.tool decorator on async function كل دالة تريد كشفها 0
@server.resource decorator with uri pattern كشف بيانات للقراءة فقط 0
@server.prompt decorator on prompt builder قوالب prompt قابلة لإعادة الاستخدام 0
ClientSession transport الاختبار أو بناء عملاء MCP 0
stdio_server () الوضع المحلي 0

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

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

حصة API
غير متاح — مكتبة
الرموز لكل استدعاء
غير متاح
التكلفة المالية
مجاني (MIT)
نصيحة
ثبّت إصدار SDK في pyproject.toml؛ المواصفة تتطور

الأمان

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

تخزين بيانات الاعتماد: ما تحتاجه أدواتك
نقل البيانات الخارجي: يتحكم فيه معالجاتك

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

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

الأداة لا تظهر

تأكد أن decorator @tool على دالة async وأن الدالة مسجَّلة قبل بدء الخادم

تحقق: Run `mcp dev server.py` and open the inspector
أخطاء تحقق Pydantic

مدخلات الأداة يُتحقق منها بـ Pydantic؛ تحقق أن تلميحات النوع تطابق ما يُرسله Claude

الخادم يتعلق عند stdin EOF

تأكد أن معالجاتك async لا تُسبب جمود — استخدم anyio للتوافق

البدائل

MCP Python SDK مقابل البدائل

البديلمتى تستخدمهاالمقايضة
FastMCP (PrefectHQ)تريد الـ fork الأصلي من طرف ثالث مع أدوات إضافيةمدمج الآن في معظمه؛ غلاف رفيع
mcp-go (mark3labs)Go هي لغتكمنظومة مختلفة

المزيد

الموارد

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

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

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