

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á.

# Modelos de integração do servidor MCP
<a name="cfn-template-mcp-server"></a>

Com os modelos de servidor Model Context Protocol (MCP), você pode implantar um servidor MCP OpenSearch hospedado no Amazon Bedrock AgentCore, reduzindo a complexidade da integração entre agentes e ferramentas de IA. OpenSearch Para obter mais informações, consulte [O que é o Amazon Bedrock AgentCore](https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/what-is-bedrock-agentcore.html)? .

## Atributos do modelo
<a name="template-mcp-server-features"></a>

Esse modelo inclui os seguintes atributos principais para implantação e gerenciamento do servidor MCP.

**Implantação gerenciada do servidor MCP**  
Implanta **opensearch-mcp-server-py**usando o Amazon Bedrock AgentCore Runtime e fornece um endpoint de agente que envia solicitações por proxy para o servidor MCP subjacente. Para obter mais informações, consulte [opensearch-mcp-server-py](https://github.com/opensearch-project/opensearch-mcp-server-py)em *GitHub*.

**Autenticação e segurança**  
Lida com a autenticação de entrada (dos usuários para o servidor MCP) e a autenticação de saída (do servidor MCP para OpenSearch), além de oferecer suporte OAuth à autenticação corporativa.

**nota**  
O modelo do servidor MCP só está disponível nas seguintes Regiões da AWS:  
Leste dos EUA (N. da Virgínia)
Oeste dos EUA (Oregon)
Europa (Frankfurt)
Ásia-Pacífico (Sydney)

## Para usar o modelo do servidor MCP
<a name="template-mcp-server-procedure"></a>

Siga estas etapas para implantar o modelo de servidor MCP e conectá-lo ao seu OpenSearch domínio.

1. Abra o [console do Amazon OpenSearch Service](https://console.aws.amazon.com//aos/home ). 

1. No painel de navegação à esquerda, selecione **Integrações**.

1. Localize o modelo de **integração do servidor MCP**.

1. Escolha **Configurar domínio**. Em seguida, insira o endpoint OpenSearch do seu domínio.

O modelo cria um AgentCore Runtime e os seguintes componentes, se os parâmetros opcionais correspondentes não forem especificados:
+ Um repositório do Amazon ECR
+ Um grupo de usuários do Amazon Cognito como autorizador OAuth 
+ Uma função de execução usada pelo AgentCore Runtime

Depois de concluir esse procedimento, você deve seguir estas etapas de pós-criação:

1. **Para Amazon OpenSearch Service**: mapeie o ARN da sua função de execução para uma função de OpenSearch back-end para controlar o acesso ao seu domínio.

   **Para Amazon OpenSearch Serverless**: crie uma política de acesso a dados que permita que sua função de execução acesse sua coleção.

1. Obtenha um token de OAuth acesso do seu autorizador. Em seguida, use esse token para acessar o servidor MCP na URL listada na saída da sua CloudFormation pilha.

Para obter mais informações, consulte [Ações políticas para OpenSearch Serverless](security-iam-serverless.md#security-iam-serverless-id-based-policies-actions).

## Integração com agentes de IA
<a name="cfn-template-mcp-agent-integrations"></a>

Após a implantação, você pode integrar o servidor MCP com qualquer agente compatível com MCP. Para saber mais, consulte [Invocar o servidor MCP implantado](https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/runtime-mcp.html#runtime-mcp-invoke-server) no *Guia do desenvolvedor do Amazon Bedrock*. 

**Integração de desenvolvedores**  
Você pode adicionar o endpoint do servidor MCP à configuração do agente. Você também pode usá-lo com a CLI do Amazon Q Developer, com agentes personalizados ou outros agentes compatíveis com MCP.

**Implantação corporativa**  
Agentes hospedados centralmente podem se conectar a vários serviços com OpenSearch um único componente. Esse agente oferece suporte a sistemas de autenticação corporativos OAuth e é escalável para oferecer suporte a vários usuários e casos de uso.

### Exemplo de uso da estrutura do Strands Agents
<a name="strands-agent-integration-id"></a>

```
import os
import requests
from strands import Agent
from strands.tools.mcp import MCPClient
from mcp.client.streamable_http import streamablehttp_client

def get_bearer_token(discovery_url: str, client_id: str, client_secret: str):
    response = requests.get(discovery_url)
    discovery_data = response.json()
    token_endpoint = discovery_data['token_endpoint']

    data = {
        'grant_type': 'client_credentials',
        'client_id': client_id,
        'client_secret': client_secret
    }
    headers = {
        'Content-Type': 'application/x-www-form-urlencoded'
    }

    response = requests.post(token_endpoint, data=data, headers=headers)
    token_data = response.json()
    return token_data['access_token']

if __name__ == "__main__":
    discovery_url = os.environ["DISCOVERY_URL"]
    client_id = os.environ["CLIENT_ID"]
    client_secret = os.environ["CLIENT_SECRET"]
    mcp_url = os.environ["MCP_URL"]

    bearer_token = get_bearer_token(discovery_url, client_id, client_secret)

    opensearch_mcp_client = MCPClient(lambda: streamablehttp_client(mcp_url, {
        "authorization": f"Bearer {bearer_token}",
        "Content-Type": "application/json"
    }))

    with opensearch_mcp_client:
        tools = opensearch_mcp_client.list_tools_sync()
        agent = Agent(tools=tools)
        agent("list indices")
```

*Para obter mais informações, consulte [Hospedagem do OpenSearch MCP Server com o Amazon Bedrock AgentCore](https://opensearch.org/blog/hosting-opensearch-mcp-server-with-amazon-bedrock-agentcore/) no OpenSearch site.*