فهم بروتوكول سياق النموذج

إعداد بيئة تطوير MCP الخاصة بك

5 دقيقة للقراءة

عشر دقائق من الإعداد، وبعدها تقضي بقية الدورة في كتابة كود الخادم بدل مصارعة بيئتك.

المتطلبات المسبقة

  • بيئة تشغيل Python أو Node.js. كل SDK يحدد إصداره الأدنى بنفسه، وهذه الأرقام تتغير — راجع توثيق MCP SDK لمعرفة المتطلب الحالي بدل الاعتماد على رقم مكتوب في دورة.
  • Claude Desktop، وهو ما ستختبر عليه.
  • محرر كود. أي محرر يفي بالغرض.

تثبيت MCP SDK

تغطي الـ SDKs الرسمية لغات Python وTypeScript وC# وJava وKotlin وSwift، إضافة إلى SDKs من المجتمع للغات Rust وGo وغيرها. تستخدم هذه الدورة Python في الأمثلة، وTypeScript حيثما اختلف الأمر بشكل جوهري — فالبروتوكول واحد تحت السطح، والمفاهيم تنتقل إلى أي لغة تختارها.

تثبيت الـ SDK

bash
# اعزل المشروع حتى لا تكسر ترقيات الـ SDK أعمالك الأخرى
python -m venv mcp-env
source mcp-env/bin/activate       # على Windows: mcp-env\Scripts\activate

pip install mcp

# تأكد من نجاح الاستيراد قبل كتابة أي كود للخادم
python -c "import mcp; print('mcp ready')"

أول خادم MCP لك (Python)

أنشئ ملفاً باسم server.py:

from mcp.server import Server
from mcp.server.stdio import stdio_server
from mcp.types import Tool, TextContent

# إنشاء نسخة الخادم
server = Server(name="hello-mcp")

# تعريف أداة بسيطة
@server.list_tools()
async def list_tools():
    return [
        Tool(
            name="greet",
            description="تحية شخص بالاسم",
            inputSchema={
                "type": "object",
                "properties": {
                    "name": {"type": "string", "description": "الاسم للتحية"}
                },
                "required": ["name"]
            }
        )
    ]

@server.call_tool()
async def call_tool(name: str, arguments: dict):
    if name == "greet":
        return [TextContent(type="text", text=f"مرحباً، {arguments['name']}!")]
    raise ValueError(f"أداة غير معروفة: {name}")

# تشغيل الخادم
async def main():
    async with stdio_server() as (read, write):
        await server.run(read, write)

if __name__ == "__main__":
    import asyncio
    asyncio.run(main())

تكوين Claude Desktop

أضف خادمك إلى ملف تكوين Claude Desktop:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "hello-mcp": {
      "command": "python",
      "args": ["/path/to/server.py"]
    }
  }
}

اختبار خادمك

  1. أعد تشغيل Claude Desktop
  2. افتح محادثة جديدة
  3. اسأل كلود: "استخدم أداة التحية لقول مرحباً لأليس"
  4. سيستدعي كلود خادم MCP الخاص بك!

حين لا يعمل الأمر

تقريباً كل إخفاق في التشغيل الأول يعود إلى أحد أربعة أسباب، ويمكن تمييزها في أقل من دقيقة. اتبع المسار:

خادمي لا يظهر في Claude Desktop

هل أغلقت Claude Desktop إغلاقاً كاملاً وأعدت فتحه بعد تعديل ملف التكوين؟

الخطأ الذي يقع فيه الجميع: في خادم يعمل عبر stdio، المخرج القياسي هو قناة البروتوكول نفسها. أي print() شارد يحقن نصاً في مجرى JSON-RPC فينقطع الاتصال دون رسالة خطأ مفيدة. سجّل إلى ملف أو إلى مخرج الأخطاء، ولا تسجّل أبداً إلى المخرج القياسي.

التالي: بناء خادم حقيقي بأدوات وموارد. :::

اختبار

اختبار الوحدة 1: أساسيات MCP

خذ الاختبار
هل كان هذا الدرس مفيدًا؟

سجّل الدخول للتقييم