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á.
Use com estruturas de agentes
Você pode integrar o servidor OpenSearch MCP diretamente às estruturas de agentes do Python, dando aos seus agentes autônomos acesso programático como parte de um fluxo OpenSearch de trabalho maior.
Strands Agents
O Strands AgentsAWS_OPENSEARCH_SERVERLESSDefina como true ao se conectar a uma coleção OpenSearch sem servidor; omita-a para um domínio gerenciado.
import os from strands import Agent from strands.tools.mcp import MCPClient from mcp import stdio_client, StdioServerParameters # For a managed domain: # OPENSEARCH_URL = https://<domain-endpoint>.<region>.es.amazonaws.com # # For an OpenSearch Serverless collection, also set: # AWS_OPENSEARCH_SERVERLESS = true # OPENSEARCH_URL = https://<collection-id>.<region>.aoss.amazonaws.com opensearch_client = MCPClient( lambda: stdio_client( StdioServerParameters( command="uvx", args=["opensearch-mcp-server-py"], env={ "OPENSEARCH_URL": os.environ["OPENSEARCH_URL"], "AWS_REGION": os.environ["AWS_REGION"], "AWS_IAM_ARN": os.environ["AWS_IAM_ARN"], # Set to "true" for OpenSearch Serverless, omit for managed domains "AWS_OPENSEARCH_SERVERLESS": os.environ.get("AWS_OPENSEARCH_SERVERLESS", "false"), }, ) ) ) with opensearch_client: agent = Agent(tools=opensearch_client.list_tools_sync()) response = agent("List all indexes and show the document count for each") print(response)
Strands usa o Amazon Bedrock como seu fornecedor de modelos padrão. Certifique-se de ter AWS as credenciais configuradas e o acesso ao modelo habilitado para Claude em sua região. Para obter detalhes, consulte a documentação do fornecedor Strands Bedrock
LangGraph
LangGraphlangchain-mcp-adapters para carregar as ferramentas OpenSearch MCP em um LangGraph ReAct agente apoiado pelo Amazon Bedrock. Assim como no Strands, AWS_OPENSEARCH_SERVERLESS defina como true ao se conectar a uma OpenSearch coleção sem servidor.
import asyncio import os from langchain_aws import ChatBedrock from langchain_mcp_adapters.client import MultiServerMCPClient from langgraph.prebuilt import create_react_agent async def main(): async with MultiServerMCPClient( { "opensearch": { "command": "uvx", "args": ["opensearch-mcp-server-py"], "env": { # Managed domain: https://<domain-endpoint>.<region>.es.amazonaws.com # Serverless: https://<collection-id>.<region>.aoss.amazonaws.com "OPENSEARCH_URL": os.environ["OPENSEARCH_URL"], "AWS_REGION": os.environ["AWS_REGION"], "AWS_IAM_ARN": os.environ["AWS_IAM_ARN"], # Set to "true" for OpenSearch Serverless, omit for managed domains "AWS_OPENSEARCH_SERVERLESS": os.environ.get("AWS_OPENSEARCH_SERVERLESS", "false"), }, "transport": "stdio", } } ) as mcp_client: tools = mcp_client.get_tools() model = ChatBedrock( model_id="anthropic.claude-3-5-sonnet-20241022-v2:0", region_name=os.environ["AWS_REGION"], ) agent = create_react_agent(model, tools) result = await agent.ainvoke( {"messages": [{"role": "user", "content": "Check cluster health and list all indexes"}]} ) print(result["messages"][-1].content) asyncio.run(main())
Instale os pacotes obrigatórios:
pip install langchain-aws langchain-mcp-adapters langgraph