View a markdown version of this page

Répertorier les invites disponibles dans une passerelle AgentCore - Amazon Bedrock AgentCore

Répertorier les invites disponibles dans une passerelle AgentCore

Pour répertorier toutes les invites disponibles fournies par une AgentCore passerelle, envoyez une requête POST au point de terminaison MCP de la passerelle et spécifiez prompts/list comme méthode dans le corps de la demande :

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

Remplacez les valeurs suivantes :

  • ${GatewayEndpoint}— L'URL de la passerelle, telle que fournie dans la réponse de l'CreateGatewayAPI.

  • ${Authorization header}— Les informations d'autorisation fournies par le fournisseur d'identité lorsque vous configurez l'autorisation entrante.

  • ${RequestBody}— La charge utile JSON du corps de la requête, telle que spécifiée dans les instructions de listage du Model Context Protocol (MCP). Inclure prompts/list en tant quemethod.

Note

Pour obtenir la liste des paramètres éventuellement pris en charge pourprompts/list, consultez l'paramsobjet dans le corps de la demande à la section Prompts de la documentation du protocole Model Context. En haut de la page, à côté de la barre de recherche, vous pouvez sélectionner la version de MCP dont vous souhaitez consulter la documentation. Assurez-vous que la version est prise en charge par Amazon Bedrock AgentCore.

La réponse renvoie une liste des invites disponibles avec leurs noms, descriptions et arguments.

Exemples de code pour les invites de mise en vente

Pour voir des exemples de liste des invites disponibles dans la passerelle, sélectionnez l'une des méthodes suivantes :

Exemple
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}"))
Note

Les noms des invites sont préfixés par le nom de la cible selon le format{targetName}___{promptName}. Il s'agit de la même convention de dénomination que celle utilisée pour les outils. Pour plus d'informations, consultez la section Conventions de dénomination des outils.

Note

Pour plus d'informations sur la création de serveurs MCP à l'aide d'instructions, consultez la section Fonctionnalités dynamiques du MCP.