
بروتوكول سياق النموذج (MCP) هو معيار مفتوح يمنح نماذج الذكاء الاصطناعي طريقة شاملة للاتصال بالأدوات الخارجية ومصادر البيانات والخدمات. بدلاً من كتابة كود تكامل مخصص لكل مجموعة من النموذج والأداة، تكتب خادم MCP واحد ويمكن لكل نموذج متوافق استخدامه. أنشأت Anthropic بروتوكول MCP في أواخر عام 2024، وتديره مؤسسة Linux Foundation الآن، وقد تبنّته OpenAI وGoogle وبقية نظام الذكاء الاصطناعي الوكيل. إليك كل ما تحتاج إلى فهمه وبنائه ونشره مع MCP.
نظرة سريعة على MCP
إذا أردت النسخة السريعة قبل الغوص في 6000 كلمة من التفاصيل، ها هي.
| الخاصية | التفاصيل |
|---|---|
| الاسم الكامل | Model Context Protocol (MCP) |
| أنشأه | Anthropic (نوفمبر 2024)، تحكمه الآن Linux Foundation / AAIF (ديسمبر 2025) |
| ما يفعله | معيار شامل لربط نماذج الذكاء الاصطناعي بالأدوات والبيانات والخدمات |
| المشكلة التي يحلها | يزيل تكاملات M × N المخصصة - كـ USB-C للذكاء الاصطناعي |
| الأوليات الأساسية | الأدوات، الموارد، الموجّهات، والعيّنة |
| النقل | stdio (التطوير المحلي)، Streamable HTTP (الإنتاج) |
| المصادقة | OAuth 2.1 (مطلوب لنقل HTTP) |
| مجموعات أدوات التطوير | Python (FastMCP)، TypeScript، Java، Kotlin، C# |
| حجم النظام البيئي | أكثر من 10,000 خادم نشط (وفق Linux Foundation، ديسمبر 2025) |
| كبار المتبنّين | Claude، ChatGPT، Gemini، Cursor، VS Code Copilot، Windsurf |
| حالة المواصفات | معيار مفتوح، يتطور بنشاط (خارطة طريق 2026 قيد الإعداد) |
| الأنسب لـ | وكلاء الذكاء الاصطناعي الذين يحتاجون للتفاعل مع الأدوات والبيانات الحقيقية |
الآن لنفكّ كل من هذه النقاط، بدءاً بما هو MCP فعلاً والمشكلة التي جعلته ضرورياً.
ما هو بروتوكول سياق النموذج؟
بروتوكول سياق النموذج هو بروتوكول مفتوح قائم على JSON-RPC يُقنِّن كيفية اكتشاف نماذج الذكاء الاصطناعي للأدوات والبيانات الخارجية والتفاعل معها. فكّر فيه كـ HTTP لتكاملات الذكاء الاصطناعي - لغة مشتركة يستطيع أي نموذج وأي أداة التحدث بها.
ربما سمعت تشبيه USB-C، وهو مفيد إلى حد ما: قبل USB-C، كانت كل جهاز يحتاج كابله الخاص. يفعل MCP الشيء ذاته للذكاء الاصطناعي، لكن التشبيه يقلل من شأنه. USB-C ينقل البيانات والطاقة فحسب. MCP ينقل تعريفات الأدوات وأنماط الوصول إلى البيانات وقوالب الموجّهات القابلة لإعادة الاستخدام، بل يتيح للخوادم طلب إكمالات من النموذج. إنه بروتوكول أكثر ثراءً مما يوحي به تشبيه الكابل.
مشكلة M × N التي يحلها MCP
بدون MCP، يتطلب ربط M من النماذج بـ N من الأدوات تكاملات مخصصة بعدد M × N. لنفترض أنك تدعم 5 نماذج لغوية (Claude، GPT-4، Gemini، Llama، Mistral) وتحتاج إلى وصولها لـ 10 أدوات (GitHub، Postgres، Slack، Jira، وما إلى ذلك). هذه 50 طبقة تكامل مخصصة، لكل منها مصادقتها ومعالجة الأخطاء وتنسيق البيانات الخاص بها.
مع MCP، يُطبّق كل نموذج بروتوكول عميل MCP مرة واحدة، وكل أداة تُطبّق خادم MCP مرة واحدة. الآن أصبح العدد 5 + 10 = 15 تطبيقاً بدلاً من 50. أضف نموذجاً جديداً؟ يعمل فوراً مع جميع الأدوات العشر. أضف أداة جديدة؟ يمكن للنماذج الخمسة كلها استخدامها.
تاريخ موجز لـ MCP
فتحت Anthropic كود MCP المصدر في نوفمبر 2024 مع مجموعات أدوات التطوير لـ Python وTypeScript وموصّلات لـ Claude Desktop. سار التبني بسرعة. أضافت OpenAI دعم MCP لـ ChatGPT في مارس 2025. تبعتها Google لـ Gemini في أبريل 2025. في ديسمبر 2025، تبرّعت Anthropic بـ MCP لمؤسسة Agentic AI Foundation الجديدة التابعة لـ Linux Foundation، المشارك في تأسيسها مع Block وOpenAI، مما جعل MCP معياراً محايداً بين البائعين ذا حوكمة على مستوى الصناعة.
ما لا يكون عليه MCP:
- ليس نموذجاً ولا إطار ذكاء اصطناعي (إنه بروتوكول، مثل HTTP)
- ليس بديلاً عن LangChain أو LlamaIndex (تلك طبقات تنسيق؛ MCP يجلس تحتها)
- ليس محدوداً بـ Anthropic أو Claude (إنه محايد للنماذج بالتصميم)
- ليس مثل استدعاء الدوال (المزيد حول ذلك في قسم المقارنة)
كيف يعمل MCP؟ تعمّق في البنية
يمتلك MCP ثلاثة أدوار، والخلط بينها هو أكثر أخطاء المبتدئين شيوعاً. دعنا نوضّح الفرق.
<!-- IMAGE: مخطط بنية MCP يُظهر أدوار المضيف والعميل والخادم مع أمثلة حقيقية مثل Claude Desktop وGitHub MCP Server وPostgres MCP Server -->المضيف والعميل والخادم - ما الفرق؟
| المكوّن | الدور | أمثلة | ما يفعله |
|---|---|---|---|
| المضيف | التطبيق الذي يتفاعل معه المستخدم | Claude Desktop، Cursor، VS Code | يوفر واجهة المستخدم، يدير نسخ العميل |
| العميل | معالج البروتوكول داخل المضيف | مدمج في تطبيق المضيف | يحافظ على اتصال 1:1 مع خادم MCP واحد |
| الخادم | يكشف الأدوات والبيانات عبر MCP | خادم GitHub، خادم Postgres، خادم Slack | يُغلّف واجهات API/البيانات الخارجية في نقاط نهاية متوافقة مع MCP |
إليك مثال ملموس: تطلب من Claude Desktop فحص طلبات سحب GitHub المفتوحة لديك. Claude Desktop هو المضيف. عميل MCP المدمج فيه يفتح اتصالاً بـ خادم MCP الخاص بـ GitHub. يستدعي الخادم واجهة GitHub API ويجلب طلبات السحب ويعيد النتائج إلى العميل الذي يمررها إلى النموذج.
يمكن للمضيف الواحد تشغيل عملاء متعددين، كل منهم متصل بخادم مختلف. هكذا يمكن لـ Claude Desktop الوصول في آنٍ واحد إلى GitHub وقاعدة بيانات Postgres وSlack - ثلاثة خوادم MCP منفصلة، ثلاثة اتصالات عميل منفصلة، مضيف واحد.
كيف تتدفق الرسائل (JSON-RPC 2.0)
تستخدم جميع اتصالات MCP JSON-RPC 2.0 - بروتوكول طلب/استجابة خفيف. إليك شكل تبادل tools/list على الشبكة:
// طلب العميل: "ما الأدوات التي لديك؟"
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/list"
}
// استجابة الخادم: أداة واحدة متاحة
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"tools": [
{
"name": "get_weather",
"description": "الحصول على الطقس الحالي لمدينة",
"inputSchema": {
"type": "object",
"properties": {
"city": { "type": "string" }
},
"required": ["city"]
}
}
]
}
}يقرأ النموذج تعريفات الأدوات هذه، ويقرر متى يستدعيها بناءً على طلب المستخدم، ويرسل العميل طلب tools/call إلى الخادم مرة أخرى بالمعاملات المناسبة.
دورة حياة الاتصال
تتبع كل جلسة MCP نفس دورة الحياة:
- التهيئة - يرسل العميل القدرات، يستجيب الخادم بقدراته
- التفاوض على القدرات - يتفق الطرفان على الميزات المدعومة (الأدوات، الموارد، الموجّهات، العيّنة)
- الجاهزية - الاتصال نشط؛ تتدفق الطلبات في كلا الاتجاهين
- الطلبات/الاستجابات -
tools/call،resources/read، إلخ. - الإغلاق - قطع الاتصال بشكل نظيف
يضمن هذا المصافحة التوافق للأمام. إذا أضاف خادم أولية جديدة، تتجاهلها العملاء الأقدم بأناقة بدلاً من التعطّل.
أوليات MCP: الأدوات والموارد والموجّهات والعيّنة
يُعرّف MCP أربع أوليات، وفهم من يتحكم في كل منها هو مفتاح تصميم خوادم MCP الجيدة.
| الأولية | من يتحكم بها | الاتجاه | مثال | حالة الاستخدام |
|---|---|---|---|---|
| الأدوات | النموذج يقرر متى يستدعيها | العميل -> الخادم | create_github_issue | إجراءات ينفذها الذكاء الاصطناعي باستقلالية |
| الموارد | التطبيق/المستخدم يختار | العميل -> الخادم | file://project/README.md | بيانات مرفقة بالسياق |
| الموجّهات | المستخدم يُشغّل | العميل -> الخادم | قالب code_review | أنماط تفاعل قابلة للإعادة |
| العيّنة | الخادم يطلب الإكمال | الخادم -> العميل | الخادم يطلب من النموذج التلخيص | حلقات وكيلية يستخدم فيها الخادم النموذج اللغوي |
الأدوات (يتحكم بها النموذج)
الأدوات هي دوال يمكن للنموذج استدعاؤها. يُعلن الخادم عنها باسم ووصف وتعريف مخطط إدخال JSON. يقرأ النموذج هذه التعريفات وعندما يتطلب طلب المستخدم ذلك، يقرر استدعاء الأداة.
// العميل يرسل طلب tools/call
{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/call",
"params": {
"name": "get_weather",
"arguments": { "city": "الرياض" }
}
}إذا استخدمت استدعاء الدوال في OpenAI، ستبدو الأدوات مألوفة - لكنها مُقنَّنة لكل نموذج متوافق مع MCP.
الموارد (تتحكم بها التطبيقات)
الموارد هي نقاط نهاية بيانات للقراءة فقط. على عكس الأدوات، لا يقرر النموذج جلب مورد بمفرده - يرفق تطبيق المضيف أو المستخدم الموارد صراحةً بسياق المحادثة. فكّر فيها كنقاط نهاية GET: postgres://mydb/users/schema، file://docs/api-reference.md.
تدعم الموارد الاشتراكات عبر resources/subscribe، بحيث يمكن إخطار العميل عند تغيير البيانات. للمزيد من التفاصيل، راجع دليل هندسة السياق.
الموجّهات (يتحكم بها المستخدم)
الموجّهات هي قوالب قابلة لإعادة الاستخدام يكشفها خادم MCP. قد يقبل موجّه code_review مسار ملف ويُنشئ طلب مراجعة مُنظَّم. المستخدم (أو واجهة المضيف) يُشغّل الموجّهات بشكل صريح - لا يستدعيها النموذج تلقائياً.
العيّنة (بادئها الخادم) - متقدم
هذه هي الأولية التي تتخطاها معظم الأدلة. العيّنة تتيح للخادم طلب إكمال من العميل باستخدام النموذج اللغوي. هذا يعكس التدفق المعتاد: بدلاً من أن يستدعي النموذج أداة، تستدعي الأداة النموذج.
لماذا؟ الحلقات الوكيلية. تخيّل خادم MCP يعالج تذاكر الدعم. يقرأ التذكرة (مورداً)، يستخدم sampling/createMessage لطلب ملخص من النموذج، ثم يستخدم ذلك الملخص لتوجيه التذكرة عبر أداة. يُنسّق الخادم سير عمل متعدد الخطوات مستفيداً من ذكاء النموذج.
العيّنة مُتحكَّم بها من قِبل تطبيق المضيف - يجب على المستخدم الموافقة عليها، والمضيف يتحكم فيما يمكن للخادم طلبه. هذا يمنع الحلقات الخارجة عن السيطرة ويحافظ على الإشراف البشري.
ابنِ أول خادم MCP لك: Python وTypeScript جنباً إلى جنب
يكفي نظرية. لنبنِ خادم MCP يعمل فعلاً ويكشف أداة get_weather. سأُظهر كلاً من Python وTypeScript حتى تتمكن من مقارنة تجربة المطور واختيار المكدّس الذي يناسب مشروعك.
Python مع FastMCP
FastMCP هو مجموعة أدوات التطوير Python الرسمية عالية المستوى. تتعامل مع كل بنية البروتوكول حتى تتمكن من التركيز على منطق الأداة.
# تثبيت FastMCP
pip install fastmcp# weather_server.py
from fastmcp import FastMCP
mcp = FastMCP("خادم الطقس")
@mcp.tool()
def get_weather(city: str) -> str:
"""الحصول على الطقس الحالي لمدينة."""
# في الإنتاج، استدعِ واجهة API للطقس هنا
weather_data = {
"الرياض": "مشمس، 28 درجة",
"طوكيو": "مشمس، 22 درجة",
"نيويورك": "ممطر، 8 درجات",
}
return weather_data.get(city, f"لا توجد بيانات لـ {city}")
if __name__ == "__main__":
mcp.run()هذا كل شيء - 15 سطراً. FastMCP يستنتج مخطط إدخال الأداة من تلميحات نوع Python والوثائق. لا حاجة لأي نموذج JSON Schema.
TypeScript مع مجموعة أدوات التطوير الرسمية
مجموعة أدوات التطوير TypeScript (@modelcontextprotocol/sdk) أكثر صراحة قليلاً لكنها تمنحك تحكماً كاملاً في تعريفات المخطط.
# تثبيت مجموعة أدوات التطوير وZod للتحقق من المخطط
npm install @modelcontextprotocol/sdk zod// weather-server.ts
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
import { z } from "zod";
const server = new McpServer({
name: "خادم الطقس",
version: "1.0.0",
});
server.tool(
"get_weather",
"الحصول على الطقس الحالي لمدينة",
{ city: z.string() },
async ({ city }) => {
const weatherData: Record<string, string> = {
"الرياض": "مشمس، 28 درجة",
"طوكيو": "مشمس، 22 درجة",
"نيويورك": "ممطر، 8 درجات",
};
return {
content: [
{ type: "text", text: weatherData[city] ?? `لا توجد بيانات لـ ${city}` },
],
};
}
);
const transport = new StdioServerTransport();
await server.connect(transport);تستخدم نسخة TypeScript مخططات Zod بدلاً من تلميحات النوع وتُعيد كتل محتوى منظّمة. أكثر إسهاباً، لكن أمان النوع ممتاز.
الاتصال بـ Claude Desktop
لربط أي من الخادمين بـ Claude Desktop، أضفه إلى claude_desktop_config.json:
{
"mcpServers": {
"weather-python": {
"command": "python",
"args": ["weather_server.py"],
"cwd": "/مسار/مشروعك"
},
"weather-typescript": {
"command": "npx",
"args": ["tsx", "weather-server.ts"],
"cwd": "/مسار/مشروعك"
}
}
}أعد تشغيل Claude Desktop وسيظهر كلا خادمَي الطقس في قائمة الأدوات. اسأل "ما حال الطقس في الرياض؟" وسيستدعي النموذج أداة get_weather تلقائياً.
الاختبار مع MCP Inspector
قبل ربط خادمك بمضيف، اختبره بمعزل مع MCP Inspector:
npx @modelcontextprotocol/inspector python weather_server.pyيفتح Inspector واجهة مستخدم في المتصفح حيث يمكنك رؤية الأدوات المكتشفة واستدعاؤها يدوياً وفحص رسائل JSON-RPC المتبادلة. إنه أفضل أداة تصحيح في نظام MCP البيئي - استخدمها مبكراً وكثيراً.
نقل MCP: stdio للتطوير، Streamable HTTP للإنتاج
تحتاج رسائل MCP إلى طريقة للتنقل بين العميل والخادم. هذه طبقة النقل، واختيار الصحيح منها مهم.
| النقل | حالة الاستخدام | المزايا | العيوب | الحالة |
|---|---|---|---|---|
| stdio | التطوير المحلي، الأدوات الشخصية | لا إعداد، بسيط، سريع | نفس الجهاز فقط | نشط |
| Streamable HTTP | الإنتاج، الخوادم البعيدة، متعدد المستخدمين | يعمل عبر الشبكة، يدعم البث عبر SSE، صديق للحالة عديمة | يتطلب خادم HTTP، يحتاج مصادقة | نشط (مواصفات 2025) |
| HTTP+SSE (قديم) | نقل بعيد قديم | كان خيار النقل البعيد الأصلي | استُبدل بـ Streamable HTTP | مُهمَل |
يعمل stdio بتشغيل خادم MCP كعملية فرعية والتواصل عبر stdin/stdout. هذا ما استخدمته في الشرح أعلاه - لا منافذ، لا TLS، لا مصادقة مطلوبة. مثالي للتطوير والأدوات المحلية للمستخدم الواحد.
Streamable HTTP هو نقل الإنتاج، المُضاف في تحديث مواصفات 2025. يرسل العملاء طلبات HTTP POST عادية إلى الخادم. يمكن للخادم الاستجابة بشكل متزامن أو فتح تدفق SSE للعمليات الأطول. إنه صديق للحالة عديمة، يعمل خلف موازنات التحميل، ويدعم مصادقة HTTP القياسية.
إذا رأيت شروحاً قديمة تذكر "HTTP+SSE" كنقلين منفصلين (أحدهما للإرسال والآخر للاستقبال)، فذلك هو النهج المُهمَل. Streamable HTTP يجمع كليهما في آلية واحدة أنظف.
القرار بسيط: استخدم stdio عند التطوير محلياً، وانتقل إلى streamable-http عند النشر للآخرين.
// التبديل من stdio إلى Streamable HTTP في TypeScript
import { StreamableHTTPServerTransport } from "@modelcontextprotocol/sdk/server/streamableHttp.js";
const transport = new StreamableHTTPServerTransport({ port: 3001 });
await server.connect(transport);MCP مقابل استدعاء الدوال مقابل REST APIs - متى تستخدم كلاً منها
هذا هو السؤال الذي يطرح نفسه في كل نقاش حول MCP، فلنحسمه بمقارنة مباشرة.
| الميزة | MCP | استدعاء الدوال | REST APIs |
|---|---|---|---|
| التقنين | بروتوكول مفتوح، محايد للنماذج | لكل مزوّد (OpenAI وAnthropic لكل منهما نظامه) | عالمي |
| اكتشاف الأدوات | مدمج (tools/list) | لا شيء - ترسل المخططات مع كل طلب | لا شيء - يتطلب وثائق أو مواصفات OpenAPI |
| الوصول للبيانات | أولية الموارد | غير مدعوم | نقاط نهاية قياسية |
| قوالب الموجّهات | أولية الموجّهات | غير مدعوم | غير قابل للتطبيق |
| المصادقة | OAuth 2.1 (على مستوى المواصفات) | مفتاح API من المزوّد | يتفاوت (مفاتيح API، OAuth، إلخ.) |
| البث | SSE عبر Streamable HTTP | يعتمد على المزوّد | يتفاوت |
| تعدد النماذج | يعمل مع أي نموذج متوافق مع MCP | مقيّد بواجهة API مزوّد واحد | محايد للنماذج (مع كود وصل) |
| نظام بيئي للخوادم | أكثر من 10,000 خادم جاهز | لا ينطبق | ملايين من APIs |
| تعقيد الإعداد | تشغيل خادم MCP | إرسال JSON في استدعاء API | عميل HTTP |
| الأنسب لـ | بيئات وكلاء متعددة النماذج والأدوات | تطبيقات بسيطة بنموذج واحد وعدد قليل من الأدوات | التواصل بين الخدمات |
متى يكفي استدعاء الدوال
إذا كان لديك أقل من 5 أدوات وتستخدم نموذجاً واحداً، فاستدعاء الدوال أبسط. تُعرّف مخططات أدواتك مضمّنة مع كل استدعاء API، يُعيد النموذج اسم الدالة والمعاملات، وتنفّذها في كود تطبيقك. لا خادم للتشغيل، لا بروتوكول للتعلم. لروبوت محادثة يتحقق من حالة الطلبات ويبحث في الأسئلة الشائعة، استدعاء الدوال جيد تماماً. قد يهمك أيضاً مقارنة Claude Code و Cursor و Copilot.
متى يستحق MCP الجهد
يُبرر MCP تعقيده عندما:
- تدعم نماذج لغوية متعددة ولا تريد إعادة كتابة تعريفات الأدوات لكل مزوّد
- تحتاج إلى اكتشاف الأدوات - يمكن للنموذج الاستعلام عما هو متاح بدلاً من ترميز المخططات بشكل ثابت
- تريد الموارد والموجّهات، وليس فقط استدعاءات الأدوات
- تبني وكلاء ذكاء اصطناعي ينسّقون باستقلالية وتحتاج طبقة تكامل مقنّنة
- يتنامى فريقك ومهندسون مختلفون يبنون أدوات مختلفة - MCP يتيح لهم العمل باستقلالية
الحكم: MCP يفوز عندما تحتاج وصولاً مقنّناً لأدوات بنماذج متعددة. استدعاء الدوال يفوز لحالات استخدام بسيطة بنموذج واحد. تبقى REST APIs الخيار الصحيح للتواصل التقليدي بين الخدمات الذي لا يشمل نموذجاً لغوياً.
نظام MCP البيئي في 2026: من يدعمه وما المتاح
انتقل MCP من مشروع جانبي لـ Anthropic إلى معيار صناعي في أقل من 18 شهراً. إليك الحالة الراهنة.
أي النماذج اللغوية تدعم MCP؟
| النموذج | دعم MCP | منذ | ملاحظات |
|---|---|---|---|
| Claude | دعم أصلي وكامل | نوفمبر 2024 | أنشأ MCP؛ أعمق تكامل |
| ChatGPT | دعم رسمي | مارس 2025 | عبر تكامل MCP لـ OpenAI |
| Gemini | دعم رسمي | أبريل 2025 | خوادم MCP من Google Cloud لخدمات Google |
| Llama / المصدر المفتوح | عبر المحوّلات | 2025 | LangChain وLlamaIndex ومحوّلات مخصصة |
| Copilot (VS Code) | أصلي في وضع الوكيل | 2025 | Microsoft يُضمّن دعم MCP في VS Code |
خوادم MCP الشهيرة الجديرة بالمعرفة
| الفئة | الخادم | ما يفعله |
|---|---|---|
| الكود | GitHub | طلبات السحب، المشكلات، المستودعات، البحث في الكود |
| الكود | GitLab | طلبات الدمج، خطوط الأنابيب، إدارة المشاريع |
| قاعدة البيانات | PostgreSQL | فحص المخطط، تنفيذ الاستعلامات |
| قاعدة البيانات | MySQL | الوصول للاستعلامات والمخطط |
| SaaS | Slack | رسائل القناة، البحث، الإشعارات |
| SaaS | Google Drive | الوصول للملفات، البحث، قراءة المستندات |
| SaaS | Notion | قراءة الصفحات، استعلامات قواعد البيانات |
| البحث | Brave Search | نتائج البحث على الويب |
| DevOps | Docker | إدارة الحاويات |
| البنية التحتية | AWS | إدارة موارد السحابة |
أشار إعلان AAIF من Linux Foundation إلى أكثر من 10,000 خادم نشط و97 مليون تنزيل شهري لمجموعات أدوات التطوير وقت تبرع MCP في ديسمبر 2025. لم يعد النظام البيئي تجريبياً - إنه جاهز للإنتاج.
MCP Apps أولية جديدة مُقدَّمة في يناير 2026. تتيح للخوادم توفير مكونات واجهة مستخدم تفاعلية تُعرض داخل تطبيق المضيف. لا تزال مبكرة، لكنها تُشير إلى تطور MCP من بروتوكول بيانات إلى إطار تطبيقات وكيلية كامل. جدير بالمتابعة.
الحوكمة: من Anthropic إلى Linux Foundation
يُحكَم MCP من قِبل Agentic AI Foundation (AAIF) تحت Linux Foundation، المشارك في تأسيسها من قِبل Anthropic وBlock وOpenAI. هذا مهم للتبني المؤسسي: MCP غير مرتبط بخارطة طريق بائع واحد. تركّز خارطة طريق 2026 على تطور النقل، التواصل بين الوكلاء (أولية "المهام" الجديدة)، نضج الحوكمة، والجاهزية المؤسسية.
للفرق التي تبني أنظمة ذكاء اصطناعي للإنتاج، تتكامل بالفعل أطر مثل إطار وكيل ذكاء اصطناعي مستقل مثل OpenClaw مع خوادم MCP لمنح الوكلاء قدرات في العالم الحقيقي.
أمان MCP: OAuth 2.1 والتهديدات وقائمة فحص عملية
الأمان هو المجال الذي يحتاج فيه نظام MCP البيئي لأكبر قدر من التحسين. والأرقام تُصوّر صورة صارخة.
مشكلة 88%: لماذا معظم خوادم MCP غير آمنة
حللت Astrix Security أكثر من 5,200 تطبيق لخادم MCP مفتوح المصدر ووجدت أن 88% تتطلب نوعاً من بيانات الاعتماد - لكن 53% تعتمد على أسرار ثابتة طويلة الأمد وغير آمنة مثل مفاتيح API ورموز الوصول الشخصية المرمّزة بشكل ثابت في ملفات الإعداد. 8.5% فقط تُطبّق OAuth.
هذا يعني أن الغالبية العظمى من خوادم MCP في البرية تستخدم ما يعادل المصادقة بلصق مفتاح منزلك على الباب الأمامي.
OAuth 2.1 لخوادم MCP
تشترط مواصفات MCP OAuth 2.1 لجميع الخوادم القائمة على HTTP اعتباراً من تحديث يونيو 2025. يعمل التدفق هكذا: يُبادر عميل MCP بتدفق ترخيص OAuth 2.1 مع الخادم، ويحصل على رمز وصول محدود النطاق، ويُدرجه مع كل طلب لاحق. PKCE (مفتاح إثبات لتبادل الكود) مطلوب لجميع العملاء - بلا استثناء.
إذا كنت تبني خادم MCP يعمل عبر Streamable HTTP، فإن OAuth 2.1 ليس اختيارياً. إنه مُلزَم بالمواصفات.
نموذج التهديد: ما الذي قد يسوء
أربعة تهديدات تستحق الاهتمام في أي نشر MCP:
- حقن الموجّه عبر الأدوات - مصدر بيانات خبيث أو مخترق يُعيد محتوى مُصمَّماً لتلاعب النموذج. إذا جلبت أداة صفحة ويب وكانت تلك الصفحة تحتوي على تعليمات مخفية، قد ينفّذها النموذج.
- هجوم النائب المرتبك - النموذج يستدعي أداة بصلاحيات أوسع مما أراد المستخدم. إذا كان لخادم MCP وصول إداري لقاعدة بيانات، قد يحذف النموذج نظرياً جدولاً.
- مخاطر تركّز الرمز - خادم MCP يحمل مفاتيح API لـ GitHub وSlack وقاعدة بيانات الإنتاج يُعدّ هدفاً واحداً عالي القيمة. اخترق خادماً واحداً، وستخترق كل ما يتصل به.
- نقل غير آمن - تشغيل خادم MCP HTTP بلا TLS يُعرّض كل طلب، بما في ذلك رموز OAuth والبيانات الحساسة، بنص واضح.
قائمة فحص الأمان لإنتاج MCP
- طبّق OAuth 2.1 لأي خادم مكشوف عبر HTTP. لا مفاتيح API ثابتة في ملفات الإعداد.
- طبّق نطاق الحد الأدنى من الامتيازات. إذا كانت أداتك تقرأ البيانات فقط، فيجب أن تكون بيانات اعتماد الخادم للقراءة فقط. لا تمنح أداة إعداد التقارير صلاحية الكتابة.
- عزل بيانات الاعتماد. ينبغي لكل خادم MCP أن يمتلك رموزه المحدودة النطاق الخاصة. لا تشارك "رمزاً إلهياً" واحداً عبر الخوادم.
- فرض TLS في كل مكان. Streamable HTTP بدون HTTPS رفض تلقائي للإنتاج.
- التحقق من نواتج الأدوات وتطهيرها. تعامل مع البيانات التي تُعيدها الأدوات بنفس الطريقة التي تتعامل بها مع مدخلات المستخدم - لا تثق بها بشكل أعمى.
- تحديد معدل استدعاءات الأدوات. حلقة وكيل خارجة عن السيطرة تستدعي أداة آلاف المرات قد تستنفد حصص API أو تتسبب في آثار جانبية غير مقصودة.
- تدقيق وتسجيل كل استدعاء أداة. ضمّن معرّفات الطلبات والطوابع الزمنية والنموذج المستدعي ومعاملات الأداة. ستحتاج هذا لتصحيح الأخطاء والاستجابة لحوادث الأمان.
تصحيح MCP: Inspector والتسجيل والأخطاء الشائعة
ستواجه أخطاء. كل مطور يواجه ذلك. إليك كيف تُصلحها بسرعة.
MCP Inspector هو أداة التصحيح الرسمية وخط دفاعك الأول. يتصل بأي خادم MCP ويكتشف أدواته/موارده/موجّهاته ويتيح لك استدعاءها يدوياً بينما يُظهر حركة JSON-RPC الخام.
# تشغيل Inspector ضد خادم Python
npx @modelcontextprotocol/inspector python weather_server.py
# أو ضد خادم TypeScript
npx @modelcontextprotocol/inspector npx tsx weather-server.tsيفتح Inspector واجهة مستخدم في المتصفح بتبويبات للأدوات والموارد والموجّهات ولوحة الإشعارات. يمكنك استدعاء أي أداة بمعاملات مخصصة ورؤية بالضبط JSON الذي يمر عبر الشبكة. استخدمه قبل الاتصال بتطبيق المضيف - أسهل بكثير تصحيح الخادم بمعزل.
الأخطاء الشائعة وإصلاحاتها
- "الخادم غير موجود" في Claude Desktop - دائماً تقريباً مشكلة مسار في
claude_desktop_config.json. تحقق مضاعفاً من أنcommandيُحلّل إلى ملف ثنائي حقيقي وأنcwdيُشير إلى الدليل الصحيح. في macOS، استخدم مسارات مطلقة. - فشل التحقق من صحة مخطط الأداة - إذا أرسل النموذج معاملات لا تتطابق مع
inputSchemaالأداة، يرفض الخادم الاستدعاء. تحقق من أن أنواع مخططك تتطابق مع ما يتوقعه النموذج. Zod (TypeScript) وتلميحات النوع (Python) تلتقط معظمها وقت التعريف. - انقطاع اتصال النقل - لـ
stdioهذا يعني عادةً أن عملية الخادم تعطّلت. تحقق من مخرج stderr. لـ Streamable HTTP، تحقق من إعدادات المهلة - الأدوات طويلة التشغيل قد تتجاوز مهل HTTP الافتراضية. - أخطاء "رُفض الإذن" أو 401 - نطاق OAuth ضيّق جداً. الخادم يرفض الرمز لأنه لا يمتلك الأذونات المطلوبة. وسّع النطاق، لكن فقط بقدر ما تحتاجه الأداة فعلاً.
أفضل ممارسات التسجيل
نظّم سجلاتك بمعرّفات الطلبات حتى تتمكن من تتبع طلب مستخدم واحد عبر عميل MCP والخادم وأي APIs المصب. سجّل كل استدعاء tools/call باسم الأداة والمعاملات ووقت الاستجابة وحالة النتيجة. في الإنتاج، أرسل هذه السجلات إلى منصة رصد - عندما يسوء شيء في الثالثة صباحاً، ستسعد بأنك فعلت ذلك. تعرف أيضاً على دليل استدعاء الدوال في LLM.
كيف تبني Techsy مع MCP
نُدمج MCP في مشاريع العملاء منذ مطلع 2025، والنمط الذي نراه أكثر شيوعاً هو هذا: لدى الفريق ميزة ذكاء اصطناعي تعمل مع نموذج واحد وعدد من الأدوات، لكنهم يخططون للتوسع - نماذج أكثر، مصادر بيانات أكثر، قدرات وكيلية أكثر. هذه هي نقطة التحوّل التي يبدأ فيها MCP في أداء دوره.
نهجنا يتبع ثلاث خطوات:
- تقييم الملاءمة. ليس كل مشروع يحتاج MCP. إذا كنت تستدعي أداتين من نموذج واحد، فاستدعاء الدوال أبسط وسنخبرك بذلك. MCP منطقي عند ربط 3 مصادر بيانات أو أكثر، أو دعم نماذج متعددة، أو بناء سير عمل وكيلية حيث يجب اكتشاف الأدوات.
- بناء الخوادم واختبارها بمعزل. نُطوّر خوادم MCP مخصصة لكل مصدر بيانات - قواعد بيانات داخلية، واجهات API لـ SaaS، خدمات مملوكة - ونتحقق منها مع MCP Inspector قبل الاتصال بأي مضيف.
- النشر مع Streamable HTTP وOAuth 2.1. للإنتاج، نُشغّل خوادم MCP كخدمات مُحتواة خلف TLS، مع رموز OAuth محدودة النطاق وتسجيل منظّم من اليوم الأول. لا أسرار ثابتة.
التكاملات الأكثر شيوعاً التي نبنيها: ربط مساعدي الذكاء الاصطناعي بقواعد بيانات Postgres الداخلية، بناء خوادم MCP مخصصة لمنصات SaaS العملاء، وترحيل الفرق من إعدادات استدعاء الدوال المتفرقة إلى معمارية MCP مقنّنة.
هل تبني أدوات مدعومة بالذكاء الاصطناعي تحتاج للاتصال ببنيتك التحتية؟ نساعد الفرق في تصميم وتنفيذ تكاملات MCP. احصل على استشارة مجانية
الأسئلة الشائعة حول MCP
ما هو بروتوكول سياق النموذج (MCP)؟
MCP معيار مفتوح، أنشأته Anthropic في الأصل وتديره الآن Linux Foundation، يُعرّف كيفية اتصال نماذج الذكاء الاصطناعي بالأدوات الخارجية ومصادر البيانات والخدمات. يُقنّن طبقة التكامل بحيث يعمل خادم MCP واحد مع أي نموذج متوافق - كمقبس شامل للذكاء الاصطناعي.
كيف يعمل MCP؟
يستخدم MCP معمارية ثلاثية الأجزاء: تطبيق مضيف (مثل Claude Desktop أو Cursor)، عميل MCP داخل المضيف يدير الاتصالات، وخوادم MCP تكشف الأدوات والبيانات. يستخدم جميع التواصل رسائل JSON-RPC 2.0 عبر stdio (محلي) أو Streamable HTTP (بعيد).
ما استخدامات MCP؟
تشمل حالات الاستخدام الشائعة ربط مساعدي الذكاء الاصطناعي بقواعد البيانات (Postgres، MySQL)، التكامل مع منصات الكود (GitHub، GitLab)، الوصول إلى أدوات SaaS (Slack، Notion، Google Drive)، وبناء وكلاء ذكاء اصطناعي مستقلين يحتاجون للتفاعل مع الخدمات الحقيقية.
هل MCP هو نفسه استدعاء الدوال؟
لا. استدعاء الدوال خاص بالنموذج (تختلف صيغة OpenAI عن Anthropic) ولكل طلب - ترسل مخططات الأدوات مع كل استدعاء API. MCP بروتوكول مقنّن يعمل عبر النماذج ويدعم اكتشاف الأدوات ويتضمن الموارد والموجّهات ما وراء تنفيذ الدوال فحسب.
ما هي خوادم MCP؟
خوادم MCP برامج تكشف الأدوات والموارد والموجّهات لنماذج الذكاء الاصطناعي عبر بروتوكول MCP. تُغلّف واجهات API الخارجية ومصادر البيانات في واجهة مقنّنة. تشمل الأمثلة خادم GitHub MCP (لإدارة طلبات السحب والمشكلات) وخادم Postgres MCP (لاستعلامات قواعد البيانات).
كيف أبني خادم MCP؟
استخدم Python مع FastMCP (pip install fastmcp) أو TypeScript مع مجموعة أدوات التطوير الرسمية (npm install @modelcontextprotocol/sdk). عرّف أدواتك كدوال مزوّدة (Python) أو معالجات مسجّلة (TypeScript)، ثم شغّل الخادم. راجع قسم الشرح أعلاه للكود الكامل العملي.
هل MCP آمن؟
البروتوكول نفسه يدعم OAuth 2.1 للمصادقة والأذونات المحدودة النطاق. لكن بحث Astrix Security وجد أن 88% من تطبيقات خادم MCP الموجودة تعتمد على أسرار ثابتة عوضاً عن OAuth. البروتوكول آمن بالتصميم، لكن معظم عمليات النشر الحقيقية لم تلحق بعد.
أي نماذج لغوية تدعم MCP؟
Claude يمتلك دعم MCP أصلياً منذ إنشائه في نوفمبر 2024. ChatGPT أضاف الدعم في مارس 2025، وتبعه Gemini في أبريل 2025. يمكن للنماذج مفتوحة المصدر استخدام MCP عبر المحوّلات في LangChain وLlamaIndex.
ما الفرق بين MCP وREST API؟
صُمّمت REST APIs للتواصل العام بين الخدمات. صُمّم MCP خصيصاً للتفاعل مع نماذج الذكاء الاصطناعي - يتضمن اكتشاف الأدوات والتفاوض على المخطط والوصول إلى الموارد وقوالب الموجّهات التي لا تمتلكها REST. لن تستبدل REST APIs بـ MCP؛ إنهما يخدمان طبقات مختلفة.
من يُشرف على MCP الآن؟
Agentic AI Foundation (AAIF) التابعة لـ Linux Foundation، المُشكَّلة في ديسمبر 2025، تُحكم MCP. أسسها بالاشتراك Anthropic وBlock وOpenAI. هذه الحوكمة المحايدة من البائعين هي سبب رئيسي لتبني الشركات MCP.
ما هو Streamable HTTP في MCP؟
Streamable HTTP آلية نقل الإنتاج المُضافة في تحديث مواصفات MCP لعام 2025. تحلّ محل نقل HTTP+SSE القديم بتصميم أنظف: يرسل العملاء طلبات HTTP POST ويمكن للخوادم الاستجابة بشكل متزامن أو عبر بث SSE. يعمل خلف موازنات التحميل ويدعم مصادقة HTTP القياسية.
كم عدد خوادم MCP الموجودة؟
أشارت Linux Foundation إلى أكثر من 10,000 خادم نشط و97 مليون تنزيل شهري لمجموعات أدوات التطوير حين تبرّع بـ MCP لـ AAIF في ديسمبر 2025. يمتد النظام البيئي ليشمل قواعد البيانات وأدوات الكود وتكاملات SaaS ومحركات البحث ومزودي البنية التحتية السحابية.
الخلاصة
انتقل MCP من تجربة المصدر المفتوح لـ Anthropic إلى بروتوكول صناعي معياري لربط نماذج الذكاء الاصطناعي بالأدوات في أكثر من عام قليلاً. إليك ما يهم:
- MCP يحل مشكلة M × N - خادم واحد يعمل مع كل نموذج متوافق، وعميل واحد يعمل مع كل خادم
- يمكنك بناء خادم MCP يعمل في أقل من 50 سطراً من Python (FastMCP) أو TypeScript
- استخدم stdio للتطوير، وStreamable HTTP للإنتاج - اختيار النقل بسيط
- أمّن خوادمك بـ OAuth 2.1 - 88% من التطبيقات الحالية لا تفعل ذلك وهذه مخاطرة حقيقية
- النظام البيئي جاهز للإنتاج - أكثر من 10,000 خادم، جميع النماذج اللغوية الكبرى، حوكمة محايدة تحت Linux Foundation
بالنظر إلى الأمام، تركّز خارطة طريق 2026 على التواصل بين الوكلاء عبر أولية Tasks جديدة، وأمان مؤسسي محسّن، وMCP Apps لواجهة مستخدم تفاعلية مدفوعة من الخادم. لم يعد MCP مجرد بروتوكول للوصول إلى الأدوات - إنه يتحول إلى طبقة البنية التحتية للذكاء الاصطناعي الوكيل.
ابدأ بكود الشرح أعلاه، اختبره في MCP Inspector، واربطه بـ Claude Desktop. ستمتلك تكامل MCP يعمل في أقل من ساعة.
المصادر
- مواصفات MCP (2025-11-25)
- مواصفات تفويض MCP
- مواصفات نقل MCP
- وثائق MCP Inspector
- تقديم بروتوكول سياق النموذج - Anthropic
- التبرع بـ MCP لـ Linux Foundation - Anthropic
- إعلان Linux Foundation AAIF
- دعم MCP من Google Cloud
- FastMCP Python SDK
- MCP TypeScript SDK
- Astrix Security: حالة أمان خادم MCP 2025
- خارطة طريق MCP 2026