View a markdown version of this page

Recibir un mensaje de una 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.

Recibir un mensaje de una AgentCore puerta de enlace

Para obtener una solicitud específica, haga una solicitud POST al punto final MCP de la puerta de enlace y especifique prompts/get el método en el cuerpo de la solicitud, el nombre de la solicitud y los argumentos:

ejemplo
2025-11-25 and earlier
POST /mcp HTTP/1.1 Host: ${GatewayEndpoint} Accept: application/json, text/event-stream Content-Type: application/json Authorization: ${Authorization header} MCP-Protocol-Version: ${McpProtocolVersion} ${RequestBody}
2026-07-28

En cuanto a la versión2026-07-28, cada solicitud incluye en el MCP-Protocol-Version cuerpo el encabezado, los encabezados Mcp-Name de los metadatos de la solicitud Mcp-Method y los campos de _meta versión.

POST /mcp HTTP/1.1 Host: ${GatewayEndpoint} Accept: application/json, text/event-stream Content-Type: application/json Authorization: ${Authorization header} MCP-Protocol-Version: 2026-07-28 Mcp-Method: prompts/get Mcp-Name: ${PromptName} ${RequestBody}
nota

La puerta de enlace solo acepta las versiones del protocolo MCP que figuran en el supportedVersions campo de su configuración. protocolConfiguration.mcp Para usar la versión2026-07-28, asegúrese de que la puerta de enlace la supportedVersions incluya. Puedes cambiar las versiones compatibles con la UpdateGateway API.

Reemplace los siguientes valores:

  • ${GatewayEndpoint}— La URL de la puerta de enlace, tal como se indica en la respuesta de la CreateGateway API.

  • ${Authorization header}— Las credenciales de autorización del proveedor de identidad al configurar la autorización Configure la autorización de entrada para su puerta de enlace entrante.

  • ${McpProtocolVersion}— La versión del protocolo MCP de la solicitud, por ejemplo. 2025-11-25 La versión debe ser compatible con su puerta de enlace.

  • ${PromptName}— El nombre de la solicitud, que coincide con name el del cuerpo de la solicitud.

  • ${RequestBody}— La carga útil JSON del cuerpo de la solicitud, tal y como se especifica en Cómo obtener un mensaje en el protocolo de contexto modelo (MCP). prompts/getIncluya como method e incluya el name del mensaje y su. arguments En la versión2026-07-28, incluya también los campos de _meta versión enparams.

La respuesta devuelve la solicitud representada como una matriz de mensajes, cada uno con una función y un contenido.

nota

La prompts/get operación envía la solicitud en tiempo real al servidor MCP descendente. El nombre de la solicitud debe incluir el prefijo de destino (por ejemplo,). myTarget___myPrompt

Ejemplos de código para obtener un mensaje

Para ver ejemplos de cómo obtener un mensaje desde la puerta de enlace, seleccione uno de los métodos siguientes:

ejemplo
curl (2025-11-25 and earlier)

La siguiente solicitud de curl muestra un ejemplo de solicitud para que se llame a un mensaje myTarget___code_review a través de una puerta de enlace con el IDmygateway-abcdefghij. Configura el MCP-Protocol-Version encabezado en una versión compatible con tu puerta de enlace.

curl -X POST \ https://mygateway-abcdefghij.gateway.bedrock-agentcore.us-west-2.amazonaws.com/mcp \ -H "Accept: application/json, text/event-stream" \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \ -H "MCP-Protocol-Version: 2025-11-25" \ -d '{ "jsonrpc": "2.0", "id": "get-prompt-request", "method": "prompts/get", "params": { "name": "myTarget___code_review", "arguments": { "language": "python", "code": "print(\"hello\")" } } }'
curl (2026-07-28)

En cuanto a la versión2026-07-28, incluye los encabezados Mcp-Method y Mcp-Name los metadatos de la solicitud y los campos de _meta versión en el cuerpo. El MCP-Protocol-Version encabezado debe coincidir. _meta.io.modelcontextprotocol/protocolVersion Su puerta de enlace supportedVersions debe incluir2026-07-28.

curl -X POST \ https://mygateway-abcdefghij.gateway.bedrock-agentcore.us-west-2.amazonaws.com/mcp \ -H "Accept: application/json, text/event-stream" \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \ -H "MCP-Protocol-Version: 2026-07-28" \ -H "Mcp-Method: prompts/get" \ -H "Mcp-Name: myTarget___code_review" \ -d '{ "jsonrpc": "2.0", "id": "get-prompt-request", "method": "prompts/get", "params": { "name": "myTarget___code_review", "arguments": { "language": "python", "code": "print(\"hello\")" }, "_meta": { "io.modelcontextprotocol/protocolVersion": "2026-07-28", "io.modelcontextprotocol/clientInfo": { "name": "my-agent", "version": "1.0.0" }, "io.modelcontextprotocol/clientCapabilities": {} } } }'
Python requests package (2025-11-25 and earlier)

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

