View a markdown version of this page

Holen Sie sich eine Aufforderung von einem AgentCore Gateway - Amazon Grundgestein AgentCore

Holen Sie sich eine Aufforderung von einem AgentCore Gateway

Um eine bestimmte Aufforderung zu erhalten, stellen Sie eine POST-Anfrage an den MCP-Endpunkt des Gateways und geben Sie prompts/get als Methode im Hauptteil der Anfrage den Namen der Aufforderung und die Argumente an:

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

Ersetzen Sie die folgenden Werte:

  • ${GatewayEndpoint}— Die URL des Gateways, wie sie in der Antwort der CreateGatewayAPI angegeben wurde.

  • ${Authorization header}— Die Autorisierungsdaten des Identitätsanbieters, wenn Sie die eingehende Autorisierung einrichten.

  • ${RequestBody}— Die JSON-Payload des Anfragetexts, wie unter Abrufen einer Aufforderung im Model Context Protocol (MCP) angegeben. Fügen prompts/get Sie die Eingabeaufforderung method und ihre Eingabeaufforderung ein und schließen Sie sie ein. name arguments

Die Antwort gibt die gerenderte Aufforderung als Array von Nachrichten zurück, von denen jede eine Rolle und einen Inhalt hat.

Anmerkung

Der prompts/get Vorgang leitet die Anfrage live an den Downstream-MCP-Server weiter. Der Name der Aufforderung muss das Zielpräfix enthalten (z. B.). myTarget___myPrompt

Codebeispiele für das Abrufen einer Eingabeaufforderung

Um Beispiele für das Abrufen einer Aufforderung vom Gateway zu sehen, wählen Sie eine der folgenden Methoden aus:

Beispiel
curl
  1. Die folgende Curl-Anfrage zeigt eine Beispielanforderung, um eine Aufforderung zu erhalten, die myTarget___code_review über ein Gateway mit der ID mygateway-abcdefghij aufgerufen wird.

    curl -X POST \ https://mygateway-abcdefghij.gateway.bedrock-agentcore.us-west-2.amazonaws.com/mcp \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \ -d '{ "jsonrpc": "2.0", "id": "get-prompt-request", "method": "prompts/get", "params": { "name": "myTarget___code_review", "arguments": { "language": "python", "code": "print(\"hello\")" } } }'
Python requests package
  1. import requests import json def get_prompt(gateway_url, access_token, prompt_name, arguments): headers = { "Content-Type": "application/json", "Authorization": f"Bearer {access_token}" } 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))
MCP Client
  1. 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
  1. HINWEIS: Die Unterstützung von LangGraph MCP-Adapter-Eingabeaufforderungen kann variieren. Verwenden Sie den oben genannten MCP-Client-Ansatz, um die prompts/get zuverlässigste Implementierung zu erzielen.

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

Fehler

Der prompts/get Vorgang kann die folgenden Fehlertypen zurückgeben:

  • Fehler, die als Teil des HTTP-Statuscodes zurückgegeben wurden:

    AuthenticationError

    Die Anfrage ist aufgrund ungültiger Anmeldeinformationen fehlgeschlagen.

    HTTP-Statuscode: 401

    AuthorizationError

    Der Anrufer ist nicht berechtigt, die Aufforderung zu erhalten.

    HTTP-Statuscode: 403

    ResourceNotFoundError

    Die angegebene Eingabeaufforderung ist nicht vorhanden.

    HTTP-Statuscode: 404

    ValidationError

    Die angegebenen Argumente entsprechen nicht den erforderlichen Argumenten der Aufforderung.

    HTTP-Statuscode: 400

    InternalServerError

    Es ist ein interner Serverfehler aufgetreten.

    HTTP-Statuscode: 500

  • MCP-Fehler. Weitere Informationen zu diesen Fehlertypen finden Sie unter Prompts in der Dokumentation zum Model Context Protocol (MCP).