View a markdown version of this page

Mendapatkan prompt dari AgentCore gateway - Batu Dasar Amazon AgentCore

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Mendapatkan prompt dari AgentCore gateway

Untuk mendapatkan prompt tertentu, buat permintaan POST ke titik akhir MCP gateway dan tent prompts/get ukan sebagai metode dalam badan permintaan, nama prompt, dan argumen:

contoh
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

Pada versi2026-07-28, setiap permintaan membawa MCP-Protocol-Version header, header Mcp-Method dan Mcp-Name request-metadata, dan bidang _meta versi di badan.

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

Gateway hanya menerima versi protokol MCP yang tercantum di supportedVersions bidang protocolConfiguration.mcp konfigurasinya. Untuk menggunakan versi2026-07-28, pastikan gateway Anda menyer supportedVersions takannya. Anda dapat mengubah versi yang didukung dengan UpdateGateway API.

Ganti nilai-nilai berikut:

  • ${GatewayEndpoint}— URL gateway, seperti yang disediakan dalam tanggapan CreateGateway API.

  • ${Authorization header}— KredenSIAL otorisasi dari penyedia identitas saat Anda mengatur otorisasi masuk.

  • ${McpProtocolVersion}— Versi protokol MCP untuk permintaan, seperti2025-11-25. Versi harus salah satu yang didukung gateway Anda.

  • ${PromptName}— Nama prompt, cocok dengan name di badan permintaan.

  • ${RequestBody}— Payload JSON dari badan permintaan, seperti yang ditentukan dalam Mendap atkan prompt di Model Context Protocol (MCP). Sertakan prompts/get sebagai method dan sertakan name dari prompt dan ituarguments. Pada versi2026-07-28, sertakan juga bidang _meta versi diparams.

Respons mengembalikan prompt yang dirender sebagai array pesan, masing-masing dengan peran dan konten.

catatan

prompts/getOperasi memproksi permintaan langsung ke server MCP hilir. Nama prompt harus menyertakan awalan target (misalnya,myTarget___myPrompt).

Contoh kode untuk mendapatkan prompt

Untuk melihat contoh mendapatkan prompt dari gateway, pilih salah satu metode berikut:

contoh
curl (2025-11-25 and earlier)

Permintaan curl berikut menunjukkan contoh permintaan untuk mendapatkan prompt yang di myTarget___code_review panggil melalui gateway dengan IDmygateway-abcdefghij. Atur MCP-Protocol-Version header ke versi yang didukung gateway Anda.

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)

Pada versi2026-07-28, sertakan Mcp-Method header dan Mcp-Name request-metadata dan bidang _meta versi di badan. MCP-Protocol-VersionHeader harus cocok_meta.io.modelcontextprotocol/protocolVersion. Gateway Anda supportedVersions harus disertakan2026-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)

Atur MCP-Protocol-Version header ke versi yang didukung gateway Anda.

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)

Pada versi2026-07-28, sertakan Mcp-Method header dan Mcp-Name request-metadata dan bidang _meta versi di badan. MCP-Protocol-VersionHeader harus cocok_meta.io.modelcontextprotocol/protocolVersion. Gateway Anda supportedVersions harus disertakan2026-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

CATATAN: LangGraph Dukungan prompt adaptor MCP mungkin berbeda. Gunakan pendekatan Klien MCP yang ditunjukkan sebelumnya untuk prompts/get implementasi yang paling andal.

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

Kesalahan

prompts/getOperasi dapat mengembalikan jenis kesalahan berikut:

  • Kesalahan dikembalikan sebagai bagian dari kode status HTTP:

    AuthenticationError

    Permintaan gagal karena kredentif otentikasi tidak valid.

    Kode Status HTTP: 401

    AuthorizationError

    Penelepon tidak memiliki izin untuk mendapatkan prompt.

    Kode Status HTTP: 403

    ResourceNotFoundError

    Prompt yang ditentukan tidak ada.

    Kode Status HTTP: 404

    ValidationError

    Argumen yang diberikan tidak memenuhi argumen prompt yang diperlukan.

    Kode Status HTTP: 400

    InternalServerError

    Terjadi kesalahan server internal.

    Kode Status HTTP: 500

  • Kesalahan MCP. Untuk informasi selengkapnya tentang jenis kesalahan ini, lihat Promp t dalam dokumentasi Model Context Protocol (MCP).