למי אכפת מ MCP Composability
את הדוגמה הבא להרכבת MCP ראיתי בפוסט של אנטרופיק, ששמו לב לבעיה הזאת הרבה לפניי: "הי סוכן הורד לי בבקשה את סיכום הפגישה מהדרייב ותעלה אותו לג'ירה". משימה שנראית סופר פשוטה שהופכת למסובכת רק בגלל התשתית.
כשסוכן ינסה לבצע אותה בעזרת תשתית ה MCP המוכרת היום הסוכן יצטרך לעשות:
- הפעלת כלי - קח מידע מ Google Drive
- הפעלת כלי - כתיבה ל Jira
הבעיה שבאמצע המידע יושב בחלון הקונטקסט של הסוכן ואין לנו דרך לוודא שהמידע שנשלח לכלי השני הוא בדיוק הטקסט שחזר מהכלי הראשון. אנטרופיק טוענים שעבור פגישה של שעתיים יש סיכוי לבזבז פה 50,000 טוקנים, רק על העברת קובץ ממקום למקום.
דוגמה יותר קלה הראיתי אתמול בוובינר כשנתתי לסוכן שרת MCP שמחזיר פוסטים מהבלוג ושאלתי אותו כמה שורות יש בפוסט מסוים. גם כאן משימה סופר פשוטה למחשבים רגילים הפכה למבלבלת עבור סוכנים חכמים. הסוכן היה צריך לטעון את כל הטקסט של הפוסט ואז לספור את השורות, ושוב גם זה מעמיס על חלון הקונטקסט ופגיע לטעויות.
פתרון אחד לבעיה מגיע מהכיוון של אנטרופיק ונשמע כמו הצעה של AI: הם מציעים לאפשר לסוכן לכתוב ולהריץ קוד TypeScript שיוכל להפעיל "פקודות" מתוך שרתי MCP. זאת הדוגמה שלהם:
// Read transcript from Google Docs and add to Salesforce prospect
import * as gdrive from './servers/google-drive';
import * as salesforce from './servers/salesforce';
const transcript = (await gdrive.getDocument({ documentId: 'abc123' })).content;
await salesforce.updateRecord({
objectType: 'SalesMeeting',
recordId: '00Q5f000001abcXYZ',
data: { Notes: transcript }
});
היתרון בגישה זו היא שהיא עובדת, אם נוכל לקרוא ל MCP כמו לקוד נוכל להרכיב את התוצאות וכך נפתור את הבעיה. החסרון הוא שאנחנו בונים אבסטרקציה על אבסטרקציה במקום למחוק ולפשט את המערכת.
פתרון שאני יותר אוהב הוא פשוט לוותר על MCP ולכתוב כלים פשוטים לשורת הפקודה. אם היו כלים לשורת הפקודה לדבר עם gdrive ו salesforce הסוכן היה יכול לכתוב:
gdrive --get-document abc123 | salesforce --update-record --record-id 00Q5f00001abcXYZ
או בדוגמה של ספירת השורות בפוסט הסוכן יכל היה לכתוב:
get-post post-title | wc -l
סוכנים אוהבים לכתוב קוד וככל שנאפשר להם להשתמש בקוד במקום לעבד בעצמם פלטים של MCP נוכל להשתמש בצורה יעילה יותר בחלון הקונטקסט ולקבל תוצאות מדויקות יותר.
באותו נושא שווה להזכיר את הפרויקט:
https://github.com/philschmid/mcp-cli
שמאפשר להפעיל שרתי MCP מתוך תוכניות CLI.