McpToolServerConfigurationService Classe
Fornece serviços para gestão de configuração de servidores de ferramentas MCP.
Este serviço trata da descoberta e configuração de servidores de ferramentas MCP (Model Context Protocol) a partir de múltiplas fontes:
- Desenvolvimento: Ficheiros ToolingManifest.json locais
- Produção: Endpoints de gateway de ferramentas remotas
Construtor
McpToolServerConfigurationService()
Parâmetros
| Name | Description |
|---|---|
|
logger
|
Default value: None
|
Métodos
| __init__ |
Inicialize o Serviço de Configuração do Servidor de Ferramentas MCP. |
| __new__ | |
| list_tool_servers |
Obtém a lista de servidores MCP configurados para o agente. Quando
|
| send_chat_history |
Envia o histórico de chat para a plataforma MCP para proteção contra ameaças em tempo real. Note Mesmo que chat_history_messages esteja vazio, o pedido será enviado na mesma para a plataforma MCP. Isto garante a mensagem do utilizador a partir de turn_context.activity.text está corretamente registado para proteção contra ameaças em tempo real. |
__init__
__new__
__new__(**kwargs)
list_tool_servers
Obtém a lista de servidores MCP configurados para o agente.
Quando authorization, auth_handler_name, e turn_context são todos fornecidos, tokens OAuth por audiência são adquiridos para cada servidor após a descoberta:
- Os servidores V1 (sem
audiencecampo) partilham o token ATG partilhado (uma exchange). - Os servidores V2 recebem cada um um token com escopo para o seu próprio GUID de audiência.
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]
Parâmetros
| Name | Description |
|---|---|
|
agentic_app_id
Necessário
|
ID de aplicação agente para o agente. |
|
auth_token
|
Token de autenticação usado para descoberta de gateway. Default value: None
|
|
options
|
Instância opcional ToolOptions contendo parâmetros opcionais. Default value: None
|
|
authorization
|
Contexto opcional de autorização para troca de tokens por audiência. Default value: None
|
|
auth_handler_name
|
Nome opcional do handler de autenticação usado com Default value: None
|
|
turn_context
|
TurnContext opcional usado com Default value: None
|
Devoluções
| Tipo | Description |
|---|---|
|
Devolve a lista de servidores MCP configurados, cada um com um |
Exceções
| Tipo | Description |
|---|---|
|
Se os parâmetros exigidos forem inválidos ou vazios. |
|
|
Se houver um erro a comunicar com o gateway de ferramentas ou uma troca de tokens por audiência falhar. |
send_chat_history
Envia o histórico de chat para a plataforma MCP para proteção contra ameaças em tempo real.
Note
Mesmo que chat_history_messages esteja vazio, o pedido será enviado na mesma para
a plataforma MCP. Isto garante a mensagem do utilizador a partir de turn_context.activity.text
está corretamente registado para proteção contra ameaças em tempo real.
async send_chat_history(turn_context: TurnContext, chat_history_messages: List[ChatHistoryMessage], options: ToolOptions | None = None) -> OperationResult
Parâmetros
| Name | Description |
|---|---|
|
turn_context
Necessário
|
TurnContext do SDK Agents que contém informação de conversa. Deve ter uma atividade válida com conversation.id, activity.id e activity.text. |
|
chat_history_messages
Necessário
|
Lista de objetos ChatHistoryMessage que representam o histórico da conversa. Pode estar vazia – uma lista vazia ainda enviará um pedido para a plataforma MCP com histórico de chat vazio. |
|
options
|
Instância opcional ToolOptions contendo parâmetros opcionais. Default value: None
|
Devoluções
| Tipo | Description |
|---|---|
|
<xref:OperationResult>
|
Um Resultado da Operação que indica sucesso ou fracasso. Em caso de sucesso, devolve OperationResult.success(). Em caso de falha, devolve OperationResult.failed() com os detalhes do erro. |
Exceções
| Tipo | Description |
|---|---|
|
Se turn_context for Nenhum, chat_history_messages é Nenhum, turn_context.atividade for Nenhum, ou qualquer um dos campos exigidos (conversation.id, activity.id, activity.text) está em falta ou está vazio. |
Exemplos
>>> 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")