View a markdown version of this page

Listar las solicitudes disponibles en una AgentCore puerta de enlace - Amazon Bedrock AgentCore

Listar las solicitudes disponibles en una AgentCore puerta de enlace

Para enumerar todas las solicitudes disponibles que proporciona una AgentCore puerta de enlace, realice una solicitud POST al punto final MCP de la puerta de enlace y especifique prompts/list el método en el cuerpo de la solicitud:

POST /mcp HTTP/1.1 Host: ${GatewayEndpoint} Content-Type: application/json Authorization: ${Authorization header} ${RequestBody}

Reemplace los siguientes valores:

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

  • ${Authorization header}— Las credenciales de autorización del proveedor de identidad al configurar la autorización entrante.

  • ${RequestBody}— La carga útil JSON del cuerpo de la solicitud, tal como se especifica en las indicaciones del Model Context Protocol (MCP). Incluir comoprompts/list. method

nota

Para obtener una lista de los parámetros compatibles opcionalmenteprompts/list, consulte el params objeto en el cuerpo de la solicitud en las indicaciones de la documentación del Model Context Protocol. En la parte superior de la página, junto a la barra de búsqueda, puede seleccionar la versión del MCP cuya documentación desea ver. Asegúrese de que la versión sea compatible con Amazon Bedrock AgentCore.

La respuesta devuelve una lista de las solicitudes disponibles con sus nombres, descripciones y argumentos.

Ejemplos de código para enumerar las solicitudes

Para ver ejemplos de listas de mensajes disponibles en la puerta de enlace, selecciona uno de los siguientes métodos:

ejemplo
Python requests package
  1. import requests import json def list_prompts(gateway_url, access_token): headers = { "Content-Type": "application/json", "Authorization": f"Bearer {access_token}" } payload = { "jsonrpc": "2.0", "id": "list-prompts-request", "method": "prompts/list" } 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 prompts = list_prompts(gateway_url, access_token) print(json.dumps(prompts, indent=2))
MCP Client
  1. import asyncio from mcp import ClientSession from mcp.client.streamable_http import streamablehttp_client async def execute_mcp( url, token, 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. List available prompts print("Listing prompts...") cursor = True prompts = [] while cursor: next_cursor = cursor if isinstance(cursor, bool): next_cursor = None list_prompts_response = await session.list_prompts(next_cursor) prompts.extend(list_prompts_response.prompts) cursor = list_prompts_response.nextCursor prompt_names = [] if prompts: for prompt in prompts: prompt_names.append(prompt.name) prompt_names_string = "\n".join(prompt_names) print( f"List MCP prompts. # of prompts - {len(prompts)}\n" f"List of prompts - \n{prompt_names_string}\n" ) async def main(): url = "https://${GatewayEndpoint}/mcp" token = "your_bearer_token_here" # Optional additional headers additional_headers = { "Content-Type": "application/json", } await execute_mcp( url=url, token=token, headers=additional_headers ) # Run the async function if __name__ == "__main__": asyncio.run(main())
Strands MCP Client
  1. # NOTE: Strands SDK prompt support may vary. Use the MCP Client approach above # for the most reliable prompts/list implementation. from strands.tools.mcp.mcp_client import MCPClient from mcp.client.streamable_http import streamablehttp_client def create_streamable_http_transport(mcp_url: str, access_token: str): return streamablehttp_client(mcp_url, headers={"Authorization": f"Bearer {access_token}"}) def run_agent(mcp_url: str, access_token: str): mcp_client = MCPClient(lambda: create_streamable_http_transport(mcp_url, access_token)) with mcp_client: result = mcp_client.list_prompts_sync() print(f"Found the following prompts: {[prompt.name for prompt in result.prompts]}") run_agent(<MCP URL>, <Access token>)
LangGraph MCP Client
  1. # NOTE: LangGraph MCP adapter prompt support may vary. Use the MCP Client # approach above for the most reliable prompts/list implementation. import asyncio from mcp import ClientSession from mcp.client.streamable_http import streamablehttp_client async def list_prompts(url, token): 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.list_prompts() for prompt in response.prompts: print(f"{prompt.name} - {prompt.description}") asyncio.run(list_prompts("https://${GatewayEndpoint}/mcp", "${AccessToken}"))
nota

Los nombres de las solicitudes llevan el prefijo del nombre de destino utilizando el formato. {targetName}___{promptName} Es la misma convención de nomenclatura que se usa para las herramientas. Para obtener más información, consulte Convenciones de nomenclatura de herramientas.

nota

Para obtener información sobre la creación de servidores MCP con solicitudes, consulte Características con estado de MCP.