# Exemplos MCP

import Code from '~/components/Code/Code.astro'

Aprenda como aproveitar assistentes de código habilitados com MCP para tarefas comuns da Plataforma Azion.

---

## Deploy de site estático

Use linguagem natural para obter orientação passo a passo de deploy.

### Exemplo de conversa

#### Solicitação

<Code lang="plaintext" code={`Você: "Tenho um site estático com arquivos HTML, CSS e JavaScript. 
Me ajude a fazer o deploy na Azion."`} />

#### Resposta

O assistente irá:
1. Usar a ferramenta `deploy_azion_static_site` para recuperar o guia de deploy
2. Fornecer instruções passo a passo
3. Guiá-lo através de:
   - Inicialização do projeto com `azion init`
   - Configuração do setup
   - Processo de build com `azion build`
   - Deploy com `azion deploy`
4. Compartilhar a URL de produção após o deploy

### O que acontece nos bastidores

1. Servidor MCP busca documentação de deploy
2. Retorna orientação contextual baseada no tipo do seu projeto
3. Fornece comandos específicos para deploy de site estático

---

## Criar queries de analytics

Gere queries GraphQL para Real-Time Metrics sem memorizar o schema.

### Exemplo: Análise de tráfego

#### Solicitação

<Code lang="plaintext" code={`Você: "Crie uma query GraphQL para mostrar o tráfego da minha aplicação 
dos últimos 7 dias, agrupado por edge location."`} />

#### Resposta

<Code lang="graphql" code={`query TrafegoPorLocalizacao {
  httpMetrics(
    filter: {
      tsRange: {begin: "2025-01-02T00:00:00", end: "2025-01-09T00:00:00"}
    }
    groupBy: [edgeLocation]
    orderBy: [requestsCount_DESC]
  ) {
    edgeLocation
    requestsCount
    dataTransferredIn
    dataTransferredOut
    bandwidthMbps
  }
}`} />

### Exemplo: Performance de cache

#### Solicitação

<Code lang="plaintext" code={`Você: "Gere uma query para analisar taxas de cache hit para minhas imagens."`} />

#### Resposta

<Code lang="graphql" code={`query PerformanceCache {
  httpMetrics(
    filter: {
      tsRange: {begin: "2025-01-08T00:00:00", end: "2025-01-09T00:00:00"}
      requestUri: {like: "%.jpg%|%.png%|%.webp%"}
    }
    groupBy: [cacheStatus]
  ) {
    cacheStatus
    requestsCount
    dataTransferredOut
    averageRequestTime
  }
}`} />

:::note
O assistente ajusta automaticamente intervalos de datas e filtros baseado em seus requisitos.
:::

---

## Configurar Rules Engine

Crie configurações complexas do Rules Engine usando descrições em linguagem natural.

### Exemplo: Headers de segurança

#### Solicitação

<Code lang="plaintext" code={`Você: "Crie regras do Rules Engine para adicionar headers de segurança incluindo 
HSTS, X-Frame-Options e CSP para minha aplicação."`} />

#### Resposta

<Code lang="json" code={`{
  "rules": [
    {
      "name": "Headers de Segurança",
      "criteria": [
        {
          "conditional": "if",
          "variable": "\${uri}",
          "operator": "starts_with",
          "value": "/"
        }
      ],
      "behaviors": [
        {
          "name": "add_response_header",
          "target": "Strict-Transport-Security",
          "value": "max-age=31536000; includeSubDomains"
        },
        {
          "name": "add_response_header",
          "target": "X-Frame-Options",
          "value": "DENY"
        },
        {
          "name": "add_response_header",
          "target": "Content-Security-Policy",
          "value": "default-src 'self'"
        }
      ]
    }
  ]
}`} />

### Exemplo: Otimização de cache

#### Solicitação

<Code lang="plaintext" code={`Você: "Configure o Rules Engine para cachear assets estáticos por 1 ano 
e respostas da API por 5 minutos."`} />

#### Resposta

<Code lang="json" code={`{
  "rules": [
    {
      "name": "Cache de Assets Estáticos",
      "criteria": [
        {
          "conditional": "if",
          "variable": "\${uri}",
          "operator": "matches",
          "value": "\\.(jpg|jpeg|png|gif|css|js|woff2?)$"
        }
      ],
      "behaviors": [
        {
          "name": "set_cache_policy",
          "target": "31536000",
          "browser_cache": true,
          "cdn_cache": true
        }
      ]
    },
    {
      "name": "Cache de API",
      "criteria": [
        {
          "conditional": "if",
          "variable": "\${uri}",
          "operator": "starts_with",
          "value": "/api/"
        }
      ],
      "behaviors": [
        {
          "name": "set_cache_policy",
          "target": "300",
          "browser_cache": false,
          "cdn_cache": true
        }
      ]
    }
  ]
}`} />

