المستوى: متوسط — يُفترض إنك شغّلت Claude API أو OpenAI قبل كده، وفاهم function calling أو tool use بشكل أساسي، ولك خبرة بـ Python.
لو فريقك بنى 12 tool integration لـ Claude في آخر 6 شهور، وكل أداة جديدة بتاخد يومين ترميز، إنت بتدفع ضعف الوقت اللي مفروض. الـ Model Context Protocol (MCP) من Anthropic بيحل المشكلة دي بـ standard مفتوح: تكتب server واحد للأداة، وأي AI client (Claude Desktop, Cursor, Cline, Continue) يستخدمه فورًا بدون كود تكامل جديد.
Model Context Protocol: ليه الـ AI tooling محتاجة بروتوكول موحد
المشكلة باختصار
قبل MCP عندك مشكلة M×N: M models (Claude, GPT-4, Llama) × N أدوات (DB, Slack, Jira, GitHub). لو حبّيت كل model يقدر يستخدم كل أداة، محتاج M×N integrations مختلفة. شركة بـ 5 models و 20 أداة = 100 integration. كل واحد منهم فيه schema مختلف، error handling مختلف، authentication مختلف.
المثال البسيط: تخيّل إنك بتسافر لـ 5 دول، ولكل دولة برّيزة كهرباء مختلفة. عندك خياران: تشتري 5 محوّلات (M×N)، أو محوّل عالمي واحد. MCP هو المحوّل العالمي. الـ host بيلبس "اللاب توب" (الموديل)، الـ server بيلبس "البريزة" (الأداة)، و MCP بيلبس بينهم.
التعريف العلمي: MCP بروتوكول مفتوح أصدرته Anthropic في نوفمبر 2024 على شكل JSON-RPC 2.0 over stdio أو HTTP+SSE. بيعرّف ثلاث entities: Host (التطبيق اللي بيشغّل الموديل)، Client (محرك الاتصال داخل الـ host)، و Server (الأداة نفسها). الاتصال بين الـ client و الـ server بيمشي بـ messages من نوع initialize، tools/list، tools/call، resources/read، و prompts/get.
السبب الجذري: schema fragmentation
قبل MCP، كل provider عمل function calling بشكل مختلف. OpenAI بيستخدم JSON Schema داخل messages.tool_calls. Claude بيستخدم input_schema في tool_use blocks. Gemini بيستخدم FunctionDeclaration بصيغة مختلفة. اللي بيكتب tool لـ Slack مثلًا، بيكرّر نفس الكود ثلاث مرات بثلاث صياغات.
MCP بيحل ده عن طريق توحيد الـ schema في طرف الأداة، وكل client يقدر يحوّله لصياغته الخاصة قبل ما يبعته للموديل. النتيجة: integration واحد يخدم Claude Desktop, Cursor, Cline, Continue, Zed, Windsurf، و Goose في نفس الوقت.
بناء MCP server في 28 سطر Python
هنبني MCP server بسيط بيدّي الموديل صلاحية يقرأ تيكتس Jira للمستخدم. الافتراض: عندك Python 3.10+، حساب Atlassian Cloud، و pip install mcp atlassian-python-api.
- أنشئ ملف
jira_server.pyبالكود اللي تحت. - سجّل الـ server في إعدادات Claude Desktop (ملف
claude_desktop_config.json). - افتح Claude Desktop، اسأل: "إيه التيكتس المفتوحة عليّ في Jira؟" — Claude هيستدعي الأداة لوحده.