View a markdown version of this page

Listar os recursos disponíveis em um AgentCore gateway - Base da Amazônia AgentCore

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Listar os recursos disponíveis em um AgentCore gateway

Para listar todos os recursos disponíveis que um AgentCore gateway fornece, faça uma solicitação POST para o endpoint MCP do gateway e especifique resources/list como método no corpo da solicitação:

exemplo
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

Na versão2026-07-28, cada solicitação carrega o MCP-Protocol-Version cabeçalho, o cabeçalho de Mcp-Method metadados da solicitação e os campos de _meta versão no corpo.

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

O gateway aceita somente as versões do protocolo MCP listadas no supportedVersions campo de sua protocolConfiguration.mcp configuração. Para usar a versão2026-07-28, certifique-se de que seu gateway a supportedVersions inclua. Você pode alterar as versões compatíveis com a UpdateGateway API.

Substitua os valores a seguir:

  • ${GatewayEndpoint}— O URL do gateway, conforme fornecido na resposta da CreateGateway API.

  • ${Authorization header}— As credenciais de autorização do provedor de identidade quando você configura a autorização de entrada.

  • ${McpProtocolVersion}— A versão do protocolo MCP para a solicitação, como2025-11-25. A versão deve ser compatível com seu gateway.

  • ${RequestBody}— A carga JSON do corpo da solicitação, conforme especificado em Listando recursos no Model Context Protocol (MCP). resources/listInclua como method o. Na versão2026-07-28, inclua também os campos de _meta versão emparams.

nota

Para obter uma lista dos parâmetros com suporte opcional pararesources/list, consulte o params objeto no corpo da solicitação em Recursos na documentação do Model Context Protocol. Na parte superior da página ao lado da barra de pesquisa, você pode selecionar a versão do MCP cuja documentação você deseja visualizar. Certifique-se de que a versão seja compatível com o Amazon Bedrock AgentCore.

A resposta retorna uma lista dos recursos disponíveis com seus URIs, nomes, descrições e tipos de MIME.

nota

Diferentemente das ferramentas e dos prompts, os URIs dos recursos são retornados sem um prefixo de nome de destino. O URI original do servidor MCP é retornado como está.

nota

Quando vários destinos expõem o mesmo URI de recurso, o gateway retorna o recurso do destino com o menor resourcePriority valor.

Importante

Os URIs de recursos são fornecidos pelo destino do servidor MCP downstream e não são validados ou higienizados pelo gateway. Um servidor MCP malicioso ou comprometido pode retornar URIs apontando para endpoints internos (SSRF) ou caminhos do sistema de arquivos local (por exemplo,). file:///etc/passwd Valide e limpe os URIs dos recursos antes de segui-los e não busque nem renderize automaticamente os URIs de destinos não confiáveis do servidor MCP.

Exemplos de código para listar recursos

Para ver exemplos de listagem de recursos disponíveis no gateway, selecione um dos seguintes métodos:

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

Defina o MCP-Protocol-Version cabeçalho para uma versão compatível com seu 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)

Na versão2026-07-28, adicione os Mcp-Method cabeçalhos MCP-Protocol-Version e e inclua os campos da _meta versão no corpo da solicitação. Seu gateway supportedVersions deve incluir2026-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}"))