
Seu Backend de Busca Fala MCP Agora
Todo agente compatível com MCP no mundo precisa das mesmas três coisas de um backend de busca: descobrir quais dados estão disponíveis, executar consultas contra eles e obter resultados estruturados de volta. Claude, Amazon Q, Cursor, Kiro, Strands Agents e uma lista crescente de frameworks de código aberto agora falam MCP nativamente. O lado do protocolo está resolvido. Sua infraestrutura de busca agora pode falar de volta.
O Amazon OpenSearch Service agora faz isso. Seu domínio expõe um endpoint nativo MCP, e os agentes se conectam diretamente. Sem conectores personalizados, sem middleware, sem código de integração por agente. Este post explica como isso funciona na prática: o que o endpoint expõe, como protegê-lo e por que o problema de integração M×N desaparece quando sua fonte de dados fala o mesmo protocolo que seus agentes já entendem.
MCP em 60 Segundos
O Modelo de Contexto de Protocolo (MCP) é uma interface padrão JSON-RPC que permite que agentes de IA descubram e chamem ferramentas em sistemas externos. Um servidor MCP anuncia o que pode fazer (pesquisar um índice, verificar a saúde do cluster, executar uma agregação), e qualquer agente compatível com MCP pode chamar essas ferramentas sem código de integração personalizado. Um protocolo substitui todos os conectores sob medida.
O problema que o MCP resolve é combinatório. Se você tem M agentes se conectando a N fontes de dados, integrações personalizadas significam M×N conectores para construir e manter. Três agentes conversando com cinco domínios do OpenSearch Service significam quinze conectores. Cada um lida com autenticação, formatação de consultas e análise de respostas de sua própria maneira. Adicione um sexto domínio ou um quarto agente, e o ciclo começa novamente. O MCP colapsa isso para M+N: cada agente fala um protocolo, cada fonte de dados expõe um servidor, e qualquer agente pode conversar com qualquer servidor sem código adicional.
Pense nisso como USB. Antes do USB, cada periférico precisava de seu próprio cabo e driver. Depois do USB, você conecta e funciona. O MCP é essa padronização aplicada à camada de integração de IA. Seus agentes são os periféricos. Suas fontes de dados são o computador. O MCP é a porta.
O que o Servidor MCP Exponha
Seu domínio do OpenSearch Service expõe o endpoint MCP em /_plugins/_ml/mcp como parte do plugin ML Commons. Os agentes se conectam diretamente. O endpoint anuncia três tipos de componentes. Recursos fornecem contexto de dados a partir de seus índices. Prompts são modelos de instrução reutilizáveis para análises recorrentes. Ferramentas são funções executáveis: pesquisar índices, verificar a saúde do cluster, analisar métricas de desempenho, executar agregações.
Aqui está como uma chamada de ferramenta se parece. Um agente Python se conectando com fastmcp:
from fastmcp import Client
async with Client("https://your-domain.us-east-1.es.amazonaws.com/_plugins/_ml/mcp") as client:
# descobrir o que o domínio expõe
tools = await client.list_tools()
print([t.name for t in tools]) # ['SearchIndexTool', 'ListIndexTool', 'ClusterHealthTool', ...]
# chamar uma ferramenta pelo nome
result = await client.call_tool("SearchIndexTool", {
"index": "products",
"query": {"match": {"category": "electronics"}}
})
O agente descobre as ferramentas disponíveis, as chama pelo nome e obtém resultados estruturados de volta. Sem SDK personalizado, sem boilerplate de cliente REST. Qualquer agente compatível com MCP (Amazon Q CLI, Claude, Cursor, Strands Agents) se conecta da mesma maneira.
A Configuração (Onde Fica Divertido)
Para o endpoint embutido, não há nada para configurar no lado do servidor. Seu domínio já expõe o endpoint MCP. O que importa é acertar a autenticação: funções IAM e mapeamento de funções de backend determinam o que cada agente pode ver. Uma vez que isso esteja em vigor, conectar um novo agente é uma mudança de configuração. Eu criei um domínio, habilitei o MCP, registrei ferramentas e usei o SearchIndexTool para consultar meus dados no OpenSearch Service. O agente descobriu as ferramentas disponíveis através da negociação de capacidade do protocolo e executou consultas sem nenhum código de integração personalizado.
O acesso requer duas camadas. Primeiro, uma política baseada em recursos IAM que permite que a função do agente alcance o domínio:
{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::123456789012:role/ai-agent-role"
},
"Action": ["es:ESHttpGet", "es:ESHttpPost"],
"Resource": "arn:aws:es:us-east-1:123456789012:domain/my-domain/*"
}]
}
Segundo, com o controle de acesso granular habilitado, mapeie a função IAM para uma função de backend do OpenSearch que tenha permissões nas APIs do ML Commons e nos índices que seu agente precisa pesquisar. No OpenSearch Dashboards, vá para Segurança > Funções, crie ou escolha uma função com permissões de cluster para ml_full_access (ou um conjunto de permissões personalizadas mais restrito), adicione permissões de índice para os índices-alvo e, em seguida, mapeie o ARN da função IAM do seu agente para essa função de backend sob Usuários Mapeados. Cada agente que assume a mesma função IAM herda o mesmo acesso.
A adoção do protocolo MCP pode simplificar a integração de agentes de IA com fontes de dados, reduzindo a necessidade de conexões personalizadas. Isso é crucial para empresas brasileiras que buscam otimizar suas operações com IA, permitindo uma comunicação mais eficiente entre sistemas.
