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) بروتوكول مفتوح يحدد معيار الاتصال بين تطبيقات الذكاء الاصطناعي (العميل) وخوادم الأدوات:

100%
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 يغطي:


❓ أسئلة شائعة

س الفرق بين MCP والإضافات؟
ج الإضافات توسعات خاصة بـ Hermes بتكامل عميق. MCP بروتوكول مفتوح يمكن أي تطبيق ذكاء اصطناعي استخدامه. MCP أكثر شمولية، الإضافات أعمق.
س هل خوادم MCP تؤثر على الأداء؟
ج خوادم MCP عمليات مستقلة، صفر استهلاك في الخمول. الاستدعاءات عبر stdio/SSE بزمن استجابة عادة <50ms.
س كم خادم MCP متزامن؟
ج لا حد صارم. 5-10 خوادم طبيعي تمامًا. كل خادم عملية مستقلة.
س هل اتصال MCP آمن؟
ج وضع stdio محلي بالكامل. وضع SSE يدعم TLS. المصادقة عبر متغيرات البيئة، لا تُكشف في البروتوكول.
س كيف أنقح مشاكل اتصال MCP؟
ج hermes mcp test <server> يختبر الاتصال، --debug يعرض تفاصيل الاتصال.
س هل MCP يدعم البث المتدفق للاستجابة؟
ج نعم. وضع SSE يدعم الإرجاع المتدفق، مناسب للأدوات طويلة التشغيل.

📖 ملخص


📝 تمارين

  1. أساسي (⭐): أعد خادم MCP واحد (مثل filesystem)، تحقق من اكتشاف واستدعاء الأدوات.
  2. متوسط (⭐⭐): أعد 3 خوادم MCP معًا، استخدم أدوات من خوادم مختلفة في المحادثة.
  3. متقدم (⭐⭐⭐): طوّر خادم MCP مخصص يغلف API الخاص بك، سجّله في Hermes وتحقق من سير العمل الكامل.
Web-Tutorial.com

فريق Web-Tutorial التقني

منصة دروس برمجية يديرها عدة مطورين. كل درس يتم كتابته ومراجعته بواسطة مطورين متخصصين في المجال. نعمل على ضمان دقة وموثوقية المحتوى — إذا لاحظت أي مشكلة، فيرجى إخبارنا.

100%