כל אפליקציית Agent-Lab כוללת שרת Model Context Protocol
הבנוי על FastMCP, ומעוגן בנתיב /mcp
(Streamable HTTP, ללא מצב). לקוחות MCP — Claude Desktop, סביבות פיתוח, הסוכנים שלך —
יכולים לגלות את הסוכנים של האפליקציה, לקרוא את היסטוריית השיחות ולשוחח עם סוכנים ישירות.
השרת ורכיבי הרישום של הכלים והפרומפטים שלו משתתפים באותו מנגנון גילוי כמו הסוכנים:
scan_packages וקבוצת ה-entry point agent_lab.agents.
מה השרת חושף
| כלי | תיאור |
|---|---|
get_agent_list |
הצגת רשימת הסוכנים הרשומים באפליקציה הפועלת |
get_message_list |
קריאת היסטוריית השיחות של סוכן |
post_message |
שליחת הודעה לסוכן — תקשורת בין סוכן לסוכן |
read_prompt_mcp |
קריאת תבנית פרומפט; נחשף גם כ-prompt של MCP (prompts/get) וכ-resource (prompt://) |
שלישיית הפרומפטים חושפת את פרומפטי המערכת המוגדרים כברירת מחדל לכל סוג סוכן, עם אפשרות
לעקיפה ברמת ה-tenant באמצעות agent_type + setting_key.
ניסיון עם MCP Inspector
מפעילים את MCP Inspector ומתחברים
לאפליקציה (לדוגמה http://localhost:18000/mcp, transport: Streamable HTTP):
npx @modelcontextprotocol/inspectorניגשים לקונסולת הרשת (משתמשים בקישור ה-proxy שמודפס בקונסולה).

חיבור Claude Desktop
הערה: Claude Desktop משמש כאן להדגמה בלבד. פרויקט זה אינו קשור ל-Anthropic AI.
מתקינים את הגשר mcp-proxy שבו Claude Desktop משתמש כדי להגיע לשרתי HTTP מרוחקים:
pip install mcp-proxyפותחים את Settings → Developer → Edit Config ועורכים את
claude_desktop_config.json(מתאימים את נקודת הקצה להתקנה שלך; סביבת ה-Python חייבת לכלול אתmcp-proxy):



- מפעילים מחדש את Claude Desktop ונכנסים שוב ל-Settings → Developer — Agent-Lab אמור להופיע:

- מנסים: מבקשים מ-Claude להציג את רשימת הסוכנים, לשלוף את היסטוריית השיחות של מופע סוכן מתכנת בפיקוח, או להציג קטע קוד שהסוכן יצר קודם לכן:


OpenAI Responses API
כלי ה-Model Context Protocol (MCP) המתארח ב-Responses API מקל על החיבור לשירותים חיצוניים: מגדירים את המודל פעם אחת כך שיפנה לשרת MCP — והוא משמש כמארח כלים מרכזי. (מקור: MCP Tool Guide)
מחברת שמדגימה את האינטגרציה של OpenAI Responses API עם שרת ה-MCP של Agent-Lab זמינה בכתובת notebooks/11_mcp_client-openai-responses.ipynb.
הוספת כלים ופרומפטים משלך
הכול מתגלה באותה דרך שבה מתגלים הסוכנים — מעטרים, ו(עבור צרכני הספרייה) מוודאים
שהחבילה שלך נמצאת ב-scan_packages או מתפרסמת דרך קבוצת ה-entry point
agent_lab.agents.
כלי — פונקציה אסינכרונית רגילה; הפרמטר הראשון שלה, container, מוזרק מקונטיינר
ה-DI ומוסתר מהלקוחות:
from agent_lab import discoverable_mcp_tool
@discoverable_mcp_tool(
"my_hello_tool",
description="Returns a friendly greeting.",
annotations={"readOnlyHint": True},
)
async def hello_tool(container, name: str) -> str:
return f"Hello, {name}!"פרומפט — נחשף בשלישיית הפרומפטים המלאה (כלי / prompts/get / משאב
prompt://):
from agent_lab import discoverable_mcp_prompt
@discoverable_mcp_prompt("my_greeting_prompt")
def greeting_prompt() -> str:
return "Greet the user warmly and briefly."מתקדם — תת-מחלקה מלאה של McpRegistrar (או PromptSetRegistrar) עבור קבוצות
מותאמות של כלים/פרומפטים/משאבים, באמצעות @discoverable_mcp_registrar(extra_deps=(...)).
כדי להוסיף הנחיות MCP ללקוחות, מעבירים מקטעים בזמן ההרכבה:
app = create_app(mcp_instructions=["Extra guidance for MCP clients."])דוגמה מלאה כלולה בשלד (mcp/tools.py, mcp/prompts.py) — ראו
הסוכן הראשון שלך.
אימות
כשהאימות מופעל, לקוחות MCP מאמתים את עצמם דרך OAuth proxy המגובה ב-Keycloak:
אימות JWT מול ה-JWKS של ה-realm (scopes openid, profile, email), ואחסון לקוחות
OAuth ב-Redis (מוצפן). האפליקציה מפרסמת את נקודות הקצה הסטנדרטיות של המטא-נתונים
(/.well-known/oauth-protected-resource/mcp,
/.well-known/oauth-authorization-server/mcp), כך שלקוחות תואמים יכולים להגדיר את עצמם
באופן אוטומטי.