View a markdown version of this page

Reciba mensajes de registro desde su AgentCore puerta de enlace - Base amazónica AgentCore

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Reciba mensajes de registro desde su AgentCore puerta de enlace

Los destinos del servidor MCP pueden enviar mensajes de registro a los clientes durante la ejecución de la herramienta mediante notifications/message este método. Estos mensajes proporcionan visibilidad en tiempo real de lo que está haciendo el servidor, lo que resulta útil para depurar, auditar y supervisar el comportamiento de las herramientas. AgentCore Gateway reenvía estas notificaciones de registro desde los destinos del servidor MCP a su cliente en forma de fragmentos de Server-Sent eventos (SSE).

Requisitos previos

Para recibir mensajes de registro de su puerta de enlace:

  • Transmisión de respuestas habilitada: los mensajes de registro se entregan como fragmentos de SSE durante una conexión abierta. streamingConfiguration.enableResponseStreamingConfigúralo true en el de tu puerta de enlace. protocolConfiguration.mcp

  • Tipo de destino del servidor MCP: los mensajes de registro se originan en los destinos del servidor MCP.

  • El cliente envía el Accept encabezado: el cliente debe enviarlo Accept: application/json, text/event-stream para que la puerta de enlace pueda devolver una respuesta de transmisión (SSE).

Niveles de registro

MCP define los siguientes niveles de registro, en orden creciente de gravedad:

Nivel Description (Descripción)

debug

Información de diagnóstico detallada para la solución de problemas.

info

Mensajes informativos generales sobre el funcionamiento normal.

notice

Eventos normales pero significativos.

warning

Situaciones potencialmente dañinas que no impiden el funcionamiento.

error

Condiciones de error que impidieron una operación específica.

critical

Condiciones críticas que requieren atención inmediata.

alert

Se deben tomar medidas de inmediato.

emergency

El sistema está inutilizable.

Cómo funciona el registro de mensajes

Cuando un servidor MCP de destino emite un mensaje notifications/message durante la ejecución de la herramienta, la puerta de enlace lo reenvía al cliente como un evento de SSE. Cada mensaje de registro incluye:

  • level— El nivel de gravedad del mensaje.

  • logger— Nombre opcional que identifica el componente de origen.

  • data— El contenido del registro (cadena u objeto estructurado).

Los mensajes de registro son informativos y no requieren una respuesta del cliente. Se entregan junto con otros eventos de la SSE, como las notificaciones de progreso y el resultado final de la herramienta.

Ejemplos de código

ejemplo
curl (2025-11-25 and earlier)

Utilice una herramienta y reciba mensajes de registro en la transmisión de la SSE. Configure el MCP-Protocol-Version encabezado en una versión compatible con su puerta de enlace.

curl -N -X POST \ https://mygateway-abcdefghij.gateway.bedrock-agentcore.us-west-2.amazonaws.com/mcp \ -H "Content-Type: application/json" \ -H "Accept: application/json, text/event-stream" \ -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \ -H "MCP-Protocol-Version: 2025-11-25" \ -d '{ "jsonrpc": "2.0", "id": "tool-call-1", "method": "tools/call", "params": { "name": "deployService", "arguments": { "serviceName": "my-api", "environment": "staging" } } }'

La puerta de enlace devuelve una transmisión de SSE con mensajes de registro seguidos del resultado final:

event: message data: {"jsonrpc":"2.0","method":"notifications/message","params":{"level":"info","logger":"deploy-service","data":"Starting deployment of my-api to staging"}} event: message data: {"jsonrpc":"2.0","method":"notifications/message","params":{"level":"info","logger":"deploy-service","data":"Building container image..."}} event: message data: {"jsonrpc":"2.0","method":"notifications/message","params":{"level":"warning","logger":"deploy-service","data":"Deprecated configuration detected in service manifest"}} event: message data: {"jsonrpc":"2.0","method":"notifications/message","params":{"level":"info","logger":"deploy-service","data":"Deployment complete"}} event: message data: {"jsonrpc":"2.0","id":"tool-call-1","result":{"content":[{"type":"text","text":"Successfully deployed my-api to staging environment."}]}}
curl (2026-07-28)

En la versión 12026-07-28, el cliente selecciona la opción de registrar los mensajes de cada solicitud _meta (la logging/setLevel operación se cancela en esta versión). io.modelcontextprotocol/logLevel El servidor envía notifications/message solo al nivel solicitado o por encima de él. Incluye también los encabezados Mcp-Method y los campos de Mcp-Name versión y los encabezados de los metadatos de la _meta solicitud. El MCP-Protocol-Version encabezado debe coincidir. _meta.io.modelcontextprotocol/protocolVersion Su puerta de enlace supportedVersions debe incluir2026-07-28.

curl -N -X POST \ https://mygateway-abcdefghij.gateway.bedrock-agentcore.us-west-2.amazonaws.com/mcp \ -H "Content-Type: application/json" \ -H "Accept: application/json, text/event-stream" \ -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \ -H "MCP-Protocol-Version: 2026-07-28" \ -H "Mcp-Method: tools/call" \ -H "Mcp-Name: deployService" \ -d '{ "jsonrpc": "2.0", "id": "tool-call-1", "method": "tools/call", "params": { "name": "deployService", "arguments": { "serviceName": "my-api", "environment": "staging" }, "_meta": { "io.modelcontextprotocol/protocolVersion": "2026-07-28", "io.modelcontextprotocol/clientInfo": { "name": "my-agent", "version": "1.0.0" }, "io.modelcontextprotocol/clientCapabilities": {}, "io.modelcontextprotocol/logLevel": "info" } } }'

