

# AgentCore ゲートウェイのリソーステンプレートを一覧表示する
<a name="gateway-using-mcp-resources-templates-list"></a>

AgentCore ゲートウェイが提供する使用可能なすべてのリソーステンプレートを一覧表示するには、ゲートウェイの MCP エンドポイントに POST リクエストを行い、リクエスト本文の メソッド`resources/templates/list`として を指定します。

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

${RequestBody}
```

以下の値を置き換えます:
+  `${GatewayEndpoint}` – [CreateGateway](https://docs.aws.amazon.com/bedrock-agentcore-control/latest/APIReference/API_CreateGateway.html) API のレスポンスで提供されるゲートウェイの URL。
+  `${Authorization header}` – [インバウンド認可を設定するときの ID プロバイダーからの認可](gateway-inbound-auth.md)認証情報。
+  `${RequestBody}` – Model [Context Protocol (MCP)](https://modelcontextprotocol.io/docs/getting-started/intro) の[リソーステンプレート](https://modelcontextprotocol.io/specification/2025-06-18/server/resources#resource-templates)で指定されているリクエストボディの JSON ペイロード。を `resources/templates/list`として含めます`method`。

**注記**  
でオプションでサポートされているパラメータのリストについては`resources/templates/list`、[Model Context Protocol ドキュメント](https://modelcontextprotocol.io/specification/2025-06-18)の[「リソース](https://modelcontextprotocol.io/specification/2025-06-18/server/resources)」のリクエスト本文の `params` オブジェクトを参照してください。検索バーの横にあるページの上部で、ドキュメントを表示する MCP バージョンを選択できます。バージョンが [Amazon Bedrock AgentCore でサポートされている](gateway-using.md)バージョンであることを確認します。

レスポンスは、URI テンプレート、名前、説明、MIME タイプを含む使用可能なリソーステンプレートのリストを返します。

**注記**  
リソーステンプレートは、RFC 6570 URI テンプレートを使用してパラメータ化されたリソースを記述します。クライアントはテンプレートパラメータを入力して、 で使用する具体的なリソース URIs を構築できます`resources/read`。たとえば、テンプレートを に展開`users://{user_id}/profile`できます`users://123/profile`。

## リソーステンプレートを一覧表示するためのコードサンプル
<a name="gateway-using-mcp-resources-templates-list-examples"></a>

ゲートウェイで使用可能なリソーステンプレートを一覧表示する例を表示するには、次のいずれかの方法を選択します。

**Example**  

1. 

   ```
   import requests
   import json
   
   def list_resource_templates(gateway_url, access_token):
       headers = {
           "Content-Type": "application/json",
           "Authorization": f"Bearer {access_token}"
       }
   
       payload = {
           "jsonrpc": "2.0",
           "id": "list-resource-templates-request",
           "method": "resources/templates/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
   templates = list_resource_templates(gateway_url, access_token)
   print(json.dumps(templates, indent=2))
   ```

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 resource templates
               print("Listing resource templates...")
               cursor = True
               templates = []
               while cursor:
                   next_cursor = cursor
                   if isinstance(cursor, bool):
                       next_cursor = None
                   list_templates_response = await session.list_resource_templates(next_cursor)
                   templates.extend(list_templates_response.resourceTemplates)
                   cursor = list_templates_response.nextCursor
   
               if templates:
                   for template in templates:
                       print(f"{template.uriTemplate} - {template.name}")
               print(f"Total resource templates: {len(templates)}")
   
   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())
   ```

1. 

   ```
   # NOTE: Strands SDK resource template support may vary. Use the MCP Client
   # approach above for the most reliable resources/templates/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_resource_templates_sync()
           print(f"Found the following templates: {[t.uriTemplate for t in result.resourceTemplates]}")
   
   run_agent(<MCP URL>, <Access token>)
   ```

1. 

   ```
   # NOTE: LangGraph MCP adapter resource template support may vary. Use the MCP
   # Client approach above for the most reliable implementation.
   
   import asyncio
   from mcp import ClientSession
   from mcp.client.streamable_http import streamablehttp_client
   
   async def list_resource_templates(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_resource_templates()
               for template in response.resourceTemplates:
                   print(f"{template.uriTemplate} - {template.name}")
   
   asyncio.run(list_resource_templates("https://${GatewayEndpoint}/mcp", "${AccessToken}"))
   ```