بروتوكولات وكيل الذكاء الاصطناعي (MCP و A2A)
السؤال الأساسي
كيف "يتحدث" وكلاء الذكاء الاصطناعي مع العالم الخارجي؟ تماماً كما يحتاج الإنترنت إلى بروتوكول HTTP، يحتاج وكلاء الذكاء الاصطناعي أيضاً إلى بروتوكولات اتصال موحدة. يقدم هذا الفصل بروتوكولين رئيسيين: MCP و A2A، يحلان مشاكل التواصل بين الذكاء الاصطناعي والأدوات، وبين الوكلاء أنفسهم.
0. ما هو البروتوكول؟
في مجال الحوسبة، البروتوكول (Protocol) هو مجموعة من القواعد والاتفاقيات الموحدة التي تتيح لأنظمة وبرامج مختلفة "الفهم" و"التواصل" فيما بينها.
0.1 لماذا نحتاج البروتوكولات؟
تخيل موقفاً: تريد إرسال طرد لصديق وتحتاج إلى كتابة العنوان. لو كان كل شخص يكتب العنوان بشكل مختلف، لن يتمكن ساعي البريد من التسليم. البروتوكول هو المعيار الذي يحدد "كيفية كتابة العنوان" — المحافظة، المدينة، الحي، الشارع، رقم المنزل؛ عند الكتابة بهذا الشكل، يمكن للجميع الفهم.
الحواسيب أيضاً كذلك. لكي يتواصل برنامجان، يجب الاتفاق على:
- ما هو تنسيق البيانات؟ (JSON؟ ثنائي؟)
- كيف يتم إنشاء الاتصال؟ (عملية المصافحة)
- ماذا نفعل عند حدوث خطأ؟ (معالجة الأخطاء)
0.2 البروتوكولات الشائعة في الحوسبة
| البروتوكول | الوظيفة | تستخدمه يومياً |
|---|---|---|
| HTTP | بروتوكول نقل الويب | المتصفح يفتح صفحات الويب |
| HTTPS | HTTP مشفر | الخدمات المصرفية، صفحات الدفع |
| TCP/IP | بروتوكول الإنترنت الأساسي | جميع اتصالات الشبكة |
| DNS | بروتوكول تحليل أسماء النطاقات | تحويل google.com إلى عنوان IP |
| SMTP | بروتوكول إرسال البريد | إرسال البريد الإلكتروني |
| WebSocket | اتصال ثنائي الاتجاه في الوقت الفعلي | برامج الدردشة، الألعاب عبر الإنترنت |
| SSH | تسجيل الدخول عن بُعد بشكل آمن | الاتصال بالخوادم |
| FTP | بروتوكول نقل الملفات | رفع/تنزيل الملفات |
تشكل هذه البروتوكولات حجر الأساس للإنترنت. بدونها، لا يمكنك تصفح الويب أو إرسال البريد أو مشاهدة الفيديو.
0.3 قيمة البروتوكولات
القيمة الأساسية للبروتوكولات هي التوحيد والتشغيل البيني:
- التوحيد: يعمل الجميع وفق نفس القواعد، مما يقلل تكاليف الاتصال
- التشغيل البيني: يمكن للأنظمة من موردين وتقنيات مختلفة التواصل بسلاسة
على سبيل المثال، يتيح بروتوكول HTTP لمتصفح Chrome الوصول إلى خوادم Nginx، ولمتتبع بايثون جمع البيانات من مواقع جافا. لا حاجة لأن "يتعارف" Chrome و Nginx، فقط يلتزمان ببروتوكول HTTP.
0.4 وكلاء الذكاء الاصطناعي يحتاجون البروتوكولات أيضاً
لكي يتمكن وكلاء الذكاء الاصطناعي من "العمل" فعلياً، يحتاجون إلى:
- استدعاء أدوات خارجية (التحقق من الطقس، إرسال البريد، تشغيل قواعد البيانات)
- التعاون مع وكلاء آخرين (تقسيم العمل لإكمال المهام المعقدة)
هذا يتطلب بروتوكولات موحدة تحدد "كيف يستدعي الذكاء الاصطناعي الأدوات" و"كيف يتواصل الوكلاء فيما بينهم". هذا هو أصل MCP و A2A.
1. مستويات بروتوكولات الوكلاء
قبل التعمق في البروتوكولات المحددة، دعونا نلقي نظرة على مستويات الاتصال في نظام الوكلاء:
| المستوى | البروتوكول | المشكلة التي يحلها | التشبيه |
|---|---|---|---|
| 1 | Function Call | كيف تستدعي الذكاء الاصطناعي الدوال المحلية | الدماغ يصدر التعليمات |
| 2 | MCP | كيف تتصل الذكاء الاصطناعي بالأدوات ومصادر البيانات الخارجية | واجهة USB-C |
| 3 | A2A | كيف يتواصل الوكلاء ويتعاونون فيما بينهم | وي تشات للمؤسسات |
شرح الجدول سطراً بسطر
المستوى 1 (Function Call): هذه القدرة الأساسية للنماذج الكبيرة — تفعيل تنفيذ الدوال من خلال توليد بيانات منظمة (JSON). هي أساس "البروتوكولات"، لكنها في حد ذاتها أشبه بالقدرة من البروتوكول المعياري.
المستوى 2 (MCP): Model Context Protocol، أصدرته Anthropic في نوفمبر 2024. يوحّد طريقة اتصال الذكاء الاصطناعي بالأدوات ومصادر البيانات الخارجية، تماماً كما وحدت USB-C منافذ الشحن للأجهزة المختلفة.
المستوى 3 (A2A): Agent-to-Agent Protocol، أصدرته Google في أبريل 2025. يتيح للوكلاء المختلفين اكتشاف بعضهم البعض والتواصل والتعاون، تماماً كما يتيح وي تشات للمؤسسات للزملاء توزيع المهام والدردشة.
يركز هذا الفصل على البروتوكولين الرسميين في المستويين 2 و3: MCP و A2A.
2. MCP (Model Context Protocol)
2.1 المعلومات الأساسية للبروتوكول
| العنصر | المحتوى |
|---|---|
| الاسم الكامل | Model Context Protocol |
| المبادر | Anthropic |
| تاريخ الإصدار | 25 نوفمبر 2024 |
| الوثائق الرسمية | modelcontextprotocol.io |
| ترخيص المصدر المفتوح | MIT License |
| GitHub | github.com/modelcontextprotocol |
لماذا سُمي "Context Protocol"؟
السياق (Context) هو المفتاح لفهم النماذج الكبيرة للمهام. الفكرة الأساسية لـ MCP هي: تمكين الذكاء الاصطناعي من الحصول ديناميكياً على معلومات السياق المطلوبة، بدلاً من حشر كل المعلومات في الـ Prompt.
على سبيل المثال، عندما يحتاج الذكاء الاصطناعي لقراءة ملف، لا تحتاج لنسخ ولصق محتواه، بل يصل مباشرة إلى نظام الملفات عبر MCP.
2.2 خلفية الإصدار
في عام 2024، مع إطلاق Claude 3.5 Sonnet، اكتشفت Anthropic مشكلة: كل أداة يجب دمجها بشكل منفصل.
تخيل:
- تريد أن يقرأ الذكاء الاصطناعي مستودع GitHub → يجب كتابة كود تكامل GitHub
- تريد أن يستعلم الذكاء الاصطناعي قاعدة بيانات → يجب كتابة كود تكامل قاعدة البيانات
- تريد أن يعمل الذكاء الاصطناعي على نظام الملفات → يجب كتابة كود تكامل نظام الملفات
كل تكامل يتطلب كتابة كود مشابه بشكل متكرر: المصادقة، معالجة الأخطاء، تحويل البيانات...
كتبت Anthropic في مدونتها الرسمية:
"We're introducing the Model Context Protocol (MCP), an open protocol that standardizes how applications provide context to LLMs."
الهدف الأساسي: تمكين مطوري الأدوات من كتابة الكود مرة واحدة، لتستخدمه جميع تطبيقات الذكاء الاصطناعي المتوافقة مع MCP.
2.3 ما هو MCP؟
ثلاث قدرات أساسية:
| القدرة | الإنجليزية | الوظيفة | المثال |
|---|---|---|---|
| الأدوات | Tools | وظائف يمكن للذكاء الاصطناعي استدعاؤها | الاستعلام عن الطقس، إرسال البريد |
| الموارد | Resources | بيانات يمكن للذكاء الاصطناعي قراءتها | محتوى الملفات، سجلات قاعدة البيانات |
| الموجهات | Prompts | قوالب prompt محددة مسبقاً | قالب مراجعة الكود، قالب الكتابة |
2.4 التنفيذ الداخلي لـ MCP
Before MCP, AI could only read and respond. With MCP, AI can finally take action by operating programs and helping with real work.
Using MCP is simple: configure an mcp.json file, then your IDE can use MCP tools.
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-filesystem",
"/home/user/projects"
]
},
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": {
"GITHUB_TOKEN": "your-token-here"
}
},
"postgres": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-postgres"],
"env": {
"DATABASE_URL": "postgresql://user:pass@localhost/db"
}
}
}
}Suppose you have a weather API and want to wrap it as an MCP Server that AI can call. This Node.js example shows the shape:
import { Server } from '@modelcontextprotocol/sdk/server/index.js'
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js'
// 1. Create MCP Server
const server = new Server({
name: 'weather-server',
version: '1.0.0'
}, {
capabilities: { tools: {} }
})
// 2. Define tool list
server.setRequestHandler('tools/list', async () => ({
tools: [{
name: 'get_weather',
description: 'Get weather for a city',
inputSchema: {
type: 'object',
properties: {
city: { type: 'string', description: 'City name' }
},
required: ['city']
}
}]
}))
// 3. Implement tool call logic
server.setRequestHandler('tools/call', async (request) => {
const { name, arguments: args } = request.params
if (name === 'get_weather') {
// Call your weather API
const response = await fetch(
`https://api.weather.com/v1/current?city=${args.city}`
)
const data = await response.json()
return {
content: [{
type: 'text',
text: JSON.stringify(data)
}]
}
}
})
// 4. Start service through stdio
const transport = new StdioServerTransport()
await server.connect(transport)The MCP Server runs as a child process and communicates through standard input and output.
Pros: simple, secure, and suitable for local tools.
Cons: local only; no remote access.
The MCP Server runs as an HTTP service and supports SSE pushes.
Pros: remote access and sharing across multiple clients.
Cons: requires server deployment and authentication.
// Server sends an initialize request
{
"jsonrpc": "2.0",
"id": 1,
"method": "initialize",
"params": {
"protocolVersion": "2024-11-05",
"capabilities": {
"tools": {},
"resources": {},
"prompts": {}
},
"serverInfo": {
"name": "filesystem",
"version": "1.0.0"
}
}
}Deep Dive: JSON-RPC 2.0 Message Format
{
"jsonrpc": "2.0", // protocol version
"id": 1, // request ID used to match response
"method": "tools/call", // method name
"params": { ... } // parameter object
}// Successful response
{
"jsonrpc": "2.0",
"id": 1,
"result": { ... }
}
// Error response
{
"jsonrpc": "2.0",
"id": 1,
"error": {
"code": -32600,
"message": "Invalid Request"
}
}Deep Dive: Two Transport Modes
// Start MCP Server as a child process
npx @modelcontextprotocol/server-filesystem ./project
// Communicate through stdio
// stdin: receive requests
// stdout: send responses// HTTP transport with Server-Sent Events
POST /mcp HTTP/1.1
Content-Type: application/json
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": { ... }
}
// SSE long connection for push updates
GET /mcp/sse HTTP/1.1
// Continuously receive server updatesDeep Dive: MCP Core APIs
2.5 التشبيه: واجهة USB-C
MCP مثل واجهة USB-C:
- سابقاً: كان لكل جهاز منفذ شحن خاص به (دائري، مسطح، مغناطيسي...)
- الآن: وحدت USB-C الشحن ونقل البيانات لجميع الأجهزة
- MCP: وحد طريقة اتصال الذكاء الاصطناعي بجميع الأدوات
يحتاج مطورو الأدوات لتنفيذ MCP Server مرة واحدة فقط، لتتمكن جميع تطبيقات الذكاء الاصطناعي المتوافقة مع MCP (Claude، Cursor، Windsurf، إلخ) من استخدامه مباشرة.
2.6 سيناريوهات التطبيق النموذجية لـ MCP
| السيناريو | الوصف | المثال |
|---|---|---|
| عمليات الملفات المحلية | تمكين الذكاء الاصطناعي من قراءة/تعديل الملفات المحلية | قراءة مستودع الأكواد، تحليل ملفات السجل |
| استعلامات قاعدة البيانات | تمكين الذكاء الاصطناعي من الاستعلام المباشر عن قاعدة البيانات | استعلامات SQL، تحليل البيانات |
| استدعاء API | تمكين الذكاء الاصطناعي من استدعاء خدمات الطرف الثالث | GitHub API، Slack، البريد |
| تكامل أدوات التطوير | تمكين الذكاء الاصطناعي من استخدام أدوات التطوير | عمليات Git، أوامر الطرفية |
حالات استخدام فعلية:
- Cursor/Windsurf: الاتصال بنظام الملفات و Git والطرفية عبر MCP
- Claude Desktop: الاتصال ببرامج الملاحظات وعميل البريد عبر MCP
- البرمجيات النصية للأتمتة: تمكين الذكاء الاصطناعي من تنفيذ مهام مؤتمتة (النسخ الاحتياطي، النشر، مزامنة البيانات)
3. A2A (Agent-to-Agent Protocol)
3.1 المعلومات الأساسية للبروتوكول
| العنصر | المحتوى |
|---|---|
| الاسم الكامل | Agent-to-Agent Protocol |
| المبادر | |
| تاريخ الإصدار | 9 أبريل 2025 |
| الوثائق الرسمية | google.github.io/A2A |
| ترخيص المصدر المفتوح | Apache 2.0 |
| GitHub | github.com/google/A2A |
لماذا بدأت Google هذا المشروع؟
أصدرت Google بروتوكول A2A في مؤتمر Cloud Next 2025، مرتبطاً بشكل وثيق باستراتيجيتها للذكاء الاصطناعي المؤسسي.
تعتقد Google أن الذكاء الاصطناعي المؤسسي المستقبلي لن يكون وكيلاً خارقاً واحداً، بل وكلاء متخصصين متعددين يتعاونون — بعضهم مسؤول عن تحليل البيانات، وبعضهم عن توليد الأكواد، وبعضهم عن معالجة المستندات.
يحتاج هؤلاء الوكلاء إلى طريقة موحدة للتواصل فيما بينهم، ولهذا ظهر A2A.
3.2 خلفية الإصدار
حل MCP مشكلة "كيف يتصل الذكاء الاصطناعي بالأدوات"، لكن بقيت مشكلة: كيف يتعاون وكلاء متعددون؟
تخيل سيناريو:
- الوكيل A هو "خبير تحليل المتطلبات"
- الوكيل B هو "خبير توليد الأكواد"
- الوكيل C هو "خبير الاختبار"
يقول المستخدم: "ساعدني في تطوير ميزة تسجيل الدخول"
يحلل الوكيل A المتطلبات ويحتاج لتعيين المهمة للوكيل B؛ ينتهي الوكيل B من كتابة الكود ويحتاج للوكيل C للاختبار. كيف يتواصلون فيما بينهم؟
كتبت Google في مدونتها الرسمية:
"A2A is an open protocol that enables AI agents to communicate with each other, facilitating collaboration across different frameworks and vendors."
الهدف الأساسي: تمكين الوكلاء الذين طورهم موردين وأطر عمل مختلفة من التعاون بسلاسة.
3.3 ما هو A2A؟
ثلاثة مفاهيم أساسية:
| المفهوم | الإنجليزية | الوظيفة | التشبيه |
|---|---|---|---|
| Agent Card | بطاقة تعريف الوكيل | تصف قدرات الوكيل | شارة الموظف |
| Task | المهمة | وحدة العمل المراد تنفيذها | أمر العمل |
| Message | الرسالة | محتوى التواصل بين الوكلاء | سجل الدردشة |
3.4 التنفيذ الداخلي لـ A2A
A2A lets multiple AI agents collaborate instead of working alone. A complex task can be assigned to specialized agents, each doing what it is best at.
A2A is still early and mainly driven by Google. To try it, you need to develop an agent service that supports the A2A protocol.
// Agent A fetches Agent B's Agent Card
GET /.well-known/agent.json HTTP/1.1
Host: agent-b.company.com
// Response
{
"name": "Code Agent",
"description": "Professional code generation agent",
"url": "https://agent-b.company.com",
"version": "1.0.0",
"capabilities": {
"streaming": true,
"pushNotifications": true
},
"skills": [
{"id": "code-gen", "name": "Code generation"},
{"id": "code-review", "name": "Code review"}
]
}Deep Dive: Agent Card Format
{
"name": "Code Generation Agent",
"description": "Professional frontend and backend code generation agent",
"url": "https://code-agent.company.com",
"version": "1.0.0",
"capabilities": {
"streaming": true,
"pushNotifications": true
},
"skills": [
{
"id": "frontend",
"name": "Frontend development",
"description": "React/Vue/Angular"
},
{
"id": "backend",
"name": "Backend development",
"description": "Node/Python/Go"
}
],
"authentication": {
"schemes": ["Bearer", "OAuth2"]
}
}Deep Dive: HTTP + SSE Communication
POST /tasks/send HTTP/1.1
Host: agent-b.company.com
Content-Type: application/json
Authorization: Bearer {token}
{
"id": "task-001",
"message": {
"role": "user",
"parts": [{ "type": "text", "text": "Write a login endpoint" }]
}
}GET /tasks/task-001/sse HTTP/1.1
Authorization: Bearer {token}
event: progress
data: {"status": "processing", "progress": 50}
event: completed
data: {"status": "completed", "result": {...}}Deep Dive: A2A Core APIs
Deep Dive: Authentication
Authorization: Bearer sk-xxxxx
# or
Authorization: ApiKey sk-xxxxxAuthorization: Bearer {access_token}
# refresh token supported
POST /oauth/token
{
"grant_type": "refresh_token",
"refresh_token": "xxx"
}3.5 التشبيه: وي تشات للمؤسسات
A2A مثل وي تشات للمؤسسات:
- Agent Card: بطاقة تعريف كل شخص، تعرض الاسم والقسم والمسؤوليات
- توزيع المهام: @شخص ما، تعيين مهمة
- الدردشة: التواصل في أي وقت أثناء تنفيذ المهمة
- تتبع المهام: رؤية تقدم المهمة وحالتها
الوكلاء المختلفون مثل الزملاء المختلفين، يتيح A2A لهم التعاون لإكمال المشاريع المعقدة.
3.6 سيناريوهات التطبيق النموذجية لـ A2A
| السيناريو | الوصف | المثال |
|---|---|---|
| تطوير البرمجيات | وكلاء متعددون يتعاونون في مهام التطوير | تحليل المتطلبات←الكود←الاختبار←النشر |
| سير العمل المؤسسي | وكلاء من أقسام مختلفة يتعاونون | وكيل الموارد البشرية + وكيل المالية + وكيل الشؤون القانونية |
| خدمة العملاء الذكية | وكلاء متخصصون متعددون يقسمون العمل | الاستقبال←الإجابة←التحويل←التسجيل |
| تحليل البيانات | وكلاء متعددون يتعاونون في تحليل البيانات | الجمع←التنظيف←التحليل←التصور←التقرير |
حالات استخدام فعلية:
- Google Agent Space: وكلاء متعددون داخل المؤسسة يتعاونون في معالجة المستندات والبريد والجدولة
- فرق تطوير البرمجيات: وكيل المتطلبات ← وكيل الأكواد ← وكيل الاختبار ← وكيل النشر
- أنظمة خدمة العملاء الذكية: وكيل الاستقبال ← وكيل الإجابة المتخصصة ← وكيل التحويل البشري
4. MCP مقابل A2A: المقارنة والعلاقة
4.1 الاختلافات الأساسية
| البعد | MCP | A2A |
|---|---|---|
| المبادر | Anthropic (2024.11) | Google (2025.04) |
| التموضع | اتصال بين الذكاء الاصطناعي والأدوات | تعاون بين الوكلاء |
| نطاق الاتصال | Client-Server | Peer-to-Peer |
| تنسيق البيانات | JSON-RPC 2.0 | HTTP + JSON |
| التشبيه | واجهة USB-C | وي تشات للمؤسسات |
4.2 العلاقة بينهما
MCP و A2A ليسا في تنافس، بل في تكامل:
4.3 كيف تختار؟
| السيناريو | الاختيار |
|---|---|
| جعل الذكاء الاصطناعي يستدعي دوال أو أدوات محلية | Function Call |
| استخدام أدوات طرف ثالث (قواعد البيانات، API، نظام الملفات) | MCP |
| بناء نظام تعاون متعدد الوكلاء | A2A |
| الحاجة لتكامل الأدوات والتعاون متعدد الوكلاء معاً | MCP + A2A |
5. الاتجاهات المستقبلية للبروتوكولات
5.1 تطوير النظام البيئي
النظام البيئي MCP (بداية 2025):
- خوادم مقدمة رسمياً: نظام الملفات، SQLite، Git، PostgreSQL، إلخ
- خوادم ساهم بها المجتمع: Slack، Notion، Figma، Stripe، إلخ
- تطبيقات تدعم MCP: Claude Desktop، Cursor، Windsurf، Zed، إلخ
النظام البيئي A2A (حديث الإصدار):
- منتجات Agent من Google تدعمه أولاً
- مجتمع المصادر المفتوحة يطور حزم SDK بلغات متعددة
- التطبيقات المؤسسية في مرحلة الاستكشاف
5.2 عملية التوحيد القياسي
حالياً، بروتوكولات الوكلاء في "عصر الدول المتنافسة":
- MCP و A2A هما الأكثر هيمنة
- هناك بروتوكولات ناشئة أخرى مثل ANP و AGP
- في المستقبل قد تدمج أو تتحد
التشبيه بتطور الإنترنت:
- المرحلة المبكرة: تعايش بروتوكولات شبكات محلية متعددة
- لاحقاً: أصبح TCP/IP المعيار
- الآن: قد تتجه بروتوكولات الوكلاء نحو التوحيد أيضاً
6. الخلاصة
النقاط الرئيسية
| البروتوكول | الفهم بجملة واحدة | تاريخ الإصدار | المبادر | السيناريو المطبق |
|---|---|---|---|---|
| MCP | "USB-C" الذي يربط الذكاء الاصطناعي بالأدوات | 2024.11 | Anthropic | تكامل الأدوات، الاتصال بمصادر البيانات |
| A2A | "وي تشات للمؤسسات" للتعاون بين الوكلاء | 2025.04 | التعاون متعدد الوكلاء، تفويض المهام |
الرؤى الرئيسية:
- MCP يحل مشكلة "كيف يكتسب الذكاء الاصطناعي قدرات خارجية"
- A2A يحل مشكلة "كيف يتعاون ذكاءات اصطناعية متعددة"
- كلاهما يكمل الآخر، وقد يُستخدمان معاً في المستقبل
- اختيار البروتوكول يعتمد على السيناريو المحدد، لا توجد رصاصة سحرية
المراجع
- الوثائق الرسمية لـ MCP: modelcontextprotocol.io
- GitHub لـ MCP: github.com/modelcontextprotocol
- مدونة إطلاق Anthropic: "Introducing the Model Context Protocol" (2024-11-25)
- الوثائق الرسمية لـ A2A: google.github.io/A2A
- GitHub لـ A2A: github.com/google/A2A
- Google CloudBlog: "Announcing the Agent-to-Agent Protocol" (2025-04-09)