

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 列出 AgentCore 閘道中的可用提示
<a name="gateway-using-mcp-prompts-list"></a>

若要列出 AgentCore 閘道提供的所有可用提示，請對閘道的 MCP 端點提出 POST 請求，並在請求內文中指定 `prompts/list`作為方法：

**Example**  

```
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`，每個請求都會攜帶 `MCP-Protocol-Version`標頭、 `Mcp-Method` 請求中繼資料標頭，以及內文中的`_meta`版本欄位。  

```
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/list

${RequestBody}
```

**注意**  
閘道僅接受其`protocolConfiguration.mcp`組態 `supportedVersions` 欄位中列出的 MCP 通訊協定版本。若要使用版本 `2026-07-28`，請確定閘道的 `supportedVersions`包含它。您可以使用 [UpdateGateway](https://docs.aws.amazon.com/bedrock-agentcore-control/latest/APIReference/API_UpdateGateway.html) API 變更支援的版本。

取代以下的值：
+  `${GatewayEndpoint}` – 閘道的 URL，如 [CreateGateway](https://docs.aws.amazon.com/bedrock-agentcore-control/latest/APIReference/API_CreateGateway.html) API 的回應所提供。
+  `${Authorization header}` – 當您設定[傳入](gateway-inbound-auth.md)授權時，來自身分提供者的授權憑證。
+  `${McpProtocolVersion}` – 請求的 MCP 通訊協定版本，例如 `2025-11-25`。版本必須是閘道支援的版本。
+  `${RequestBody}` – 請求內文的 JSON 承載，如[模型內容通訊協定 (MCP)](https://modelcontextprotocol.io/docs/getting-started/intro) 中的[列出提示](https://modelcontextprotocol.io/specification/2025-06-18/server/prompts#listing-prompts)所指定。包含 `prompts/list`做為 `method`。在版本 上`2026-07-28`，也在 中包含`_meta`版本欄位`params`。

**注意**  
如需 `prompts/list` 選用支援參數的清單，請參閱[模型內容通訊協定文件](https://modelcontextprotocol.io/specification/2025-06-18) 中[提示](https://modelcontextprotocol.io/specification/2025-06-18/server/prompts) 請求內文中的 `params` 物件。在搜尋列旁的頁面頂端，您可以選取要檢視其文件的 MCP 版本。請確定 [Amazon Bedrock AgentCore 支援](gateway-using.md)該版本。

回應會傳回可用提示清單，其中包含其名稱、描述和引數。

## 列出提示的程式碼範例
<a name="gateway-using-mcp-prompts-list-examples"></a>

若要查看在閘道中列出可用提示的範例，請選取下列其中一種方法：

**Example**  
將 `MCP-Protocol-Version`標頭設定為閘道支援的版本。  

```
import requests
import json

def list_prompts(gateway_url, access_token):
    headers = {
        "Content-Type": "application/json",
        "Authorization": f"Bearer {access_token}",
        "MCP-Protocol-Version": "2025-11-25"
    }

    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))
```
在版本 上`2026-07-28`，新增 `MCP-Protocol-Version` 和 `Mcp-Method`標頭，並在請求內文中包含`_meta`版本欄位。閘道的 `supportedVersions` 必須包含 `2026-07-28`。  

```
import requests
import json

def list_prompts(gateway_url, access_token):
    headers = {
        "Content-Type": "application/json",
        "Authorization": f"Bearer {access_token}",
        "MCP-Protocol-Version": "2026-07-28",
        "Mcp-Method": "prompts/list"
    }

    payload = {
        "jsonrpc": "2.0",
        "id": "list-prompts-request",
        "method": "prompts/list",
        "params": {
            "_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
prompts = list_prompts(gateway_url, access_token)
print(json.dumps(prompts, indent=2))
```

```
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())
```

```
# 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>)
```

```
# 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}"))
```

**注意**  
提示名稱的字首為目標名稱，格式為 `{targetName}___{promptName}`。這是用於工具的相同命名慣例。如需詳細資訊，請參閱[工具命名慣例](gateway-tool-naming.md)。

**注意**  
如需使用提示編寫 MCP 伺服器的資訊，請參閱 [MCP 狀態功能](mcp-stateful-features.md)。