View a markdown version of this page

Menerima pesan pencatatan dari AgentCore gateway Anda - Batu Dasar Amazon AgentCore

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Menerima pesan pencatatan dari AgentCore gateway Anda

Target server MCP dapat mengirim pesan log ke klien selama eksekusi alat menggunakan notifications/message metode ini. Pesan-pesan ini memberikan visibilitas real-time ke dalam apa yang dilakukan server, berguna untuk debugging, audit, dan perilaku alat pemantauan. AgentCore Gateway meneruskan notifikasi log ini dari target server MCP ke klien Anda sebagai potongan Ev Server-Sent ents (SSE).

Prasyarat

Untuk menerima pesan logging dari gateway Anda:

  • Streaming respons diaktifkan — Pesan log dikirimkan sebagai potongan SSE selama koneksi terbuka. Set streamingConfiguration.enableResponseStreaming el ke true dalam gateway AndaprotocolConfiguration.mcp.

  • Jenis target server MCP — Pesan log berasal dari target server MCP.

  • Klien mengirim Accept header — Klien harus mengirim Accept: application/json, text/event-stream sehingga gateway dapat mengembalikan respons streaming (SSE).

Tingkat log

MCP mendefinisikan tingkat log berikut, dalam urutan peningkatan keparahan:

Tingkat Deskripsi

debug

Informasi diagnostik terperinci untuk pemecahan masalah.

info

Pesan informasi umum tentang operasi normal.

notice

Peristiwa normal tetapi signifikan.

warning

Situasi yang berpotensi berbahaya yang tidak mencegah operasi.

error

Kondisi kesalahan yang mencegah operasi tertentu.

critical

Kondisi kritis yang membutuhkan perhatian segera.

alert

Tindakan harus segera diambil.

emergency

Sistem tidak dapat digunakan.

Cara kerja pencatatan pesan

Ketika target server MCP memancarkan notifications/message selama eksekusi alat, gateway meneruskannya ke klien sebagai peristiwa SSE. Setiap pesan log meliputi:

  • level— Tingkat keparahan pesan.

  • logger— Nama opsional mengidentifikasi komponen sumber.

  • data— Konten log (string atau objek terstruktur).

Pesan log bersifat informatif dan tidak memerlukan respons dari klien. Mereka disampaikan bersama acara SSE lainnya seperti pemberitahuan kemajuan dan hasil alat akhir.

Sampel Kode

contoh
curl (2025-11-25 and earlier)

Panggil alat dan terima pesan log di aliran SSE. Atur MCP-Protocol-Version header ke versi yang didukung gateway Anda.

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" } } }'

Gateway mengembalikan aliran SSE dengan pesan log diikuti oleh hasil akhir:

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)

Pada versi2026-07-28, klien memilih pesan log untuk setiap permintaan dengan menyetel io.modelcontextprotocol/logLevel _meta (logging/setLeveloperasi dihentikan dalam versi ini). Server notifications/message hanya mengirim pada atau di atas level yang diminta. Sertakan juga Mcp-Method header dan Mcp-Name request-metadata dan bidang versi. _meta MCP-Protocol-VersionHeader harus cocok_meta.io.modelcontextprotocol/protocolVersion. Gateway Anda supportedVersions harus disertakan2026-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" } } }'

Gateway mengembalikan aliran SSE dengan pesan log diikuti oleh hasil akhir:

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)

Atur MCP-Protocol-Version header ke versi yang didukung gateway Anda.

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)

Pada versi2026-07-28, pilih pesan log dengan menyet io.modelcontextprotocol/logLevel _meta el (logging/setLeveloperasi dihentikan dalam versi ini). Tambahkan jugaMCP-Protocol-Version,Mcp-Method, dan Mcp-Name header dan bidang _meta versi. Gateway Anda supportedVersions harus disertakan2026-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)