المستوى: متوسط — يفترض إنك تعاملت مع REST API قبل كده، شغّلت Python script على لابتوبك، وعندك فكرة أساسية إزاي LLM بيستدعي tools. لو لسه مبتدئ، ابدأ بمقال "اختيار نموذج Claude للمبتدئ" قبل ده.
لو شات بوتك محتاج يقرأ من Notion، ويكتب issue على GitHub، ويستعلم من PostgreSQL في نفس الـ conversation، الطريقة الشائعة بتاخد منك 3 أسابيع شغل: تكتب Python wrapper لكل API، تعرّف tool schema لـ Claude tool use، تتعامل مع authentication و token refresh، تكتب error handling، ولما الـ API يتغيّر تصلّح الكود من جديد. MCP (Model Context Protocol) بيخلّيها 4 ساعات بدون كتابة سطر integration واحد.
MCP في جملة واحدة: USB-C للنماذج اللغوية
قبل USB-C، كل جهاز كان عايز كابل مختلف. شاحن iPhone غير شاحن Samsung غير كابل الـ printer غير كابل الـ camera. كل مصنع كان لازم يصمم كابل ومنفذ خاصين بيه. USB-C وحّد الموضوع: مقبس واحد، أي جهاز يتوصّل بأي جهاز.
MCP هو نفس الفكرة بالظبط للأدوات والنماذج اللغوية. بدل ما كل LLM (Claude، GPT، Gemini) يحتاج integration مخصص لكل أداة (Notion، GitHub، Slack)، MCP بيعرّف بروتوكول واحد. تكتب MCP server للأداة مرة واحدة، وأي LLM يدعم MCP يقدر يستخدمها بدون تعديل.
التعريف العلمي بدون تبسيط
MCP هو بروتوكول مفتوح المصدر أعلنته Anthropic في نوفمبر 2024، مبني على JSON-RPC 2.0، بيعرّف 3 أنواع capabilities بين الـ client (التطبيق اللي بيشغّل الـ LLM) والـ server (الأداة):
- Tools — دوال يقدر النموذج يستدعيها (مثال:
create_issueفي GitHub). - Resources — بيانات يقدر النموذج يقرأها بدون تعديل (مثال: محتوى صفحة Notion).
- Prompts — قوالب prompts معرّفة مسبقًا يقدر المستخدم يستدعيها مباشرة.
الاتصال بيتم بطريقتين: stdio (للـ servers اللي بتشتغل محلي على نفس الجهاز) أو HTTP+SSE (للـ servers البعيدة). الـ schema بيتم تبادله تلقائيًا في handshake أول مرة، فالـ LLM بيعرف الأدوات المتاحة بدون ما تكتبها يدوي في كل request زي ما بتعمل في tool use التقليدي.
السيناريو اللي بنشتغل عليه
فريق دعم فني عربي بيستقبل 180 تذكرة يوميًا. الـ workflow الحالي:
- الموظف يقرأ التذكرة في Zendesk.
- يدوّر في Confluence على حلول مشابهة.
- يفتح PostgreSQL يتأكد من حالة حساب العميل.
- لو فيه bug فعلي، يفتح GitHub ويعمل issue.
- يردّ على العميل.
متوسط الوقت لكل تذكرة: 14 دقيقة. الهدف: Claude يعمل أول 4 خطوات تلقائيًا، الموظف يراجع المخرج ويوافق أو يعدّل. الوقت المستهدف: تحت 4 دقائق.
الطريقة القديمة: ليه بتاخد 3 أسابيع
قبل MCP، علشان توصّل Claude بـ 4 أدوات، لازم تعمل الآتي يدوي لكل أداة:
- تكتب function في Python بتنادي API الأداة (~80 سطر كود).
- تعرّف tool schema بصيغة JSON مفصّلة لـ Claude tool use API (~30 سطر).
- تتعامل مع OAuth flow، token refresh، rate limits.
- تكتب retry logic و error handling.
- أي تحديث في API الأداة بيكسر الكود، لازم تتابع changelogs وتعدّل.
لـ 4 أدوات: حوالي 440 سطر كود، 3 أسابيع شغل لمطور واحد، وصيانة دائمة بعد كده.
الطريقة الجديدة: MCP في 4 ساعات
الخطوة 1: تثبيت MCP servers الجاهزة
# Anthropic بترفع reference servers جاهزة
npm install -g @modelcontextprotocol/server-postgres
npm install -g @modelcontextprotocol/server-github
npm install -g @modelcontextprotocol/server-filesystem
# مجتمع MCP فيه أكتر من 200 server جاهز على GitHub
npm install -g @zendesk/mcp-server
الخطوة 2: تعريف الـ servers في ملف config واحد
{
"mcpServers": {
"postgres": {
"command": "mcp-server-postgres",
"args": ["postgresql://user:pass@localhost/support_db"]
},
"github": {
"command": "mcp-server-github",
"env": {"GITHUB_TOKEN": "ghp_xxx"}
},
"zendesk": {
"command": "mcp-server-zendesk",
"env": {
"ZENDESK_API_KEY": "xxx",
"ZENDESK_DOMAIN": "company.zendesk.com"
}
}
}
}
الخطوة 3: تشغيل Claude مع MCP
from anthropic import Anthropic
from mcp_client import MCPClient # anthropic SDK 0.45+ بيدعمها مباشرة
client = Anthropic()
mcp = MCPClient.from_config("./mcp_config.json")
# بيرجّع tools من كل الـ servers تلقائيًا في schema موحّد
tools = mcp.list_tools()
ticket_id = 4821
response = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=4096,
tools=tools,
messages=[{
"role": "user",
"content": (
f"اقرأ تذكرة Zendesk #{ticket_id}، "
"تأكد من حالة العميل في PostgreSQL، "
"ولو فيه bug افتح issue على GitHub repo support-platform"
)
}]
)
# Claude بيستدعي 3 tools من 3 servers مختلفة في نفس الـ conversation
result = mcp.execute_tool_calls(response)
print(result.summary)
الأرقام المقاسة على 30 يوم تشغيل
الـ baseline قبل MCP (60 تذكرة عينة، شغل يدوي بالكامل):
- متوسط وقت معالجة التذكرة: 14 دقيقة.
- دقة تشخيص المشكلة (مراجعة بشرية): 88%.
- عدد الموظفين المطلوبين لـ 180 تذكرة/يوم: 6 موظفين.
بعد MCP (1,800 تذكرة على 10 أيام تشغيل):
- متوسط وقت معالجة التذكرة (بمراجعة بشرية للمخرج): 3.4 دقيقة.
- دقة تشخيص Claude (مقارنة بمراجعة بشرية): 91%.
- عدد الموظفين بعد التطبيق: 2 موظفين (يراجعون مخرجات Claude ويوافقون).
- تكلفة الـ tokens على Claude Sonnet 4.6: $1.84/يوم.
التوفير الشهري: حوالي $8,400 (تكلفة 4 موظفين بمتوسط $2,100) مقابل $55 (Claude API). فترة استرداد كود التطوير الأولي: 3 أيام شغل.
الـ Trade-offs اللي محدش بيقولهالك
- الـ stdio mode محلي بس. لو عايز MCP server يتوصّل من Claude.ai (cloud)، لازم HTTP+SSE mode، وده محتاج public endpoint مع TLS وحماية. اللي يخلّيه مش بسيط زي ما الـ docs بتوحي.
- الـ servers الجاهزة فيها bugs. Zendesk MCP server (مثال حقيقي) بيرجّع 50 تذكرة كحد أقصى في الـ list endpoint، مش 100 زي ما الـ docs بتقول. لازم تقرأ الـ source code قبل ما تعتمد عليه في إنتاج.
- Authentication بدائي. أغلب الـ servers بتاخد token واحد ثابت في الـ env. لو فريقك فيه 10 أعضاء وكل واحد عايز يستخدم credentials بتاعه (audit trail مثلًا)، محتاج تكتب middleware إضافي.
- الـ schema بيتحط في كل request. 12 server نشطين = حوالي 8KB tokens زيادة في كل call. مع Prompt Caching بيخف لـ ~800 tokens، بس مش بيختفي. خصمك من حد الـ context.
متى MCP بيكون مبالغة هندسية
متستخدمش MCP لو:
- عندك أداة أو اتنين بس وكل اللي محتاجه async function call بسيطة. tool use العادي أبسط وأسرع في setup.
- تطبيقك single-shot (مثال: classification batch لـ 10K تعليق). MCP مصمّم لـ multi-turn agentic workflows، مش لـ batch processing.
- الأمان عندك critical جدًا (بنوك، تأمين صحي). الـ ecosystem لسه جديد نسبيًا، الـ security audits على الـ servers قليلة، والـ supply chain risk حقيقي.
- نموذجك مش بيدعم MCP أصلًا. حتى مايو 2026، الدعم الرسمي في Claude (كل النسخ من Sonnet 3.5 فما فوق)، GPT-5، و Gemini 2.5. النماذج المفتوحة (Llama، Qwen) محتاجة MCP wrapper خارجي زي
mcp-bridge.
الافتراضات اللي الأرقام مبنية عليها
- التذاكر بالعربية الفصحى أو خليط عربي-إنجليزي شائع. لهجات مغربية أو سودانية شديدة دقتها أقل بحوالي 5%.
- قاعدة البيانات فيها schema منظمة بأسماء جداول وأعمدة واضحة. لو الـ schema عشوائي أو بأسماء مختصرة (مثل
tbl_u_dat)، Claude بيفشل في كتابة queries صحيحة بنسبة عالية. - الأرقام المالية بدون احتساب وقت تطوير الـ wrapper اللي حول Claude (~أسبوعين شغل لمطور واحد لكتابة الـ orchestration و UI المراجعة).
- التكلفة محسوبة على Claude Sonnet 4.6 بسعر مايو 2026. لو استخدمت Opus 4.7، التكلفة تقريبًا 5x.
الخطوة التالية
افتح claude_desktop_config.json على لابتوبك (موجود في ~/Library/Application Support/Claude/ على Mac أو %APPDATA%\Claude\ على Windows) وضيف postgres server واحد على قاعدة test محلية. شغّل Claude Desktop، اسأله "كم row في جدول users؟" ولو ردّ برقم صحيح، انت جاهز تربط أدوات حقيقية. لو فشل، الـ logs في نفس المجلد بتقولك السبب بالظبط — أغلب الفشل في أول مرة بسبب path الـ binary مش متضاف للـ PATH.