---

## Buscar documentação

Obtenha respostas instantâneas sobre recursos e capacidades da Plataforma Azion.

### Queries comuns

| Query | Ferramenta Usada | Resultado |
|-------|------------------|-----------|
| "Como configuro proteção DDoS?" | `search_azion_docs_and_site` | Guia de configuração de DDoS Protection |
| "Me mostre exemplos de deploy Next.js" | `search_azion_code_samples` | Templates e exemplos Next.js |
| "Quais comandos CLI gerenciam functions?" | `search_azion_cli_commands` | Comandos CLI relacionados a Functions |
| "Como criar recursos Terraform?" | `search_azion_terraform` | Exemplos do provider Terraform |

---

## Solução de problemas em deploys

Obtenha ajuda para diagnosticar e corrigir problemas de deploy.

### Fluxo de exemplo

#### Solicitação

<Code lang="plaintext" code={`Você: "Meu deploy está falhando com erro 503. Como posso debugar?"`} />

#### Resposta

1. **Verificar logs de deploy**:
   <Code lang="bash" code={`azion logs --type edge --tail`} />

2. **Verificar configuração da origem**:
   - O assistente busca docs de troubleshooting de origem
   - Fornece checklist de problemas comuns de origem

3. **Testar conectividade da origem**:
   <Code lang="bash" code={`curl -I https://sua-origem.com`} />

4. **Revisar Rules Engine**:
   - Verifica loops de redirect
   - Valida configurações de cache

5. **Monitorar Real-Time Metrics**:
   - Gera query GraphQL para análise de erros

---

## Deploys específicos por framework

Obtenha orientação personalizada para seu framework específico.

### Frameworks suportados

O servidor MCP fornece orientação especializada para:

- **Next.js**: Configuração SSR/SSG, rotas de API, middleware
- **React**: Deploy de SPA, configuração de roteamento
- **Vue.js**: Otimização de build, configuração de history mode
- **Angular**: Builds de produção, service workers
- **Astro**: Modos estático e SSR, integrações
- **Remix**: Deploy, carregamento de dados
- **SvelteKit**: Configuração de adapter, endpoints

### Exemplo: Next.js com ISR

<Code lang="plaintext" code={`Você: "Faça deploy da minha app Next.js com Incremental Static Regeneration"`} />

O assistente irá:
1. Verificar se há Next.js no seu projeto
2. Configurar `azion.config.js` para suportar ISR
3. Definir políticas de cache adequadas
4. Fazer o deploy com configurações otimizadas
5. Fornecer queries de monitoramento para performance do ISR

---

## Fluxos de trabalho avançados

### Deploy multiambiente

<Code lang="plaintext" code={`Você: "Configure ambientes de staging e produção para minha aplicação"`} />

O assistente ajuda a:
- Criar applications separadas
- Configurar variáveis de ambiente
- Configurar pipelines de deploy
- Implementar roteamento adequado de domínios

### Otimização de performance

<Code lang="plaintext" code={`Você: "Otimize as pontuações de Core Web Vitals do meu site"`} />

O assistente fornece:
- Estratégias de otimização de imagens
- Recomendações de configuração de cache
- Rules Engine para resource hints
- Queries GraphQL para monitorar melhorias

---

## Dicas para uso eficaz

1. **Seja específico**: forneça contexto sobre o tipo de projeto e requisitos
2. **Refinamento iterativo**: comece simples e adicione complexidade gradualmente
3. **Combine ferramentas**: use múltiplas ferramentas MCP juntas para soluções abrangentes
4. **Aprenda padrões**: salve configurações bem-sucedidas para reutilização

---

## Próximos passos

- [Configurar MCP](/pt-br/documentacao/devtools/mcp/configuracao/)
- [Guia de solução de problemas](/pt-br/documentacao/devtools/mcp/solucao-de-problemas/)
- [Desenvolvimento Local](/pt-br/documentacao/devtools/mcp/desenvolvimento-local/)
- [Guia de Teste de Cache](/pt-br/documentacao/devtools/mcp/teste-cache/)