---
name: azion-crie-regras-do-rules-engine-com-o-mcp-server
description: >-
  Peça a um agente conectado ao MCP server de build da Azion uma prévia dry_run de uma regra do Rules Engine, revise a requisição e crie a regra.
---

# Crie regras do Rules Engine com o MCP server

Você pode criar uma regra do [Rules Engine](/pt-br/documentacao/plataforma/applications/rules-engine/) descrevendo-a a um agente de código conectado ao servidor de build dos [MCP servers da Azion](/pt-br/documentacao/devtools/mcp/). O servidor de build escreve na sua conta, então o agente primeiro chama a ferramenta com `dry_run`, que retorna a requisição da API sem enviá-la. Você revisa essa requisição, e então o agente a envia. Para a mesma regra criada à mão no Azion Console, siga [Crie uma regra de aplicação](/pt-br/documentacao/guias/desenvolvimento-de-aplicacoes/primeiros-passos/trabalhar-com-rules-engine/).

---

## Pré-requisitos

- Um agente de código conectado ao servidor de build, `https://build-mcp.azion.com/mcp`. Para conectar um, consulte [Primeiros passos com o MCP server](/pt-br/documentacao/devtools/mcp/primeiros-passos/).
- Um personal token com permissão para alterar a aplicação. O servidor de build envia toda requisição com esse token.
- O ID da aplicação que vai receber a regra.

---

## Crie uma regra com o seu agente

O servidor de build cria uma regra de requisição com `create_request_rule` e uma regra de resposta com `create_response_rule`. As duas recebem o `application_id`, um `name`, os `criteria` e os `behaviors` da regra. Para criar uma regra que redireciona um caminho antigo:

1. **Descreva a regra e peça uma prévia**

   Informe ao agente o ID da aplicação, o objetivo e a instrução de ver a requisição antes. Por exemplo:

   ```text
   In application 1234567890, create a request rule that redirects every URI starting with /old-blog/ to https://www.example.com/blog/ with a 301. Preview it with dry_run before you create it.
   ```

2. **Revise a prévia**

   O agente chama `create_request_rule` com `dry_run` definido como `true`. A ferramenta retorna a requisição que enviaria para a [API da Azion](/pt-br/documentacao/devtools/api/), e não envia nada:

   ```json
   {
     "dryRun": true,
     "request": {
       "method": "POST",
       "url": "https://api.azion.com/v4/workspace/applications/1234567890/request_rules",
       "headers": {
         "Accept": "application/json",
         "Content-Type": "application/json",
         "X-Azion-Resource-Indicator": "urn:azion:mcp:unknown",
         "Authorization": "Token [TOKEN VALUE]"
       },
       "body": {
         "name": "Redirect old blog",
         "criteria": [
           [
             {
               "conditional": "if",
               "variable": "${uri}",
               "operator": "starts_with",
               "argument": "/old-blog/"
             }
           ]
         ],
         "behaviors": [
           {
             "type": "redirect_to_301",
             "attributes": {
               "value": "https://www.example.com/blog/"
             }
           }
         ],
         "active": true
       }
     }
   }
   ```

   Verifique a `url`, que indica a aplicação e a fase, e o `body`, que é a regra. A prévia mostra o header `Authorization` com o seu personal token completo, então nunca compartilhe uma prévia sem removê-lo.

3. **Peça ao agente que crie a regra**

   Quando a requisição for a que você quer, peça ao agente que repita a chamada sem `dry_run`. O servidor de build envia a requisição com o seu token, e a regra passa a existir na aplicação.

4. **Verifique a regra**

   Peça ao agente que liste as regras de requisição da aplicação. `list_request_rules` retorna cada regra com `id`, `name`, o estado `active` e `order`.

A nova regra aparece na aba **Rules Engine** da aplicação, na lista da fase dela. Para mudar a ordem em que as regras rodam, peça ao agente que chame `reorder_request_rules` ou `reorder_response_rules`.

---

## Leia os campos de uma regra

As entradas de `create_request_rule` seguem o formato de regra da API v4 da Azion:

