View a markdown version of this page

Elenca i modelli di risorse in un AgentCore gateway - Fondamento Amazon AgentCore

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Elenca i modelli di risorse in un AgentCore gateway

Per elencare tutti i modelli di risorse disponibili forniti da un AgentCore gateway, effettuate una richiesta POST all'endpoint MCP del gateway e specificate resources/templates/list come metodo nel corpo della richiesta:

Esempio
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

In base alla versione2026-07-28, ogni richiesta contiene l'MCP-Protocol-Versionintestazione, l'intestazione dei Mcp-Method metadati della richiesta e i campi della versione nel corpo. _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: resources/templates/list ${RequestBody}
Nota

Il gateway accetta solo le versioni del protocollo MCP elencate nel campo della sua configurazione. supportedVersions protocolConfiguration.mcp Per utilizzare la versione2026-07-28, assicurati che sia supportedVersions inclusa nel gateway. Puoi modificare le versioni supportate con l'UpdateGatewayAPI.

Sostituisci i valori seguenti:

  • ${GatewayEndpoint}— L'URL del gateway, come fornito nella risposta dell'CreateGatewayAPI.

  • ${Authorization header}— Le credenziali di autorizzazione del provider di identità quando si imposta l'autorizzazione in entrata.

  • ${McpProtocolVersion}— La versione del protocollo MCP per la richiesta, ad esempio. 2025-11-25 La versione deve essere quella supportata dal gateway.

  • ${RequestBody}— Il payload JSON del corpo della richiesta, come specificato nei modelli di risorse nel Model Context Protocol (MCP). Includi comeresources/templates/list. method Nella versione2026-07-28, includi anche i campi della _meta versione inparams.

Nota

Per un elenco dei parametri opzionali supportati perresources/templates/list, vedere l'paramsoggetto nel corpo della richiesta in Risorse nella documentazione del Model Context Protocol. Nella parte superiore della pagina, accanto alla barra di ricerca, è possibile selezionare la versione MCP di cui si desidera visualizzare la documentazione. Assicurati che la versione sia supportata da Amazon AgentCore Bedrock.

La risposta restituisce un elenco di modelli di risorse disponibili con i relativi modelli URI, nomi, descrizioni e tipi MIME.

Nota

I modelli di risorse utilizzano i modelli URI RFC 6570 per descrivere le risorse parametrizzate. I clienti possono inserire i parametri del modello per costruire URI di risorse concreti da utilizzare con. resources/read Ad esempio, un modello users://{user_id}/profile può essere esteso a. users://123/profile

Esempi di codice per elencare i modelli di risorse

Per visualizzare esempi di elenco dei modelli di risorse disponibili nel gateway, seleziona uno dei seguenti metodi:

Esempio
Python requests package (2025-11-25 and earlier)

Imposta l'MCP-Protocol-Versionintestazione su una versione supportata dal tuo gateway.

import requests import json def list_resource_templates(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-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))
Python requests package (2026-07-28)

In base alla versione2026-07-28, aggiungi le Mcp-Method intestazioni MCP-Protocol-Version e e includi i campi della _meta versione nel corpo della richiesta. Il tuo gateway supportedVersions deve includere2026-07-28.

import requests import json def list_resource_templates(gateway_url, access_token): headers = { "Content-Type": "application/json", "Authorization": f"Bearer {access_token}", "MCP-Protocol-Version": "2026-07-28", "Mcp-Method": "resources/templates/list" } payload = { "jsonrpc": "2.0", "id": "list-resource-templates-request", "method": "resources/templates/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 templates = list_resource_templates(gateway_url, access_token) print(json.dumps(templates, indent=2))
MCP Client
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())
Strands MCP Client
# 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>)
LangGraph MCP Client
# 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}"))