McpToolServerConfigurationService מחלקה
מתן שירותים עבור ניהול תצורה של שרת כלי MCP.
שירות זה מטפל בגילוי ובתצורה של שרתי כלי MCP (פרוטוקול הקשר מודל) ממקורות מרובים:
- פיתוח: קבצי ToolingManifest.json מקומיים
- ייצור: נקודות קצה של שער כלי מרוחק
בנאי
McpToolServerConfigurationService()
פרמטרים
| שם | תיאור |
|---|---|
|
logger
|
ערך ברירת מחדל: None
|
שיטות
| __init__ |
אתחל את שירות קביעת התצורה של שרת הכלים של MCP. |
| __new__ | |
| list_tool_servers |
מקבל את רשימת שרתי MCP שתצורתם נקבעה עבור הסוכן. כאשר
|
| send_chat_history |
שליחת היסטוריית צ'אט לפלטפורמת MCP להגנה מפני איומים בזמן אמת. הערה גם chat_history_messages ריק, הבקשה עדיין תישלח אל פלטפורמת MCP. פעולה זו מבטיחה את הודעת המשתמש מ- turn_context.activity.text רשום כראוי עבור הגנה מפני איומים בזמן אמת. |
__init__
__new__
__new__(**kwargs)
list_tool_servers
מקבל את רשימת שרתי MCP שתצורתם נקבעה עבור הסוכן.
כאשר authorization, auth_handler_name, ומסופקים turn_context כולם, אסימוני OAuth לכל קהל נרכשים עבור כל שרת לאחר גילוי:
- שרתי V1 (ללא שדה
audience) משתפים את אסימון ATG המשותף (חילופים אחד). - כל שרת V2 מקבל אסימון בטווח ל- GUID של הקהל שלהם.
async list_tool_servers(agentic_app_id: str, auth_token: str | None = None, options: ToolOptions | None = None, authorization: Authorization | None = None, auth_handler_name: str | None = None, turn_context: TurnContext | None = None) -> List[MCPServerConfig]
פרמטרים
| שם | תיאור |
|---|---|
|
agentic_app_id
נדרש
|
מזהה אפליקציה סוכן עבור הסוכן. |
|
auth_token
|
אסימון אימות המשמש לגילוי שער. ערך ברירת מחדל: None
|
|
options
|
מופע ToolOptions אופציונלי המכיל פרמטרים אופציונליים. ערך ברירת מחדל: None
|
|
authorization
|
הקשר הרשאה אופציונלי עבור חילופי אסימון לכל קהל. ערך ברירת מחדל: None
|
|
auth_handler_name
|
שם המטפל באימות אופציונלי שנמצא בשימוש עם ערך ברירת מחדל: None
|
|
turn_context
|
TurnContext אופציונלי שנמצא בשימוש עם ערך ברירת מחדל: None
|
החזרות
| סוג נתונים | תיאור |
|---|---|
|
הפונקציה מחזירה את רשימת שרתי MCP שתצורתם נקבעה, |
חריגות
| סוג נתונים | תיאור |
|---|---|
|
אם הפרמטרים הנדרשים אינם חוקיים או ריקים. |
|
|
אם אירעה שגיאה בתקשורת עם שער יצירת הכלים או עם חילופי אסימון לכל קהל נכשלים. |
send_chat_history
שליחת היסטוריית צ'אט לפלטפורמת MCP להגנה מפני איומים בזמן אמת.
הערה
גם chat_history_messages ריק, הבקשה עדיין תישלח אל
פלטפורמת MCP. פעולה זו מבטיחה את הודעת המשתמש מ- turn_context.activity.text
רשום כראוי עבור הגנה מפני איומים בזמן אמת.
async send_chat_history(turn_context: TurnContext, chat_history_messages: List[ChatHistoryMessage], options: ToolOptions | None = None) -> OperationResult
פרמטרים
| שם | תיאור |
|---|---|
|
turn_context
נדרש
|
TurnContext מ- SDK של הסוכנים המכיל פרטי שיחה. חייבת להיות פעילות חוקית עם conversation.id, activity.id ו- activity.text. |
|
chat_history_messages
נדרש
|
רשימה של אובייקטי ChatHistoryMessage המייצגים את היסטוריית הצ'אט. עשוי להיות ריק - רשימה ריקה עדיין תשלח בקשה לפלטפורמות MCP עם היסטוריית צ'אט ריקה. |
|
options
|
מופע ToolOptions אופציונלי המכיל פרמטרים אופציונליים. ערך ברירת מחדל: None
|
החזרות
| סוג נתונים | תיאור |
|---|---|
|
<xref:OperationResult>
|
OperationResult המציין הצלחה או כשל. בהצלחה, החזרת OperationResult.success(). בעת כשל, החזרת OperationResult.failed() עם פרטי שגיאה. |
חריגות
| סוג נתונים | תיאור |
|---|---|
|
אם turn_context הוא ללא, chat_history_messages הוא ללא, turn_context.activity הוא ללא או כל אחד מהשדות הנדרשים (conversation.id, activity.id, activity.text) חסרים או ריקים. |
דוגמאות
>>> from datetime import datetime, timezone
>>> from microsoft_agents_a365.tooling.models import ChatHistoryMessage
>>>
>>> history = [
... ChatHistoryMessage("msg-1", "user", "Hello", datetime.now(timezone.utc)),
... ChatHistoryMessage("msg-2", "assistant", "Hi!", datetime.now(timezone.utc))
... ]
>>>
>>> service = McpToolServerConfigurationService()
>>> result = await service.send_chat_history(turn_context, history)
>>> if result.succeeded:
... print("Chat history sent successfully")