Skip to content

Latest commit

 

History

History
130 lines (90 loc) · 4.57 KB

File metadata and controls

130 lines (90 loc) · 4.57 KB

פרוטוקול הקשר למודל (MCP) מימוש בפייתון

מאגר זה מכיל מימוש בפייתון של פרוטוקול הקשר למודל (MCP), המדגים כיצד ליצור גם שרת וגם אפליקציית לקוח התקשורת באמצעות תקן MCP.

סקירה כללית

מימוש ה-MCP מורכב משני רכיבים עיקריים:

  1. שרת MCP (server.py) - שרת שמספק:

    • כלים: פונקציות שניתן לקרוא להן מרחוק
    • משאבים: נתונים שניתן לשלוף
    • הנחיות: תבניות ליצירת הנחיות למודלים לשוניים
  2. לקוח MCP (client.py) - אפליקציית לקוח שמתחברת לשרת ומשתמשת בתכונותיו

תכונות

מימוש זה מדגים מספר תכונות מרכזיות של MCP:

כלים

  • completion - מייצר השלמות טקסט ממודלים של בינה מלאכותית (מדומה)
  • add - מחשבון פשוט שמוסיף שני מספרים

משאבים

  • models:// - מחזיר מידע על מודלי הבינה המלאכותית הזמינים
  • greeting://{name} - מחזיר ברכה מותאמת אישית לשם נתון

הנחיות

  • review_code - מייצר הנחיה לסקירת קוד

התקנה

כדי להשתמש במימוש MCP זה, התקן את החבילות הנדרשות:

pip install mcp-server mcp-client

הפעלת השרת והלקוח

הפעלת השרת

הפעל את השרת בחלון טרמינל אחד:

python server.py

ניתן גם להפעיל את השרת במצב פיתוח באמצעות MCP CLI:

mcp dev server.py

או להתקין ב-Claude Desktop (אם זמין):

mcp install server.py

הפעלת הלקוח

הפעל את הלקוח בחלון טרמינל נוסף:

python client.py

זה יתחבר לשרת וידגים את כל התכונות הזמינות.

שימוש בלקוח

הלקוח (client.py) מדגים את כל יכולות ה-MCP:

python client.py

זה יתחבר לשרת ויבצע את כל התכונות כולל כלים, משאבים והנחיות. הפלט יציג:

  1. תוצאת כלי המחשבון (5 + 7 = 12)
  2. תגובת כלי ההשלמה לשאלה "מה משמעות החיים?"
  3. רשימת מודלי הבינה המלאכותית הזמינים
  4. ברכה מותאמת אישית ל-"MCP Explorer"
  5. תבנית הנחיה לסקירת קוד

פרטי מימוש

השרת ממומש באמצעות API של FastMCP, המספק אבסטרקציות ברמה גבוהה להגדרת שירותי MCP. הנה דוגמה מפושטת לאופן הגדרת הכלים:

@mcp.tool()
def add(a: int, b: int) -> int:
    """Add two numbers together
    
    Args:
        a: First number
        b: Second number
    
    Returns:
        The sum of the two numbers
    """
    logger.info(f"Adding {a} and {b}")
    return a + b

הלקוח משתמש בספריית הלקוח של MCP כדי להתחבר לשרת ולקרוא לו:

async with stdio_client(server_params) as (reader, writer):
    async with ClientSession(reader, writer) as session:
        await session.initialize()
        result = await session.call_tool("add", arguments={"a": 5, "b": 7})

למידע נוסף

למידע נוסף על MCP, בקר בכתובת: https://modelcontextprotocol.io/

כתב ויתור:
מסמך זה תורגם באמצעות שירות תרגום מבוסס בינה מלאכותית Co-op Translator. למרות שאנו שואפים לדיוק, יש לקחת בחשבון כי תרגומים אוטומטיים עלולים להכיל שגיאות או אי-דיוקים. המסמך המקורי בשפת המקור שלו נחשב למקור הסמכותי. למידע קריטי מומלץ להשתמש בתרגום מקצועי על ידי מתרגם אנושי. אנו לא נושאים באחריות לכל אי-הבנה או פרשנות שגויה הנובעת משימוש בתרגום זה.