121 lines
4.2 KiB
Markdown
121 lines
4.2 KiB
Markdown
# פרוטוקול הקשר למודל (MCP) מימוש בפייתון
|
|
|
|
מאגר זה מכיל מימוש בפייתון של פרוטוקול הקשר למודל (MCP), המדגים כיצד ליצור גם שרת וגם אפליקציית לקוח התקשורת באמצעות תקן MCP.
|
|
|
|
## סקירה כללית
|
|
|
|
מימוש ה-MCP מורכב משני רכיבים עיקריים:
|
|
|
|
1. **שרת MCP (`server.py`)** - שרת שמספק:
|
|
- **כלים**: פונקציות שניתן לקרוא להן מרחוק
|
|
- **משאבים**: נתונים שניתן לשלוף
|
|
- **הנחיות**: תבניות ליצירת הנחיות למודלים לשוניים
|
|
|
|
2. **לקוח MCP (`client.py`)** - אפליקציית לקוח שמתחברת לשרת ומשתמשת בתכונותיו
|
|
|
|
## תכונות
|
|
|
|
מימוש זה מדגים מספר תכונות מרכזיות של MCP:
|
|
|
|
### כלים
|
|
- `completion` - מייצר השלמות טקסט ממודלים של בינה מלאכותית (מדומה)
|
|
- `add` - מחשבון פשוט שמוסיף שני מספרים
|
|
|
|
### משאבים
|
|
- `models://` - מחזיר מידע על מודלי הבינה המלאכותית הזמינים
|
|
- `greeting://{name}` - מחזיר ברכה מותאמת אישית לשם נתון
|
|
|
|
### הנחיות
|
|
- `review_code` - מייצר הנחיה לסקירת קוד
|
|
|
|
## התקנה
|
|
|
|
כדי להשתמש במימוש MCP זה, התקן את החבילות הנדרשות:
|
|
|
|
```powershell
|
|
pip install mcp-server mcp-client
|
|
```
|
|
|
|
## הפעלת השרת והלקוח
|
|
|
|
### הפעלת השרת
|
|
|
|
הפעל את השרת בחלון טרמינל אחד:
|
|
|
|
```powershell
|
|
python server.py
|
|
```
|
|
|
|
ניתן גם להפעיל את השרת במצב פיתוח באמצעות MCP CLI:
|
|
|
|
```powershell
|
|
mcp dev server.py
|
|
```
|
|
|
|
או להתקין ב-Claude Desktop (אם זמין):
|
|
|
|
```powershell
|
|
mcp install server.py
|
|
```
|
|
|
|
### הפעלת הלקוח
|
|
|
|
הפעל את הלקוח בחלון טרמינל נוסף:
|
|
|
|
```powershell
|
|
python client.py
|
|
```
|
|
|
|
זה יתחבר לשרת וידגים את כל התכונות הזמינות.
|
|
|
|
### שימוש בלקוח
|
|
|
|
הלקוח (`client.py`) מדגים את כל יכולות ה-MCP:
|
|
|
|
```powershell
|
|
python client.py
|
|
```
|
|
|
|
זה יתחבר לשרת ויבצע את כל התכונות כולל כלים, משאבים והנחיות. הפלט יציג:
|
|
|
|
1. תוצאת כלי המחשבון (5 + 7 = 12)
|
|
2. תגובת כלי ההשלמה לשאלה "מה משמעות החיים?"
|
|
3. רשימת מודלי הבינה המלאכותית הזמינים
|
|
4. ברכה מותאמת אישית ל-"MCP Explorer"
|
|
5. תבנית הנחיה לסקירת קוד
|
|
|
|
## פרטי מימוש
|
|
|
|
השרת ממומש באמצעות API של `FastMCP`, המספק אבסטרקציות ברמה גבוהה להגדרת שירותי MCP. הנה דוגמה מפושטת לאופן הגדרת הכלים:
|
|
|
|
```python
|
|
@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 כדי להתחבר לשרת ולקרוא לו:
|
|
|
|
```python
|
|
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](https://github.com/Azure/co-op-translator). למרות שאנו שואפים לדיוק, יש לקחת בחשבון כי תרגומים אוטומטיים עלולים להכיל שגיאות או אי-דיוקים. המסמך המקורי בשפת המקור שלו נחשב למקור הסמכותי. למידע קריטי מומלץ להשתמש בתרגום מקצועי על ידי מתרגם אנושי. אנו לא נושאים באחריות לכל אי-הבנה או פרשנות שגויה הנובעת משימוש בתרגום זה. |