- **`criteria`**: um array de um a cinco grupos, cada um com um a dez critérios. Um critério traz um `conditional` (`if`, `and` ou `or`), uma `variable` como `${uri}`, um `operator` como `starts_with` ou `matches`, e um `argument`. Para todos os operadores, consulte [Operadores](/pt-br/documentacao/plataforma/applications/rules-engine/#operadores). Para saber como os critérios se combinam, consulte [Condicionais](/pt-br/documentacao/plataforma/applications/rules-engine/#condicionais).
- **`behaviors`**: um array de um a dez comportamentos. O `type` de um comportamento fica em minúsculas, como `redirect_to_301` ou `set_cache_policy`, e um comportamento que recebe um argumento o traz em `attributes.value`.
- **`active`**: se a regra roda, `true` por padrão.
- **`description`**: texto opcional de até 1.000 caracteres.

`${request_uri}` exige o [Application Accelerator](/pt-br/documentacao/plataforma/applications/application-accelerator/configuracoes/) na aplicação. Sem ele, use `${uri}`, como explica [Variáveis](/pt-br/documentacao/plataforma/applications/rules-engine/#variaveis).

---

## Crie uma cache setting e a regra que a aplica

Um comportamento `set_cache_policy` aplica uma cache setting, que guarda o TTL, e o `attributes.value` dele é o ID dessa cache setting. Crie a cache setting primeiro. Por exemplo, para manter imagens em cache por um dia:

1. **Veja a prévia da cache setting**

   Peça ao agente que crie uma cache setting com TTL de cache de um dia e TTL de navegador de uma hora, e que mostre a prévia com `dry_run`. O agente chama `create_cache_setting`, e o `body` da prévia é a cache setting:

   ```json
   {
     "name": "images-1-day",
     "browser_cache": {
       "behavior": "override",
       "max_age": 3600
     },
     "modules": {
       "cache": {
         "behavior": "override",
         "max_age": 86400
       }
     }
   }
   ```

   Um `max_age` em `modules.cache` abaixo de `60` exige o Application Accelerator na aplicação.

2. **Crie a cache setting**

   Peça ao agente que repita a chamada sem `dry_run` e que informe o ID da nova cache setting.

3. **Crie a regra que a aplica**

   Peça ao agente uma regra de requisição cujo critério corresponda aos caminhos das imagens e cujo comportamento seja `set_cache_policy`, com o ID da cache setting em `attributes.value`. Revise a prévia `dry_run` e crie a regra.

Crie a regra como regra de requisição. *Set Cache Policy* roda apenas na Request Phase, como informa [Set Cache Policy](/pt-br/documentacao/plataforma/applications/rules-engine/#set-cache-policy). Quando um objetivo precisa de duas cache settings, como um TTL para assets estáticos e outro para `/api/`, crie uma regra por critério, cada uma com a sua cache setting. Uma única regra com os dois critérios unidos por `or` aplica os dois comportamentos aos dois tipos de requisição.

---

## Crie uma regra de firewall

Uma regra do [Rules Engine for Firewall](/pt-br/documentacao/plataforma/firewall/rules-engine/) pertence ao servidor de secure, `https://secure-mcp.azion.com/mcp`, não ao servidor de build. Conecte-o e peça a regra ao agente. O agente chama `create_firewall_rule`, que também recebe `dry_run`. Para mudar a ordem das regras de firewall, o agente chama `reorder_firewall_rules`.

Toda regra que o agente cria também pode ser criada sem ele: pelo Azion Console, como descreve [Crie uma regra de aplicação](/pt-br/documentacao/guias/desenvolvimento-de-aplicacoes/primeiros-passos/trabalhar-com-rules-engine/); pela API, como descreve a seção [API](/pt-br/documentacao/plataforma/applications/rules-engine/#api) do Rules Engine for Applications; ou a partir de um arquivo JSON, com [Azion CLI rules-engine](/pt-br/documentacao/devtools/cli/recursos/rules-engine/). Quando o agente não lista a ferramenta `create_request_rule`, o servidor de build não está conectado; [Solucionar problemas do MCP server](/pt-br/documentacao/devtools/mcp/solucao-de-problemas/) traz a correção.

---

## Próximos passos

- [Rules Engine for Applications](/pt-br/documentacao/plataforma/applications/rules-engine.md): Cada campo, variável, operador e comportamento de uma regra, com a fase que cada um aceita.
- [Crie uma regra de aplicação](/pt-br/documentacao/guias/desenvolvimento-de-aplicacoes/primeiros-passos/trabalhar-com-rules-engine.md): Crie uma regra no Azion Console, dos critérios aos comportamentos.
- [Crie uma cache setting](/pt-br/documentacao/guias/performance-e-confiabilidade/cache-e-purge/ajustar-cache-settings.md): Defina o TTL que um comportamento Set Cache Policy aplica às requisições.
- [Ferramentas e recursos](/pt-br/documentacao/devtools/mcp/ferramentas.md): As ferramentas de regra, cache e purge do servidor de build, e as entradas que todo servidor compartilha.
