View a markdown version of this page

Busca herramientas en tu AgentCore portal con una consulta en lenguaje natural - Base amazónica AgentCore

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Busca herramientas en tu AgentCore portal con una consulta en lenguaje natural

Si habilitaste la búsqueda semántica para tu puerta de enlace cuando la creaste, puedes llamar a la x_amz_bedrock_agentcore_search herramienta para buscar herramientas en tu puerta de enlace mediante una consulta en lenguaje natural. La búsqueda semántica es especialmente útil cuando tienes muchas herramientas y necesitas encontrar las más adecuadas para tu caso práctico. Para obtener información sobre cómo habilitar la búsqueda semántica durante la creación de una puerta de enlace, consulte Crear una puerta de enlace de Amazon Bedrock AgentCore .

compatible AWS Regiones para la búsqueda semántica

La búsqueda semántica se admite en las siguientes regiones: AWS

Nombre de la región Region

Este de EE. UU. (Norte de Virginia)

us-east-1

Este de EE. UU. (Ohio)

us-east-2

Oeste de EE. UU. (Oregón)

us-west-2

Asia-Pacífico (Hyderabad)

ap-south-2

Asia-Pacífico (Mumbai)

ap-south-1

Asia-Pacífico (Seúl)

ap-northeast-2

Asia-Pacífico (Singapur)

ap-southeast-1

Asia-Pacífico (Sídney)

ap-southeast-2

Asia-Pacífico (Tokio)

ap-northeast-1

Canadá (centro)

ca-central-1

Europa (Fráncfort)

eu-central-1

Europa (Irlanda)

eu-west-1

Europa (Londres)

eu-west-2

Europa (Milán)

eu-south-1

Europa (París)

eu-west-3

Europa (España)

eu-south-2

Europa (Estocolmo)

eu-north-1

América del Sur (São Paulo)

sa-east-1

Para buscar una herramienta con esta AgentCore herramienta, realice la siguiente solicitud POST con el tools/call método al punto final MCP de la puerta de enlace:

ejemplo
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} { "jsonrpc": "2.0", "id": "${RequestName}", "method": "tools/call", "params": { "name": "x_amz_bedrock_agentcore_search", "arguments": { "query": ${Query} } } }
2026-07-28

En la versión2026-07-28, cada solicitud incluye en el cuerpo el MCP-Protocol-Version encabezado, los encabezados de Mcp-Name los metadatos de la solicitud Mcp-Method y los campos de la _meta versión.

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: tools/call Mcp-Name: x_amz_bedrock_agentcore_search { "jsonrpc": "2.0", "id": "${RequestName}", "method": "tools/call", "params": { "name": "x_amz_bedrock_agentcore_search", "arguments": { "query": ${Query} }, "_meta": { "io.modelcontextprotocol/protocolVersion": "2026-07-28", "io.modelcontextprotocol/clientInfo": { "name": "my-agent", "version": "1.0.0" }, "io.modelcontextprotocol/clientCapabilities": {} } } }
nota

La puerta de enlace solo acepta las versiones del protocolo MCP que figuran en el supportedVersions campo de su configuración. protocolConfiguration.mcp Para usar la versión2026-07-28, asegúrese de que la puerta de enlace la supportedVersions incluya. Puedes cambiar las versiones compatibles con la UpdateGateway API.

Reemplace los siguientes valores:

  • ${GatewayEndpoint}— La URL de la puerta de enlace, tal como se indica en la respuesta de la CreateGateway API.

  • ${Authorization header}— Las credenciales de autorización del proveedor de identidad al configurar la autorización Configure la autorización de entrada para su puerta de enlace entrante.

  • ${McpProtocolVersion}— La versión del protocolo MCP de la solicitud, por ejemplo. 2025-11-25 La versión debe ser compatible con su puerta de enlace.

  • ${RequestName}— Un nombre para la solicitud.

  • ${Query}— Una consulta en lenguaje natural para buscar herramientas.

La respuesta devuelve una lista de herramientas que son relevantes para la consulta.

Ejemplos de código para la búsqueda de herramientas

Para ver ejemplos del uso de consultas en lenguaje natural para buscar herramientas en la puerta de enlace, seleccione uno de los siguientes métodos:

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

