# Ferramentas e recursos

Os [MCP servers da Azion](/pt-br/documentacao/devtools/mcp/) expõem ferramentas, e o servidor de docs também expõe recursos, a um agente de código que se conecta com um [personal token](/pt-br/documentacao/fundamentos/personal-tokens/) da Azion. Cada servidor cobre uma área da plataforma. O servidor de docs apenas lê. Os servidores de build, secure, observe e storage também criam, alteram e excluem recursos na sua conta.

| Servidor | URL                                 | O que cobre                                                                                                                                         |
| -------- | ----------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| docs     | `https://docs-mcp.azion.com/mcp`    | Busca na documentação, nos exemplos de código e nas referências da CLI, da API e do Terraform; guias de deploy de site estático e de teste de cache |
| build    | `https://build-mcp.azion.com/mcp`   | Aplicações, cache settings, connectors, functions, regras, workloads, deployments e purge de cache                                                  |
| secure   | `https://secure-mcp.azion.com/mcp`  | Firewalls, WAF, DNS, certificados, network lists, custom pages, políticas da conta e autenticação                                                   |
| observe  | `https://observe-mcp.azion.com/mcp` | Data streams, dashboards, relatórios, fontes de dados, queries GraphQL e faturas                                                                    |
| storage  | `https://storage-mcp.azion.com/mcp` | Buckets, objetos e credenciais do Object Storage; bancos e queries do SQL Database                                                                  |

---

## Entradas que os servidores compartilham

A maioria das ferramentas dos servidores de build, secure, observe e storage segue os mesmos padrões para ler e escrever:

- **`fields`**: a maioria das ferramentas de listagem, e as ferramentas de consulta dos servidores de build e secure, retornam apenas os campos, separados por vírgula, que você indica. A notação de ponto alcança campos aninhados.
- **`cursor` e `page_size`**: a maioria das ferramentas de listagem retorna uma página e um `next_cursor`. Passe o `next_cursor` como `cursor` para ler a próxima página. O `page_size` tem padrão `50` e máximo `100`. Duas ferramentas de storage paginam de outra forma: `list_storage_credentials` recebe `page` e `page_size`, e `list_storage_objects` recebe `continuation_token`, `max_object_count` (até `1000`) e `prefix`.
- **`dry_run`**: uma ferramenta que cria, altera ou exclui retorna uma prévia da requisição que enviaria, sem enviá-la.
- **`idempotency_key`**: uma ferramenta que cria, altera ou exclui aceita uma chave que você fornece. O servidor nunca gera uma.

Defina `dry_run` antes de toda escrita que você ainda não revisou. O personal token decide o que uma ferramenta de escrita pode alterar, então limite o escopo do token aos recursos de que o agente precisa.

---

## Ferramentas do servidor de docs

O servidor de docs expõe sete ferramentas. Cada ferramenta de busca retorna um item `text` cujo valor é um objeto JSON com um array `results` de documentos, e todo documento traz `title`, `content`, `source`, `similarity`, `search_type` e `relevance_score`.

| Ferramenta                     | Retorna                                                                                                                                                                                                         | Entradas                                                                   |
| ------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------- |
| `search_azion_docs_and_site`   | Documentos da documentação e do site da Azion, para uma pergunta como configurar a proteção contra DDoS                                                                                                         | `query` (string, obrigatória); `docsAmount` (number, opcional, padrão `5`) |
| `search_azion_code_samples`    | Bibliotecas e exemplos de código, para um pedido como exemplos de deploy de Next.js                                                                                                                             | `query` (string, obrigatória); `docsAmount` (number, opcional, padrão `5`) |
| `search_azion_cli_commands`    | Documentos sobre os comandos da [Azion CLI](/pt-br/documentacao/devtools/cli/) e o uso deles, para uma pergunta como quais comandos gerenciam functions                                                         | `query` (string, obrigatória); `docsAmount` (number, opcional, padrão `5`) |
| `search_azion_api_v4_commands` | Documentos da referência v4 da [API da Azion](/pt-br/documentacao/devtools/api/), como o fragmento OpenAPI de uma operação                                                                                      | `query` (string, obrigatória); `docsAmount` (number, opcional, padrão `5`) |
| `search_azion_api_v3_commands` | Documentos da referência v3 da API da Azion, a versão anterior da API, que será descontinuada                                                                                                                   | `query` (string, obrigatória); `docsAmount` (number, opcional, padrão `5`) |
| `search_azion_terraform`       | Documentos da documentação do [Azion Terraform Provider](/pt-br/documentacao/devtools/terraform/), para uma pergunta como criar um recurso do Terraform                                                         | `query` (string, obrigatória); `docsAmount` (number, opcional, padrão `5`) |
| `deploy_azion_static_site`     | Texto de guia para fazer o deploy de um site estático e testar o cache dele; `help` lista os sete recursos, `deploy` retorna as quatro etapas de deploy e `test-cache` retorna as três etapas de teste de cache | `action` (string, opcional): `deploy`, `test-cache` ou `help`              |

