Hermes Agent: بروتوكول MCP
آخر تحديث: 2026-08-31
MCP هو واجهة USB لربط أدوات الذكاء الاصطناعي — عبر Model Context Protocol، يمكن لـ Hermes Agent اكتشاف واستدعاء أي خادم أدوات متوافق مع MCP، موسّعًا حدود القدرة بلا حدود.
💡 نصيحة: MCP (Model Context Protocol) هو بروتوكول مفتوح اقترحته Anthropic يعيّن معيار الاتصال بين تطبيقات الذكاء الاصطناعي وخوادم الأدوات. Hermes يدعم MCP أصلاً، ويمكنه الاتصال بأي خادم MCP.
📋 المتطلبات المسبقة: الدرس 8 — الأدوات ومجموعات الأدوات، الدرس 15 — الإضافات
1. ما ستتعلمه
| # | المحتوى |
|---|---|
| ❶ | مفاهيم ومبادئ بروتوكول MCP |
| ❷ | تكامل MCP في Hermes |
| ❸ | إعداد خوادم MCP |
| ❹ | اكتشاف واستدعاء الأدوات |
| ❺ | تطوير خوادم MCP مخصصة |
2. القصة
(1) المشكلة: كل أداة ذكاء اصطناعي لها واجهة مختلفة
Bob يستخدم 5 أدوات ذكاء اصطناعي، لكل منها صيغة API وطريقة مصادقة وتعريف أدوات خاص. ربط أداة جديدة يعني تطوير طبقة تكيف من الصفر.
(2) الحل: MCP بروتوكول موحد، توصيل واستخدام
Alice تربط خوادم أدوات متعددة بـ Hermes عبر MCP:
BASH
hermes mcp add filesystem --command "npx @anthropic/mcp-filesystem /home/alice"
hermes mcp add github --command "npx @anthropic/mcp-github"
hermes mcp tools
# اكتُشفت 15 أداة جديدة: read_file, write_file, search_files, create_issue...
3. مفاهيم بروتوكول MCP
(1) ما هو MCP؟
MCP (Model Context Protocol) بروتوكول مفتوح يحدد معيار الاتصال بين تطبيقات الذكاء الاصطناعي (العميل) وخوادم الأدوات:
graph LR
A[Hermes Agent<br/>MCP Client] -->|بروتوكول قياسي| B[MCP Server 1<br/>Filesystem]
A -->|بروتوكول قياسي| C[MCP Server 2<br/>GitHub]
A -->|بروتوكول قياسي| D[MCP Server 3<br/>Database]
(2) المفاهيم الأساسية لـ MCP
| المفهوم | الوصف | القياس |
|---|---|---|
| MCP Client | تطبيق الذكاء الاصطناعي الذي يرسل الطلبات | مضيف USB |
| MCP Server | الخادم الذي يوفر الأدوات | جهاز USB |
| Tool | العملية المحددة التي يوفرها الخادم | وظيفة الجهاز |
| Resource | مصدر البيانات الذي يوفره الخادم | تخزين الجهاز |
| Prompt | قالب prompt الذي يوفره الخادم | إعداد مسبق للجهاز |
(3) MCP مقابل API التقليدية
| البعد | API التقليدية | MCP |
|---|---|---|
| صيغة الواجهة | مخصصة لكل واحد | معيار موحد |
| اكتشاف الأدوات | توثيق يدوي | اكتشاف تلقائي |
| المصادقة | تنفيذ خاص | مخطط موحد |
| الاتصال | HTTP/SDK | stdio/SSE |
| النظام البيئي | جزر معزولة | مترابط |
4. تكامل MCP في Hermes
(1) إعداد MCP
YAML
mcp:
enabled: true
servers:
filesystem:
command: "npx"
args: ["@anthropic/mcp-filesystem", "/home/alice/projects"]
github:
command: "npx"
args: ["@anthropic/mcp-github"]
env:
GITHUB_TOKEN: "${GITHUB_TOKEN}"
database:
command: "python"
args: ["-m", "mcp_server_postgres"]
env:
DATABASE_URL: "${DATABASE_URL}"
brave-search:
command: "npx"
args: ["@anthropic/mcp-brave-search"]
env:
BRAVE_API_KEY: "${BRAVE_API_KEY}"
(2) إدارة الاتصالات
BASH
hermes mcp add filesystem --command "npx @anthropic/mcp-filesystem /home/alice"
hermes mcp list
hermes mcp test filesystem
hermes mcp tools filesystem
hermes mcp remove filesystem
5. اكتشاف واستدعاء الأدوات
(1) الاكتشاف التلقائي
BASH
hermes mcp tools
# ┌─────────────────────┬──────────────┬────────────────────────┐
# │ Tool │ Server │ Description │
# ├─────────────────────┼──────────────┼────────────────────────┤
# │ read_file │ filesystem │ Read file contents │
# │ write_file │ filesystem │ Write to file │
# │ create_issue │ github │ Create GitHub issue │
# │ query │ database │ Execute SQL query │
# │ search │ brave-search │ Web search │
# └─────────────────────┴──────────────┴────────────────────────┘
(2) الاستخدام في المحادثة
BASH
me: اقرأ محتوى README.md
Agent: [MCP: filesystem/read_file]
# My Project...
me: أنشئ Issue في GitHub
Agent: [MCP: github/create_issue]
العنوان؟ → "Bug: Login fails on mobile"
✅ تم إنشاء Issue #42
me: ابحث عن آخر أخبار الذكاء الاصطناعي
Agent: [MCP: brave-search/search]
عُثر على 5 نتائج...
(3) توجيه الأدوات
YAML
mcp:
routing:
prefer_mcp: true
priority:
filesystem.read_file: 100
fs_read: 50
conflict_resolution: "priority"
6. تطوير خوادم MCP مخصصة
(1) خادم MCP بـ Python
PYTHON
from mcp.server import Server, Tool
server = Server("custom-tools")
@server.tool("get_weather")
async def get_weather(city: str) -> dict:
"""Get current weather for a city"""
import httpx
response = httpx.get(f"https://api.weather.com/{city}")
return response.json()
@server.tool("send_notification")
async def send_notification(message: str, channel: str = "default") -> dict:
"""Send a notification to a channel"""
return {"status": "sent", "channel": channel}
if __name__ == "__main__":
server.run()
(2) خادم MCP بـ TypeScript
TYPESCRIPT
import { Server, Tool } from "@anthropic/mcp";
const server = new Server("custom-tools");
server.tool("query_database", {
description: "Query the database",
parameters: {
sql: { type: "string", required: true },
limit: { type: "number", default: 100 }
},
async execute({ sql, limit }) {
const results = await db.query(sql, { limit });
return { rows: results };
}
});
server.run();
(3) تسجيل خادم مخصص
BASH
hermes mcp add custom-tools \
--command "python mcp_server_custom.py" \
--working-dir /path/to/server
YAML
mcp:
servers:
custom-tools:
command: "python"
args: ["mcp_server_custom.py"]
working_dir: "/path/to/server"
env:
API_KEY: "${CUSTOM_API_KEY}"
7. النظام البيئي MCP
(1) خوادم MCP الرسمية
| الخادم | الوظيفة | التثبيت |
|---|---|---|
| filesystem | عمليات نظام الملفات | npx @anthropic/mcp-filesystem |
| github | عمليات GitHub | npx @anthropic/mcp-github |
| postgres | استعلامات PostgreSQL | npx @anthropic/mcp-postgres |
| sqlite | عمليات SQLite | npx @anthropic/mcp-sqlite |
| brave-search | بحث ويب | npx @anthropic/mcp-brave-search |
| google-drive | Google Drive | npx @anthropic/mcp-google-drive |
| slack | عمليات Slack | npx @anthropic/mcp-slack |
(2) خوادم MCP المجتمعية
المجتمع يحافظ على 100+ خادم MCP يغطي:
- إدارة المشاريع: Jira، Linear، Asana
- أدوات التصميم: Figma، Canva
- خدمات سحابية: AWS، GCP، Azure
- تحليل البيانات: Pandas، Jupyter
- التواصل: Twilio، SendGrid
❓ أسئلة شائعة
س الفرق بين MCP والإضافات؟
ج الإضافات توسعات خاصة بـ Hermes بتكامل عميق. MCP بروتوكول مفتوح يمكن أي تطبيق ذكاء اصطناعي استخدامه. MCP أكثر شمولية، الإضافات أعمق.
س هل خوادم MCP تؤثر على الأداء؟
ج خوادم MCP عمليات مستقلة، صفر استهلاك في الخمول. الاستدعاءات عبر stdio/SSE بزمن استجابة عادة <50ms.
س كم خادم MCP متزامن؟
ج لا حد صارم. 5-10 خوادم طبيعي تمامًا. كل خادم عملية مستقلة.
س هل اتصال MCP آمن؟
ج وضع stdio محلي بالكامل. وضع SSE يدعم TLS. المصادقة عبر متغيرات البيئة، لا تُكشف في البروتوكول.
س كيف أنقح مشاكل اتصال MCP؟
ج
hermes mcp test <server> يختبر الاتصال، --debug يعرض تفاصيل الاتصال.س هل MCP يدعم البث المتدفق للاستجابة؟
ج نعم. وضع SSE يدعم الإرجاع المتدفق، مناسب للأدوات طويلة التشغيل.
📖 ملخص
- MCP بروتوكول ربط أدوات الذكاء الاصطناعي المفتوح، مثل واجهة USB
- Hermes يدعم MCP Client أصلاً، يتصل بأي خادم MCP
- اكتشاف تلقائي للأدوات، واجهة استدعاء موحدة
- يدعم تطوير خوادم MCP مخصصة بـ Python/TypeScript
- 100+ خادم MCP رسمي + مجتمعي يغطون سيناريوهات متنوعة
📝 تمارين
- أساسي (⭐): أعد خادم MCP واحد (مثل filesystem)، تحقق من اكتشاف واستدعاء الأدوات.
- متوسط (⭐⭐): أعد 3 خوادم MCP معًا، استخدم أدوات من خوادم مختلفة في المحادثة.
- متقدم (⭐⭐⭐): طوّر خادم MCP مخصص يغلف API الخاص بك، سجّله في Hermes وتحقق من سير العمل الكامل.