기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
AgentCore 게이트웨이의 리소스 템플릿 나열
AgentCore 게이트웨이가 제공하는 사용 가능한 모든 리소스 템플릿을 나열하려면 게이트웨이의 MCP 엔드포인트에 POST 요청을 하고 요청 본문에서를 메resources/templates/list서드로 지정합니다.
예
- 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
-
버전 에서는 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: resources/templates/list
${RequestBody}
게이트웨이는 protocolConfiguration.mcp 구성의 supportedVersions 필드에 나열된 MCP 프로토콜 버전만 허용합니다. 버전를 사용하려면 게이트웨이에 버전이 supportedVersions 포함되어 있는지 2026-07-28확인합니다. UpdateGateway API를 사용하여 지원되는 버전을 변경할 수 있습니다.
다음 값을 교체합니다.
-
${GatewayEndpoint} - CreateGateway API의 응답에 제공된 게이트웨이의 URL입니다.
-
${Authorization header} - 인바운드 권한 부여를 설정할 때 자격 증명 공급자의 권한 부여 자격 증명입니다.
-
${McpProtocolVersion} -와 같은 요청에 대한 MCP 프로토콜 버전입니다2025-11-25. 버전은 게이트웨이가 지원하는 버전이어야 합니다.
-
${RequestBody} - 모델 컨텍스트 프로토콜(MCP)의 리소스 템플릿에 지정된 요청 본문의 JSON 페이로드입니다. 를 resources/templates/list로 포함합니다method. 버전의 경우에 _meta 버전 필드2026-07-28도 포함합니다params.
응답은 URI 템플릿, 이름, 설명 및 MIME 유형과 함께 사용 가능한 리소스 템플릿 목록을 반환합니다.
리소스 템플릿은 RFC 6570 URI 템플릿을 사용하여 파라미터화된 리소스를 설명합니다. 클라이언트는 템플릿 파라미터를 입력하여에 사용할 구체적인 리소스 URIs 구성할 수 있습니다resources/read. 예를 들어 템플릿을 로 확장할 users://{user_id}/profile 수 있습니다users://123/profile.
리소스 템플릿 나열을 위한 코드 샘플
게이트웨이에서 사용 가능한 리소스 템플릿을 나열하는 예를 보려면 다음 방법 중 하나를 선택합니다.
예
- Python requests package (2025-11-25 and earlier)
-
MCP-Protocol-Version 헤더를 게이트웨이가 지원하는 버전으로 설정합니다.
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)
-
버전에서 MCP-Protocol-Version 및 Mcp-Method 헤더를 2026-07-28추가하고 요청 본문에 _meta 버전 필드를 포함합니다. 게이트웨이의 에는가 포함되어야 supportedVersions 합니다2026-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}"))