`docsAmount` define quantos documentos uma ferramenta de busca retorna. Envie-o apenas quando quiser um número diferente de cinco.

---

## Recursos de site estático

Um cliente que suporta recursos MCP lista sete guias do servidor de docs, em `azion://guides/deploy/` e `azion://guides/test-cache/`, e lê cada um com `resources/read`. Todo recurso é `text/markdown`, e o nome dele é o caminho da URI unido por hífens, como em `guides-deploy-step-0-preparation`. Os outros quatro servidores não listam recursos.

| URI                                            | Conteúdo                                                                                                                          |
| ---------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- |
| `azion://guides/deploy/step-0-preparation`     | Instruções para analisar a estrutura do projeto, detectar o framework e o gerenciador de pacotes e reunir os requisitos do deploy |
| `azion://guides/deploy/step-1-configuration`   | Instruções para instalar a Azion CLI, autenticar, vincular o projeto e testar a configuração de build                             |
| `azion://guides/deploy/step-2-execute`         | Instruções para fazer o deploy do projeto e verificar o status do deployment                                                      |
| `azion://guides/deploy/step-3-basic-test`      | Instruções para executar testes básicos do deployment e do comportamento de cache dele                                            |
| `azion://guides/test-cache/step-0-preparation` | Instruções para analisar a configuração de cache do site após o deploy e preparar cenários de teste                               |
| `azion://guides/test-cache/step-1-execution`   | Instruções para executar testes de cache para cada tipo de asset estático e verificar a proporção entre hits e misses             |
| `azion://guides/test-cache/step-2-validation`  | Instruções para validar os resultados dos testes, calcular a taxa de cache hits e escrever um relatório de teste                  |

Um cliente sem suporte a recursos alcança os mesmos guias pela ferramenta `deploy_azion_static_site`, com `action` definido como `deploy` ou `test-cache`.

---

## Ferramentas do servidor de build

O servidor de build gerencia os recursos que atendem uma requisição. A maioria dos recursos tem seis ferramentas, para listar, ler, criar, substituir, alterar e excluir. Uma ferramenta de update, como `update_application`, substitui o recurso. Uma ferramenta de patch, como `patch_application`, altera apenas os campos que você envia.

| Recurso                                                    | Ferramentas                                                                                                                                                                    |
| ---------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| [Aplicações](/pt-br/documentacao/plataforma/applications/) | `list_applications`, `get_application`, `create_application`, `update_application`, `patch_application`, `delete_application` e `clone_application`                            |
| Cache settings                                             | `list_cache_settings`, `get_cache_setting`, `create_cache_setting`, `update_cache_setting`, `patch_cache_setting` e `delete_cache_setting`                                     |
| [Connectors](/pt-br/documentacao/plataforma/connectors/)   | `list_connectors`, `get_connector`, `create_connector`, `update_connector`, `patch_connector` e `delete_connector`                                                             |
| [Functions](/pt-br/documentacao/plataforma/functions/)     | `list_functions`, `get_function`, `create_function`, `update_function`, `patch_function` e `delete_function`                                                                   |
| Instâncias de function                                     | `list_function_instances`, `get_function_instance`, `create_function_instance`, `update_function_instance`, `patch_function_instance` e `delete_function_instance`             |
| Regras de requisição                                       | `list_request_rules`, `get_request_rule`, `create_request_rule`, `update_request_rule`, `patch_request_rule`, `delete_request_rule` e `reorder_request_rules`                  |
| Regras de resposta                                         | `list_response_rules`, `get_response_rule`, `create_response_rule`, `update_response_rule`, `patch_response_rule`, `delete_response_rule` e `reorder_response_rules`           |
| Workloads                                                  | `list_workloads`, `get_workload`, `create_workload`, `update_workload`, `patch_workload` e `delete_workload`                                                                   |
| Deployments de workload                                    | `list_workload_deployments`, `get_workload_deployment`, `create_workload_deployment`, `update_workload_deployment`, `patch_workload_deployment` e `delete_workload_deployment` |
| Purge de cache                                             | `purge_url`, `purge_cachekey` e `purge_wildcard`                                                                                                                               |

