View a markdown version of this page

Elenca le risorse disponibili 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 le risorse disponibili in un AgentCore gateway

Per elencare tutte le risorse disponibili fornite da un AgentCore gateway, effettuate una richiesta POST all'endpoint MCP del gateway e specificate resources/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 Mcp-Method request-metadata 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/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 in Listing resources in the Model Context Protocol (MCP). Includi comeresources/list. method Nella versione2026-07-28, includi anche i campi della _meta versione inparams.

Nota

Per un elenco dei parametri opzionali supportati perresources/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 risorse disponibili con i relativi URI, nomi, descrizioni e tipi MIME.

Nota

A differenza degli strumenti e dei prompt, gli URI delle risorse vengono restituiti senza il prefisso del nome di destinazione. L'URI originale del server MCP viene restituito così com'è.

Nota

Quando più destinazioni espongono lo stesso URI di risorsa, il gateway restituisce la risorsa dalla destinazione con il valore più basso. resourcePriority

Importante

Gli URI delle risorse sono forniti dalla destinazione del server MCP a valle e non sono convalidati o sanificati dal gateway. Un server MCP dannoso o compromesso potrebbe restituire URI che puntano a endpoint interni (SSRF) o a percorsi di file system locali (ad esempio). file:///etc/passwd Convalidate e disinfettate gli URI delle risorse prima di seguirli e non recuperate o visualizzate automaticamente gli URI da destinazioni server MCP non attendibili.

Esempi di codice per elencare le risorse

Per visualizzare esempi di elenco delle 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_resources(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-resources-request", "method": "resources/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 resources = list_resources(gateway_url, access_token) print(json.dumps(resources, 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_resources(gateway_url, access_token): headers = { "Content-Type": "application/json", "Authorization": f"Bearer {access_token}", "MCP-Protocol-Version": "2026-07-28", "Mcp-Method": "resources/list" } payload = { "jsonrpc": "2.0", "id": "list-resources-request", "method": "resources/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 resources = list_resources(gateway_url, access_token) print(json.dumps(resources, 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 resources print("Listing resources...") cursor = True resources = [] while cursor: next_cursor = cursor if isinstance(cursor, bool): next_cursor = None list_resources_response = await session.list_resources(next_cursor) resources.extend(list_resources_response.resources) cursor = list_resources_response.nextCursor if resources: for resource in resources: print(f"{resource.uri} - {resource.name} ({resource.mimeType})") print(f"Total resources: {len(resources)}") 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 support may vary. Use the MCP Client approach # above for the most reliable resources/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_resources_sync() print(f"Found the following resources: {[r.uri for r in result.resources]}") run_agent(<MCP URL>, <Access token>)
LangGraph MCP Client
# NOTE: LangGraph MCP adapter resource support may vary. Use the MCP Client # approach above for the most reliable resources/list implementation. import asyncio from mcp import ClientSession from mcp.client.streamable_http import streamablehttp_client async def list_resources(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_resources() for resource in response.resources: print(f"{resource.uri} - {resource.name}") asyncio.run(list_resources("https://${GatewayEndpoint}/mcp", "${AccessToken}"))