MCP: اللغة الموحّدة بين الـ AI وأدواتك
لو بتبني تطبيق ذكاء اصطناعي محتاج يوصل لقواعد بيانات، أدوات DevOps، وAPIs في نفس الوقت، بروتوكول MCP بيختصرلك أسابيع شغل في يومين. البروتوكول ده بقى معيار صناعة بحق منذ إطلاقه في نوفمبر 2024، وبحسب Anthropic، تعدّى 97 مليون تحميل شهري للـ SDKs في نهاية 2025.
المشكلة باختصار
قبل MCP، لو عايز تخلي الـ AI يقرا من Slack ويكتب في Jira ويعمل query على PostgreSQL، كنت هتكتب 3 integrations منفصلة. كل integration ليها authentication مختلف، error handling مختلف، وشكل مختلف للبيانات. التكلفة: أسابيع. النتيجة: كود هش صعب صيانته لأن كل تغيير في API واحد بيتطلب تعديل في كذا مكان.
MCP بيحل ده بفكرة واحدة: بروتوكول موحّد بيخلي كل أداة "تتكلم" بنفس اللغة مع أي نموذج AI. اكتب server مرة واحدة، يشتغل مع Claude و Cursor و Zed وأي client تاني بيدعم MCP، بدون تعديل سطر.
مثال للمبتدئ: محوّل الكهرباء الـ Universal
لما بتسافر بلد تانية، شكل الـ socket في الحيط بيختلف. بريطانيا 3 أرجل مربعة، أمريكا 2 أرجل مسطحة، أوروبا 2 أرجل دائرية. الحل: محوّل universal بيتعامل مع كل الأشكال. انت مش بتغيّر الجهاز بتاعك، والبلد مش بتغيّر شكل الـ socket. المحوّل بس بيخليهم يفهموا بعض.
MCP نفس الفكرة بالظبط. عندك client زي Claude Desktop، وعندك أدوات زي GitHub و PostgreSQL و Kubernetes. بدل ما كل client يكتب integration خاص بكل أداة، كل طرف بيتكلم MCP، والبروتوكول بيهندل الترجمة بين الاتنين.
التعريف العلمي: MCP بالدقة
MCP هو بروتوكول open-source طوّرته Anthropic، ونُقلت ملكيته في ديسمبر 2025 للـ Agentic AI Foundation تحت Linux Foundation، بمشاركة Anthropic و Block و OpenAI. البروتوكول مبني على JSON-RPC 2.0، ومستوحى من Language Server Protocol (LSP) اللي IDEs زي VSCode بتستخدمه علشان كل IDE يقدر يتكلم مع أي language server.
البروتوكول بيعرّف 3 مكوّنات أساسية:
- Resources: بيانات للقراءة فقط (ملفات، rows في DB، صفحات web). الـ AI بيقراها، مش بيعدّلها.
- Tools: functions الـ AI يقدر ينفذها (create_issue، run_query، send_email). ليها side effects.
- Prompts: templates جاهزة الـ server بيقدّمها للـ client علشان يستخدمها مباشرة.
الاتصال بيحصل إما عبر stdin/stdout لما الـ server محلي، أو عبر HTTP+SSE أو Streamable HTTP لما الـ server على شبكة. الـ client بيبعت JSON-RPC request، والـ server بيرد بـ response منظّم بـ schema واضح.
مثال تنفيذي: MCP server بـ 30 سطر Python
هنبني server بسيط بيعرض tool واحد فقط: يجيب قائمة الـ users اللي سجّلوا في آخر X يوم من PostgreSQL. الكود ده شغّال فعلاً، ممكن تنسخه وتجرّبه دلوقتي بعد تعديل connection string.
# pip install mcp asyncpg
from mcp.server.fastmcp import FastMCP
import asyncpg
mcp = FastMCP("users-db")
DB_URL = "postgresql://user:pass@localhost/mydb"
@mcp.tool()
async def recent_signups(days: int = 7) -> list[dict]:
"""Return users who signed up in the last N days."""
conn = await asyncpg.connect(DB_URL)
rows = await conn.fetch(
"SELECT id, email, created_at FROM users "
"WHERE created_at > NOW() - INTERVAL '1 day' * $1 "
"ORDER BY created_at DESC LIMIT 100",
days,
)
await conn.close()
return [dict(r) for r in rows]
if __name__ == "__main__":
mcp.run()
بعد كده سجّل الـ server ده في Claude Desktop عبر ملف الإعداد:
{
"mcpServers": {
"users-db": {
"command": "python",
"args": ["/absolute/path/to/server.py"]
}
}
}
بعد الـ restart، Claude هيقدر يرد على سؤال زي "ورّيني آخر 50 user سجّلوا الأسبوع ده" بدون ما تكتب SQL يدوي. التنفيذ بيتم على machine المستخدم، والبيانات مش بتخرج لأي cloud، وده فرق جوهري في الـ privacy.
الأرقام الحقيقية: ليه MCP شغّال فعلاً
بحسب تقارير الـ developers اللي اتنشرت بداية 2026، الفرق بين فريق بيستخدم MCP وفريق بيكتب integrations يدوي مش مجرد convenience:
- زمن بناء integration جديد: من يومين كاملين إلى 30 دقيقة تقريبًا.
- سطور الكود: انخفاض بين 40% و60% لأن الـ SDK بيهندل JSON-RPC plumbing كامل.
- إعادة الاستخدام: server واحد يشتغل مع Claude Desktop و Cursor و Zed و أي client MCP بدون تعديل سطر.
- Pinterest أعلنوا في أبريل 2026 إنهم نشروا MCP servers داخليًا علشان المهندسين يربطوا الـ AI assistants بـ infrastructure و repositories بسرعة.
الـ trade-offs: بتكسب إيه وبتخسر إيه
بتكسب: توحيد كامل للـ integrations، قابلية نقل بين clients، و ecosystem جاهز فعلاً (GitHub و PostgreSQL و Kubernetes و Slack و Notion عندهم servers رسميين قابلين للاستخدام من أول لحظة).
بتخسر: طبقة زيادة من الـ abstraction. لو use case بتاعك tool واحد بسيط، MCP overkill. الافتراض هنا إنك بتربط 3 أدوات فأكثر، أو بتبني منتج هيتوسع لعملاء مختلفين بـ stacks مختلفة.
خلي بالك من الـ security. MCP server لو اتكتب غلط ممكن يفتح DB بالكامل للـ AI. استخدم least-privilege credentials دايمًا، وحدّد الـ tools المعرّضة بعناية. لا تخلي الـ AI عنده tool اسمه run_raw_sql في production، اعمل tools محددة بـ parameters آمنة زي المثال فوق.
متى لا تستخدم MCP
ما تستخدمهوش لو عندك integration واحد بس بين AI وأداة داخلية single-purpose. REST API مباشر مع function calling أبسط وأوضح. برضه ما تستخدمهوش لو بتشتغل في بيئة مؤسسية enforced بسياسات أمنية ما بتسمح بـ local process spawning، لأن أغلب MCP servers بتشتغل كـ subprocess على machine المستخدم.
كمان ما تستخدمهوش لو workflow بتاعك يحتاج latency أقل من 50ms بشكل صارم. الـ JSON-RPC overhead صغير لكنه موجود، ومش مصمّم للـ real-time trading أو gaming backends.
مصادر
- الـ specification الرسمي للبروتوكول: modelcontextprotocol.io/specification/2025-11-25
- مقال Anthropic الأصلي لإطلاق البروتوكول: anthropic.com/news/model-context-protocol
- مقال Wikipedia عن تطور MCP وتبرعه لـ Linux Foundation: en.wikipedia.org/wiki/Model_Context_Protocol
- مراجعة سنة كاملة من MCP من Pento: pento.ai/blog/a-year-of-mcp-2025-review
- GitHub repo البروتوكول: github.com/modelcontextprotocol
- تحليل The New Stack عن سبب انتصار MCP: thenewstack.io/why-the-model-context-protocol-won
الخطوة التالية
افتح terminal دلوقتي، نفّذ pip install mcp asyncpg، وانسخ السكربت فوق. عدّل الـ connection string للـ DB بتاعتك، وسجّل الـ server في Claude Desktop بالـ config المذكور. أول query ناجحة هتشتغل معاك في أقل من 15 دقيقة. لو رجعلك error في مرحلة الـ registration، غالبًا السبب إن path الـ Python مش absolute — صحّحه وجرّب تاني.