Establezca el MCP-Protocol-Version encabezado en una versión compatible con su puerta de enlace.

import requests import json def search_tools(gateway_url, access_token, query): headers = { "Content-Type": "application/json", "Authorization": f"Bearer {access_token}", "MCP-Protocol-Version": "2025-11-25" } payload = { "jsonrpc": "2.0", "id": "search-tools-request", "method": "tools/call", "params": { "name": "x_amz_bedrock_agentcore_search", "arguments": { "query": query } } } 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 results = search_tools(gateway_url, access_token, "find order information") print(json.dumps(results, indent=2))
Python requests package (2026-07-28)

En cuanto a la versión2026-07-28, incluye los encabezados Mcp-Method y Mcp-Name los metadatos de la solicitud y los campos de _meta versión en el cuerpo. El MCP-Protocol-Version encabezado debe coincidir. _meta.io.modelcontextprotocol/protocolVersion Su puerta de enlace supportedVersions debe incluir2026-07-28.

import requests import json def search_tools(gateway_url, access_token, query): headers = { "Content-Type": "application/json", "Authorization": f"Bearer {access_token}", "MCP-Protocol-Version": "2026-07-28", "Mcp-Method": "tools/call", "Mcp-Name": "x_amz_bedrock_agentcore_search" } payload = { "jsonrpc": "2.0", "id": "search-tools-request", "method": "tools/call", "params": { "name": "x_amz_bedrock_agentcore_search", "arguments": { "query": query }, "_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 results = search_tools(gateway_url, access_token, "find order information") print(json.dumps(results, indent=2))
MCP Client
from mcp import ClientSession from mcp.client.streamable_http import streamablehttp_client import asyncio async def execute_mcp( url, token, tool_params, 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. Call specific tool print(f"Calling tool: {tool_params['name']}") tool_response = await session.call_tool( name=tool_params['name'], arguments=tool_params['arguments'] ) print(f"Tool response: {tool_response}") return tool_response async def main(): url = "https://${GatewayEndpoint}/mcp" token = "your_bearer_token_here" tool_params = { "name": "x_amz_bedrock_agentcore_search", "arguments": { "query": "How do I find order details?" } } await execute_mcp( url=url, token=token, tool_params=tool_params ) if __name__ == "__main__": asyncio.run(main())
Strands MCP Client
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 get_full_tools_list(client): """ List tools w/ support for pagination """ more_tools = True tools = [] pagination_token = None while more_tools: tmp_tools = client.list_tools_sync(pagination_token=pagination_token) tools.extend(tmp_tools) if tmp_tools.pagination_token is None: more_tools = False else: more_tools = True pagination_token = tmp_tools.pagination_token return tools def run_agent(mcp_url: str, access_token: str): mcp_client = MCPClient(lambda: create_streamable_http_transport(mcp_url, access_token)) with mcp_client: tools = get_full_tools_list(mcp_client) print(f"Found the following tools: {[tool.tool_name for tool in tools]}") result = mcp_client.call_tool_sync( tool_use_id="tool-123", # A unique ID for the tool call name="x_amz_bedrock_agentcore_search", # The name of the tool to invoke arguments={"query": "find order information"} # A dictionary of arguments for the tool ) print(result) url = {gatewayUrl} token = {AccessToken} run_agent(url, token)
LangGraph MCP Client
import asyncio from langchain_mcp_adapters.client import MultiServerMCPClient from langgraph.prebuilt import create_react_agent url = "" headers = {} def filter_search_tool( ): mcp_client = MultiServerMCPClient( { "agent": { "transport": "streamable_http", "url": url, "headers": headers, } } ) tools = asyncio.run(mcp_client.get_tools()) builtin_search_tool = [] for tool in tools: if tool.name == "x_amz_bedrock_agentcore_search": builtin_search_tool.append(tool) return builtin_search_tool def execute_agent( user_prompt, model_id, region, tools ): model = ChatBedrock(model_id=model_id, region_name=region) agent = create_react_agent(model, filter_search_tool()) _response = asyncio.run(agent.ainvoke({ "messages": user_prompt })) _response = _response.get('messages', {})[1].content print( f"Invoke Langchain Agents Response" f"Response - \n{_response}\n" ) return _response