Uma ferramenta de purge recebe `items`, as URLs, cache keys ou wildcards a remover, e `layer`: `cache`, o padrão, ou `tiered_cache`. Para criar uma regra com `create_request_rule`, consulte [Crie regras do Rules Engine com o MCP server](/pt-br/documentacao/guias/desenvolvimento-de-aplicacoes/primeiros-passos/gerar-regras-do-rules-engine-com-mcp/).

---

## Ferramentas do servidor de secure

O servidor de secure gerencia os recursos que protegem uma requisição e uma conta. Como no servidor de build, uma ferramenta de update substitui o recurso, e uma ferramenta de patch altera apenas os campos que você envia.

| Recurso                             | Ferramentas                                                                                                                                                                                                                    |
| ----------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Firewalls                           | `list_firewalls`, `get_firewall`, `create_firewall`, `update_firewall`, `patch_firewall`, `delete_firewall` e `clone_firewall`                                                                                                 |
| Regras de firewall                  | `list_firewall_rules`, `get_firewall_rule`, `create_firewall_rule`, `update_firewall_rule`, `patch_firewall_rule`, `delete_firewall_rule` e `reorder_firewall_rules`                                                           |
| Instâncias de function do firewall  | `list_firewall_function_instances`, `get_firewall_function_instance`, `create_firewall_function_instance`, `update_firewall_function_instance`, `patch_firewall_function_instance` e `delete_firewall_function_instance`       |
| WAF                                 | `list_wafs`, `get_waf`, `create_waf`, `update_waf`, `patch_waf`, `delete_waf` e `clone_waf`                                                                                                                                    |
| Exceções do WAF                     | `list_waf_exceptions`, `get_waf_exception`, `create_waf_exception`, `update_waf_exception`, `patch_waf_exception` e `delete_waf_exception`                                                                                     |
| Zonas DNS                           | `list_dns_zones`, `get_dns_zone`, `create_dns_zone`, `update_dns_zone`, `patch_dns_zone` e `delete_dns_zone`                                                                                                                   |
| Registros DNS                       | `list_dns_records`, `get_dns_record`, `create_dns_record`, `update_dns_record`, `patch_dns_record` e `delete_dns_record`                                                                                                       |
| DNSSEC                              | `get_dnssec`, `update_dnssec` e `patch_dnssec`                                                                                                                                                                                 |
| Certificados                        | `list_certificates`, `get_certificate`, `create_certificate`, `update_certificate`, `patch_certificate`, `delete_certificate`, `request_certificate` e `create_certificate_signing_request`                                    |
| Listas de revogação de certificados | `list_certificate_revocation_lists`, `get_certificate_revocation_list`, `create_certificate_revocation_list`, `update_certificate_revocation_list`, `patch_certificate_revocation_list` e `delete_certificate_revocation_list` |
| Network lists                       | `list_network_lists`, `get_network_list`, `create_network_list`, `update_network_list`, `patch_network_list` e `delete_network_list`                                                                                           |
| Custom pages                        | `list_custom_pages`, `get_custom_page`, `create_custom_page`, `update_custom_page`, `patch_custom_page` e `delete_custom_page`                                                                                                 |
| Políticas                           | `list_policies`, `get_policy`, `create_policy`, `update_policy`, `patch_policy` e `delete_policy`                                                                                                                              |
| Política de bloqueio                | `get_lockout_policy` e `update_lockout_policy`                                                                                                                                                                                 |
| Política de tempo de sessão         | `get_session_timeout_policy` e `update_session_timeout_policy`                                                                                                                                                                 |
| Dispositivos TOTP                   | `list_totp_devices`, `create_totp_device`, `delete_totp_device` e `verify_totp`                                                                                                                                                |
| Autenticação                        | `auth_login`, `check_login_method`, `refresh_access_token` e `revoke_refresh_token`                                                                                                                                            |

`auth_login` recebe um endereço de e-mail e uma senha e emite tokens JWT. As outras ferramentas autenticam com o personal token no header `Authorization`, então um agente nunca precisa da sua senha para gerenciar a conta.

---

## Ferramentas do servidor de observe

O servidor de observe gerencia os recursos que coletam e relatam dados sobre a sua conta, e escreve queries GraphQL.