import requests import json def get_prompt(gateway_url, access_token, prompt_name, arguments): headers = { "Content-Type": "application/json", "Authorization": f"Bearer {access_token}", "MCP-Protocol-Version": "2025-11-25" } payload = { "jsonrpc": "2.0", "id": "get-prompt-request", "method": "prompts/get", "params": { "name": prompt_name, "arguments": arguments } } response = requests.post(gateway_url, headers=headers, json=payload) return response.json() # Example usage gateway_url = "https://${GatewayEndpoint}/mcp" # Replace with your actual gateway endpoint access_token = "${AccessToken}" # Replace with your actual access token result = get_prompt( gateway_url, access_token, "myTarget___code_review", # Replace with {targetName}___{promptName} {"language": "python", "code": "print('hello')"} ) print(json.dumps(result, indent=2))
Python requests package (2026-07-28)

En cuanto a la versión2026-07-28, incluye los encabezados Mcp-Method y Mcp-Name los metadatos de la solicitud y los campos de _meta versión en el cuerpo. El MCP-Protocol-Version encabezado debe coincidir. _meta.io.modelcontextprotocol/protocolVersion Su puerta de enlace supportedVersions debe incluir2026-07-28.

import requests import json def get_prompt(gateway_url, access_token, prompt_name, arguments): headers = { "Content-Type": "application/json", "Authorization": f"Bearer {access_token}", "MCP-Protocol-Version": "2026-07-28", "Mcp-Method": "prompts/get", "Mcp-Name": prompt_name } payload = { "jsonrpc": "2.0", "id": "get-prompt-request", "method": "prompts/get", "params": { "name": prompt_name, "arguments": arguments, "_meta": { "io.modelcontextprotocol/protocolVersion": "2026-07-28", "io.modelcontextprotocol/clientInfo": {"name": "my-agent", "version": "1.0.0"}, "io.modelcontextprotocol/clientCapabilities": {} } } } response = requests.post(gateway_url, headers=headers, json=payload) return response.json() # Example usage gateway_url = "https://${GatewayEndpoint}/mcp" # Replace with your actual gateway endpoint access_token = "${AccessToken}" # Replace with your actual access token result = get_prompt( gateway_url, access_token, "myTarget___code_review", # Replace with {targetName}___{promptName} {"language": "python", "code": "print('hello')"} ) print(json.dumps(result, indent=2))
MCP Client
from mcp import ClientSession from mcp.client.streamable_http import streamablehttp_client import asyncio async def execute_mcp( url, token, prompt_name, prompt_arguments, headers=None ): default_headers = { "Authorization": f"Bearer {token}" } headers = {**default_headers, **(headers or {})} async with streamablehttp_client( url=url, headers=headers, ) as ( read_stream, write_stream, callA, ): async with ClientSession(read_stream, write_stream) as session: # 1. Perform initialization handshake print("Initializing MCP...") _init_response = await session.initialize() print(f"MCP Server Initialize successful! - {_init_response}") # 2. Get specific prompt print(f"Getting prompt: {prompt_name}") prompt_response = await session.get_prompt( name=prompt_name, arguments=prompt_arguments ) print(f"Prompt response: {prompt_response}") return prompt_response async def main(): url = "https://${GatewayEndpoint}/mcp" token = "your_bearer_token_here" prompt_name = "myTarget___code_review" prompt_arguments = { "language": "python", "code": "print('hello')" } await execute_mcp( url=url, token=token, prompt_name=prompt_name, prompt_arguments=prompt_arguments ) if __name__ == "__main__": asyncio.run(main())
LangGraph MCP Client

NOTA: La compatibilidad inmediata del adaptador LangGraph MCP puede variar. Utilice el enfoque del cliente MCP mostrado anteriormente para obtener la implementación más confiableprompts/get.

import asyncio from mcp import ClientSession from mcp.client.streamable_http import streamablehttp_client async def get_prompt(url, token, prompt_name, arguments): headers = {"Authorization": f"Bearer {token}"} async with streamablehttp_client(url=url, headers=headers) as ( read_stream, write_stream, callA ): async with ClientSession(read_stream, write_stream) as session: await session.initialize() response = await session.get_prompt( name=prompt_name, arguments=arguments ) for message in response.messages: print(f"{message.role}: {message.content}") asyncio.run(get_prompt( "https://${GatewayEndpoint}/mcp", "${AccessToken}", "myTarget___code_review", {"language": "python", "code": "print('hello')"} ))

Errores

La prompts/get operación puede devolver los siguientes tipos de errores:

  • Se devolvieron errores como parte del código de estado HTTP:

    AuthenticationError

    La solicitud falló debido a que las credenciales de autenticación no son válidas.

    Código de estado HTTP: 401

    AuthorizationError

    La persona que llama no tiene permiso para recibir el mensaje.

    Código de estado HTTP: 403

    ResourceNotFoundError

    La solicitud especificada no existe.

    Código de estado HTTP: 404

    ValidationError

    Los argumentos proporcionados no cumplen con los argumentos obligatorios de la solicitud.

    Código de estado HTTP: 400

    InternalServerError

    Se ha producido un error interno del servidor.

    Código de estado HTTP: 500

  • Errores de MCP. Para obtener más información sobre estos tipos de errores, consulte las indicaciones de la documentación del Model Context Protocol (MCP).