La pasarela devuelve una transmisión de SSE con mensajes de registro seguidos del resultado final:

event: message data: {"jsonrpc":"2.0","method":"notifications/message","params":{"level":"info","logger":"deploy-service","data":"Starting deployment of my-api to staging"}} event: message data: {"jsonrpc":"2.0","method":"notifications/message","params":{"level":"info","logger":"deploy-service","data":"Building container image..."}} event: message data: {"jsonrpc":"2.0","method":"notifications/message","params":{"level":"warning","logger":"deploy-service","data":"Deprecated configuration detected in service manifest"}} event: message data: {"jsonrpc":"2.0","method":"notifications/message","params":{"level":"info","logger":"deploy-service","data":"Deployment complete"}} event: message data: {"jsonrpc":"2.0","id":"tool-call-1","result":{"content":[{"type":"text","text":"Successfully deployed my-api to staging environment."}]}}
Python requests package (2025-11-25 and earlier)

Establezca el MCP-Protocol-Version encabezado en una versión compatible con su puerta de enlace.

import requests import json import sseclient gateway_url = "https://mygateway-abcdefghij.gateway.bedrock-agentcore.us-west-2.amazonaws.com/mcp" headers = { "Content-Type": "application/json", "Accept": "application/json, text/event-stream", "Authorization": "Bearer YOUR_ACCESS_TOKEN", "MCP-Protocol-Version": "2025-11-25" } # Call tool (streaming response) response = requests.post(gateway_url, headers=headers, json={ "jsonrpc": "2.0", "id": "tool-call-1", "method": "tools/call", "params": { "name": "deployService", "arguments": {"serviceName": "my-api", "environment": "staging"} } }, stream=True) # Process SSE events client = sseclient.SSEClient(response) for event in client.events(): data = json.loads(event.data) if data.get("method") == "notifications/message": params = data["params"] print(f"[{params['level'].upper()}] {params.get('logger', '')}: {params['data']}") elif "result" in data: print(f"Tool result: {data['result']}") break
Python requests package (2026-07-28)

En la versión2026-07-28, opte por registrar los mensajes io.modelcontextprotocol/logLevel _meta configurándola (la logging/setLevel operación se retira en esta versión). Agregue también los Mcp-Name encabezados MCP-Protocol-VersionMcp-Method, y y los campos de _meta versión. Su puerta de enlace supportedVersions debe incluir2026-07-28.

import requests import json import sseclient gateway_url = "https://mygateway-abcdefghij.gateway.bedrock-agentcore.us-west-2.amazonaws.com/mcp" headers = { "Content-Type": "application/json", "Accept": "application/json, text/event-stream", "Authorization": "Bearer YOUR_ACCESS_TOKEN", "MCP-Protocol-Version": "2026-07-28", "Mcp-Method": "tools/call", "Mcp-Name": "deployService" } # Call tool (streaming response) response = requests.post(gateway_url, headers=headers, json={ "jsonrpc": "2.0", "id": "tool-call-1", "method": "tools/call", "params": { "name": "deployService", "arguments": {"serviceName": "my-api", "environment": "staging"}, "_meta": { "io.modelcontextprotocol/protocolVersion": "2026-07-28", "io.modelcontextprotocol/clientInfo": {"name": "my-agent", "version": "1.0.0"}, "io.modelcontextprotocol/clientCapabilities": {}, "io.modelcontextprotocol/logLevel": "info" } } }, stream=True) # Process SSE events client = sseclient.SSEClient(response) for event in client.events(): data = json.loads(event.data) if data.get("method") == "notifications/message": params = data["params"] print(f"[{params['level'].upper()}] {params.get('logger', '')}: {params['data']}") elif "result" in data: print(f"Tool result: {data['result']}") break
MCP Client
from mcp import ClientSession from mcp.client.streamable_http import streamablehttp_client import asyncio async def log_handler(level, logger, data): """Handle log messages from the server.""" print(f"[{level.upper()}] {logger or 'server'}: {data}") async def use_logging(url, token): headers = {"Authorization": f"Bearer {token}"} async with streamablehttp_client(url=url, headers=headers) as ( read_stream, write_stream, _ ): async with ClientSession( read_stream, write_stream, logging_handler=log_handler ) as session: await session.initialize() # Call tool - log messages handled by callback result = await session.call_tool( name="deployService", arguments={"serviceName": "my-api", "environment": "staging"} ) print(f"Tool result: {result}") return result asyncio.run(use_logging( url="https://mygateway-abcdefghij.gateway.bedrock-agentcore.us-west-2.amazonaws.com/mcp", token="YOUR_ACCESS_TOKEN" ))
Strands MCP Client
from mcp.client.streamable_http import streamablehttp_client from strands import Agent from strands.tools.mcp import MCPClient mcp_url = "https://mygateway-abcdefghij.gateway.bedrock-agentcore.us-west-2.amazonaws.com/mcp" access_token = "YOUR_ACCESS_TOKEN" mcp_client = MCPClient( lambda: streamablehttp_client( mcp_url, headers={"Authorization": f"Bearer {access_token}"} ) ) # Strands handles streaming and log messages automatically with mcp_client: agent = Agent(tools=mcp_client.list_tools_sync()) response = agent("Deploy my-api to staging") print(response)