| Recurso                  | Ferramentas                                                                                                                                                                          |
| ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Data streams             | `list_data_streams`, `get_data_stream`, `create_data_stream`, `update_data_stream`, `patch_data_stream` e `delete_data_stream`                                                       |
| Templates de data stream | `list_data_stream_templates`, `get_data_stream_template`, `create_data_stream_template`, `update_data_stream_template`, `patch_data_stream_template` e `delete_data_stream_template` |
| Fontes de dados          | `list_data_sources`                                                                                                                                                                  |
| Dashboards               | `list_dashboards` e `create_dashboard`                                                                                                                                               |
| Pastas                   | `list_folders` e `create_folder`                                                                                                                                                     |
| Linhas                   | `list_rows`, `get_row`, `create_row`, `update_row` e `delete_row`                                                                                                                    |
| Relatórios               | `list_reports`, `get_report`, `create_report`, `update_report`, `delete_report` e `update_report_order`                                                                              |
| Relatórios da biblioteca | `list_library_reports`, `create_library_report` e `delete_library_report`                                                                                                            |
| Recomendações            | `list_recommendations`, `create_recommendation` e `delete_recommendation`                                                                                                            |
| Faturas                  | `retrieve_invoice`                                                                                                                                                                   |
| Queries GraphQL          | `create_graphql_query`                                                                                                                                                               |

`create_graphql_query` recebe duas entradas: `query` (string, obrigatória), o objetivo em palavras simples, e `dataSource` (string, obrigatória): `real-time-metrics`, `real-time-events`, `accounting` ou `consumption`. Um modelo de linguagem escreve uma query para a [GraphQL API](/pt-br/documentacao/devtools/graphql/), e a ferramenta a executa no endpoint selecionado com o seu token, corrigindo-a por introspecção GraphQL em até seis tentativas. Quando nenhuma tentativa retorna uma query válida, o texto informa isso e aponta para a documentação da GraphQL API.

---

## Ferramentas do servidor de storage

O servidor de storage gerencia o [Object Storage](/pt-br/documentacao/plataforma/object-storage/) e o [SQL Database](/pt-br/documentacao/plataforma/sql-database/).

| Recurso     | Ferramentas                                                                                                                   |
| ----------- | ----------------------------------------------------------------------------------------------------------------------------- |
| Buckets     | `list_storage_buckets`, `get_storage_bucket`, `create_storage_bucket`, `update_storage_bucket` e `delete_storage_bucket`      |
| Objetos     | `list_storage_objects`, `create_storage_object`, `update_storage_object`, `delete_storage_object` e `download_storage_object` |
| Credenciais | `list_storage_credentials`, `get_storage_credential`, `create_storage_credential` e `delete_storage_credential`               |
| Bancos SQL  | `list_sql_databases`, `get_sql_database`, `create_sql_database` e `delete_sql_database`                                       |
| Queries SQL | `execute_sql_query`                                                                                                           |

`execute_sql_query` recebe o `id` do banco e `statements`, um array de até 1.000 instruções SQL, e retorna as `columns` e as `rows` do resultado. `delete_storage_object` exclui o objeto permanentemente depois de um período de carência de 24 horas.

---

## Chamada de uma ferramenta de busca

A requisição abaixo chama `search_azion_docs_and_site` com uma query e dois documentos. É um `POST` para `https://docs-mcp.azion.com/mcp` com os headers `Authorization: Token [TOKEN VALUE]`, `Content-Type: application/json` e `Accept: application/json, text/event-stream`, e este corpo:

```json
{
  "jsonrpc": "2.0",
  "method": "tools/call",
  "id": 1,
  "params": {
    "name": "search_azion_docs_and_site",
    "arguments": {
      "query": "how to configure cache",
      "docsAmount": 2
    }
  }
}
```

O resultado traz um item `text`. O valor dele é um objeto JSON cujo array `results` contém os dois documentos que `docsAmount` pede. Abaixo, o segundo documento foi omitido, e o `content` e o `source` do primeiro foram cortados em `…`:

```json
{
  "results": [
    {
      "title": "application-acceleration",
      "content": "Title: application-acceleration\nDescription: Application Accelerator speeds up web applications and APIs through protocol optimizations and manages dynamic content requirements.…",
      "source": "https://www.azion.com/en/documentation/…",
      "similarity": 1,
      "search_type": "fts",
      "relevance_score": 0.72607421875
    }
  ]
}
```

---

## Recursos relacionados

- [Como o MCP server funciona](/pt-br/documentacao/devtools/mcp/como-funciona.md): Como os servidores autenticam uma chamada, qual transporte usam e o que uma ferramenta faz com a requisição.
- [Primeiros passos com o MCP server](/pt-br/documentacao/devtools/mcp/primeiros-passos.md): Como conectar um agente de código a um servidor com um personal token.
- [Teste o comportamento do cache com o MCP server](/pt-br/documentacao/guias/performance-e-confiabilidade/cache-e-purge/testar-cache-com-mcp.md): Como verificar o cache de um site após o deploy com os headers de debug que a Azion retorna.
- [Solucionar problemas do MCP server](/pt-br/documentacao/devtools/mcp/solucao-de-problemas.md): O que fazer quando uma ferramenta está ausente ou uma chamada é recusada.
