View a markdown version of this page

Recevoir une invite depuis une AgentCore passerelle - Base rocheuse de l'Amazonie AgentCore

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Recevoir une invite depuis une AgentCore passerelle

Pour obtenir une invite spécifique, envoyez une requête POST au point de terminaison MCP de la passerelle et spécifiez prompts/get comme méthode dans le corps de la requête, le nom de l'invite et les arguments :

Exemple
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

Lors de la version2026-07-28, chaque demande contient l'MCP-Protocol-Versionen-tête, les en-têtes Mcp-Method et les en-têtes Mcp-Name des métadonnées de la demande, ainsi que les champs de _meta version dans le corps.

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}
Note

La passerelle accepte uniquement les versions du protocole MCP répertoriées dans le supportedVersions champ de sa protocolConfiguration.mcp configuration. Pour utiliser la version2026-07-28, assurez-vous que votre passerelle l'supportedVersionsinclut. Vous pouvez modifier les versions prises en charge à l'aide de l'UpdateGatewayAPI.

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 Configurez l'autorisation entrante pour votre passerelle entrante.

  • ${McpProtocolVersion}— La version du protocole MCP pour la demande, telle que2025-11-25. La version doit être prise en charge par votre passerelle.

  • ${PromptName}— Le nom de l'invite, correspondant name au corps de la demande.

  • ${RequestBody}— La charge utile JSON du corps de la requête, comme indiqué dans Getting a prompt in the Model Context Protocol (MCP). Incluez prompts/get en tant que method et incluez le name de l'invite et sesarguments. Sur la version2026-07-28, incluez également les champs de _meta version dansparams.

La réponse renvoie l'invite rendue sous la forme d'un tableau de messages, chacun ayant un rôle et un contenu.

Note

L'prompts/getopération transmet la demande en direct au serveur MCP en aval. Le nom de l'invite doit inclure le préfixe cible (par exemple,myTarget___myPrompt).

Exemples de code pour obtenir une invite

Pour voir des exemples d'obtention d'une invite depuis la passerelle, sélectionnez l'une des méthodes suivantes :

Exemple
curl (2025-11-25 and earlier)

La requête curl suivante montre un exemple de demande visant à obtenir une invite appelée myTarget___code_review via une passerelle avec l'IDmygateway-abcdefghij. Définissez l'MCP-Protocol-Versionen-tête sur une version prise en charge par votre passerelle.

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)

Dans la version2026-07-28, incluez les en-têtes Mcp-Method Mcp-Name et les métadonnées de demande et les champs de _meta version dans le corps. L'MCP-Protocol-Versionen-tête doit correspondre_meta.io.modelcontextprotocol/protocolVersion. Votre passerelle supportedVersions doit inclure2026-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)

Définissez l'MCP-Protocol-Versionen-tête sur une version prise en charge par votre passerelle.

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)

Dans la version2026-07-28, incluez les en-têtes Mcp-Method Mcp-Name et les métadonnées de demande et les champs de _meta version dans le corps. L'MCP-Protocol-Versionen-tête doit correspondre_meta.io.modelcontextprotocol/protocolVersion. Votre passerelle supportedVersions doit inclure2026-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

REMARQUE : la prise en charge rapide des adaptateurs LangGraph MCP peut varier. Utilisez l'approche MCP Client présentée précédemment pour une prompts/get mise en œuvre la plus fiable possible.

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

Erreurs

L'prompts/getopération peut renvoyer les types d'erreurs suivants :

  • Erreurs renvoyées dans le cadre du code d'état HTTP :

    AuthenticationError

    La demande a échoué en raison d'informations d'authentification non valides.

    Code d'état HTTP  : 401

    AuthorizationError

    L'appelant n'est pas autorisé à recevoir l'invite.

    Code d'état HTTP  : 403

    ResourceNotFoundError

    L'invite spécifiée n'existe pas.

    Code d'état HTTP  : 404

    ValidationError

    Les arguments fournis ne satisfont pas les arguments requis par l'invite.

    Code d'état HTTP  : 400

    InternalServerError

    Une erreur interne du serveur s’est produite.

    Code d'état HTTP  : 500

  • Erreurs MCP. Pour plus d'informations sur ces types d'erreurs, consultez les instructions dans la documentation du Model Context Protocol (MCP).