Arcjet

Arcjet é a plataforma de segurança em tempo de execução que acompanha seu código de IA.

Documentação

Arcjet é a plataforma de segurança em tempo de execução para agentes de IA. Descubra os agentes em execução na sua organização, aplique políticas em cada ação, prompt e chamada de ferramenta, e mantenha as evidências para comprovar o que aconteceu. Detecte injeção de prompt, autorize chamadas de ferramenta de agentes, remova PII e bloqueie bots e abusos.

O servidor MCP da Arcjet é um dos dois transportes que conectam as habilidades da Arcjet à API da Arcjet. O outro é a CLI da Arcjet. Use o servidor MCP com ferramentas de codificação de IA que não têm acesso ao shell, como ChatGPT e Claude Desktop. Ele também funciona com editores que têm suporte MCP integrado, como VS Code Copilot, Windsurf e Cursor. Use a CLI quando estiver trabalhando em uma sessão de terminal.

Ambos os transportes expõem a mesma superfície de plano de gerenciamento – equipes, sites, chaves, solicitações, decisões, análise de tráfego, detecção de anomalias, investigação de IP, briefings de segurança e gerenciamento remoto de regras. Para a referência completa, consulte Ferramentas disponíveis.

O servidor MCP está disponível em:

https://api.arcjet.com/mcp

Ele implementa a revisão de 2025-06-18 das especificações Autorização MCP e HTTP Streamable, com autenticação baseada em OAuth.

Clientes suportados

Qualquer cliente que suporte a especificação MCP de 2025-06-18 com transporte HTTP Streamable e autorização OAuth é suportado. Isso inclui:

Configuração

ChatGPT

  1. No ChatGPT, vá para Configurações.
  2. Navegue até Conectores e selecione Adicionar conexão.
  3. Digite https://api.arcjet.com/mcp como URL do servidor.
  4. Selecione OAuth para autenticação.
  5. Clique em Criar.

O ChatGPT lida com o fluxo OAuth automaticamente.

Claude Code

claude mcp add arcjet --transport http https://api.arcjet.com/mcp

O Claude Code abre um navegador para autenticação OAuth na primeira conexão. Após a autenticação, você pode usar o comando /mcp para verificar a conexão.

Codex CLI

codex mcp add arcjet --url https://api.arcjet.com/mcp

O Codex solicita que você autentique com a Arcjet quando se conecta ao servidor pela primeira vez.

Claude Desktop

  1. Abra Configurações na barra lateral.
  2. Navegue até Conectores e selecione Adicionar conector personalizado.
  3. Configure o conector:
    • Nome: Arcjet
      • URL: https://api.arcjet.com/mcp

Cursor

Adicione ao .cursor/mcp.json no seu projeto:

{
  "mcpServers": {
    "arcjet": {
      "type": "streamable-http",
      "url": "https://api.arcjet.com/mcp"
    }
  }
}

Depois de adicionar o servidor, o Cursor mostra um prompt Needs login. Clique nele para autorizar o Cursor a acessar sua conta da Arcjet.

VS Code com Copilot

Adicione ao seu .vscode/mcp.json no seu projeto ou nas configurações do usuário:

{
  "servers": {
    "arcjet": {
      "type": "http",
      "url": "https://api.arcjet.com/mcp"
    }
  }
}

Ou adicione pela paleta de comandos:

  1. Abra a Paleta de Comandos (Ctrl + Shift + P no Windows/Linux ou Cmd + Shift + P no macOS).
  2. Execute MCP: Add Server.
  3. Selecione HTTP.
  4. Digite a URL: https://api.arcjet.com/mcp
  5. Digite o nome: Arcjet
  6. Selecione Workspace ou User de acordo com sua preferência.

O VS Code solicita autenticação OAuth no primeiro uso.

Windsurf

Adicione ao seu arquivo mcp_config.json:

{
  "mcpServers": {
    "arcjet": {
      "serverUrl": "https://api.arcjet.com/mcp"
    }
  }
}

Para mais detalhes, consulte a documentação MCP do Windsurf.

Ferramentas disponíveis

Uma vez conectado, as seguintes ferramentas estão disponíveis para seu assistente de IA:

  • list-teams – Lista as equipes às quais o usuário autenticado pertence.
  • list-sites – Lista os sites dentro de uma equipe especificada.
  • create-site – Cria um novo site dentro de uma equipe especificada.
  • get-site-key – Retorna a chave do SDK (ARCJET_KEY) para um site específico.
  • list-requests – Lista solicitações recentes de um site. Suporta filtragem por conclusão (ALLOW, DENY, ERROR) e paginação.
  • get-request-details – Retorna detalhes completos de uma solicitação específica, incluindo cabeçalhos, regras executadas e informações de decisão.
  • explain-decision – Explica por que a Arcjet permitiu ou negou uma solicitação específica. Retorna um resumo em linguagem natural, detalhamento por regra e próximos passos sugeridos.
  • get-site-quota – Retorna o uso e os limites de cota para um site na janela de cobrança atual.
  • analyze-traffic – Analisa o tráfego de solicitações em um período. Retorna total de solicitações, negações, taxa de negação, principais caminhos, principais IPs, principais motivos de negação e tendência em comparação com o período anterior.
  • get-anomalies – Detecta padrões de segurança incomuns comparando o tráfego atual com o período anterior. Identifica picos de tráfego, mudanças geográficas, novas atividades de ameaças, novas assinaturas de bots, escalada de risco e padrões suspeitos de IP.
  • investigate-ip – Investiga um endereço IP no contexto de um site. Retorna localização geográfica, inteligência de ameaças (tipo de rede, atividades de ameaças, classificação de entidade, nível de risco) e a atividade recente de solicitações do IP (detalhamento de conclusão, motivos de negação, caminhos direcionados, linha do tempo diária).
  • get-dry-run-impact – Analisa o que aconteceria se regras de simulação (dry-run) fossem promovidas para produção. Mostra quantas solicitações permitidas cada tipo de regra teria bloqueado, quais IPs seriam mais afetados e uma estimativa de falsos positivos.
  • get-security-briefing – Retorna um briefing de segurança abrangente: resumo de regras ativas, análise de tráfego, inteligência de ameaças, detecção de anomalias, prontidão para promoção de simulação, status de cota e recomendações acionáveis priorizadas. Projetado para consumo diário.
  • list-rules – Lista todas as regras remotas configuradas para um site com seu ID, tipo, modo e resumo de configuração.
  • create-rule – Cria uma nova regra remota para um site. Suporta tipos de regra de limite de taxa, bot, escudo e filtro.
  • update-rule – Substitui uma configuração de regra remota existente. Todos os campos devem ser fornecidos (substituição completa).
  • delete-rule – Exclui uma regra remota, interrompendo imediatamente sua avaliação.
  • promote-rule – Promove uma regra remota do modo DRY_RUN para LIVE após verificação.
  • list-guard-policies – Lista as políticas de proteção de agente do site com seus rótulos e contratos declarados.
  • get-guard-policy – Retorna uma política, incluindo cada entrada declarada com seu tipo e exposição.
  • validate-guard-policy – Compila uma política de rascunho e executa seus testes armazenados, relatando um resultado por teste.
  • evaluate-guard-policy – Executa uma entrada de amostra através do avaliador oficial do Open Policy Agent.
  • describe-guard-policy – Transforma uma descrição em inglês simples em uma política de rascunho.
  • suggest-guard-policies – Propõe políticas a partir das formas de entrada que o tráfego do próprio site carrega.
  • put-guard-policy – Cria ou substitui uma política.
  • delete-guard-policy – Exclui uma política, interrompendo imediatamente sua avaliação.
  • retry-guard-policy – Repete uma publicação com falha.

Políticas de proteção

As políticas de proteção de agente decidem se uma chamada de ferramenta ou outra ação é executada. Elas são selecionadas pelo label em uma chamada guard(), então alcançam trabalho que nunca chega via HTTP: um trabalho de fila, uma etapa de fluxo de trabalho, uma chamada de ferramenta.

As ferramentas dão suporte ao mesmo serviço que o Console da Arcjet usa, então um agente e o Console compilam e publicam através de uma única implementação. Um fluxo típico:

  1. Chame get-guard-policy para ler o contrato da política – seu rótulo e cada entrada com seu tipo e exposição. Escreva a chamada guard() a partir desse contrato, porque uma política não faz nada até que a aplicação envie valores exatamente sob os nomes que ela declara.
  2. Chame describe-guard-policy com um rótulo de proteção e uma descrição do que a ação deve recusar. O modelo emite uma especificação estruturada de construção, nunca o código-fonte da política, e cada candidato é compilado antes de retornar.
  3. Chame validate-guard-policy para compilar o rascunho e executar seus testes armazenados. Ele relata todas as falhas de uma vez.
  4. Chame put-guard-policy para publicar. Uma regra ativa não pode publicar sem pelo menos um teste armazenado.

Uma política que protege um agente de codificação declara sobre o que ela executa, chamada de ferramenta ou prompt, e o resumo relata isso como executeOn. Suas entradas são o contrato fixo do agente de codificação, então copie uma política inicial de Políticas para agentes de codificação em vez de declarar entradas manualmente. Publicá-la é o que a ativa.

Quando a criação é rejeitada, a ferramenta nomeia validate-guard-policy para o detalhe em vez de retransmitir a mensagem. Um diagnóstico do compilador cita o próprio código-fonte da política do autor, então ele viaja em um campo rotulado como não confiável.

Para o contrato da política, a linguagem e os portões de publicação, consulte Criar e publicar políticas.

Regras ou políticas

Os dois sistemas de configuração remota são separados por qual chamada do SDK os avalia. Uma regra remota é de todo o site e avaliada em cada chamada protect(). Uma política é selecionada por rótulo em uma chamada guard(). Ambas são configuradas remotamente e nenhuma precisa de implantação, mas uma regra remota só é executada onde a aplicação já chama protect().

Errar isso custa uma sessão inteira: um limite de taxa escrito como política precisa de uma chamada guard() que a aplicação não faz, e um limite de gastos escrito como regra de filtro não pode ver o valor.

Regras remotas

As regras remotas são gerenciadas através do servidor MCP ou do painel da Arcjet – sem mudanças de código ou reimplantação necessárias. Elas se aplicam globalmente a todas as solicitações de um site. Apenas os tipos de regra rate_limit, bot, shield e filter são suportados como regras remotas. Regras que precisam do conteúdo do corpo da solicitação analisado (email, sensitive_info, prompt_injection) exigem o SDK.

Consulte a documentação de regras remotas para a referência completa, incluindo como as regras remotas são avaliadas junto com as regras do SDK e quando usar cada uma.

O caso de uso mais comum para regras remotas é responder a um ataque ativo. Por exemplo, se você notar tráfego suspeito de um país, VPN ou endereço IP específico, você pode criar uma regra de filtro para bloqueá-lo imediatamente sem implantar novo código:

  1. Use list-requests para investigar o tráfego suspeito e identificar padrões (por exemplo, um país, faixa de IP ou uso de VPN específico).
  2. Use create-rule para adicionar uma regra de filtro no modo DRY_RUN para verificar se ela corresponde ao tráfego certo. Por exemplo, bloqueie um país específico: ip.src.country == "XX" (código de país ISO 3166-1 alfa-2, como US, CN ou RU), bloqueie tráfego de VPN: ip.src.vpn, ou bloqueie uma faixa de IP: ip.src in { 1.2.3.0/24 }.
  3. Use list-requests novamente para confirmar que a regra está correspondendo ao tráfego esperado sem bloquear usuários legítimos.
  4. Use promote-rule para alternar a regra de DRY_RUN para LIVE, bloqueando imediatamente o tráfego do ataque.
  5. Quando o ataque diminuir, use delete-rule para remover o bloqueio.

Monitoramento de segurança

Use as ferramentas de análise para manter a conscientização contínua de segurança:

  • Briefing diário: Chame get-security-briefing periodicamente para uma visão geral abrangente da postura de segurança do seu site em uma única chamada. Ele cobre tendências de tráfego, panorama de ameaças, anomalias, prontidão de simulação, status de cota e recomendações priorizadas.
  • Análise de tráfego: Use analyze-traffic para entender padrões de solicitações, taxas de negação, principais caminhos e principais IPs. Isso fornece os mesmos dados que as análises do painel da Arcjet.
  • Detecção de anomalias: Use get-anomalies para detectar padrões incomuns comparando o tráfego atual com o período anterior – picos de tráfego, mudanças geográficas, novas atividades de ameaças ou comportamento suspeito de IP.
  • Investigação de IP: Quando você identificar um IP suspeito (de analyze-traffic ou list-requests), use investigate-ip para obter contexto completo: localização geográfica, inteligência de ameaças e a atividade completa de solicitações do IP no seu site.
  • Validação de simulação: Antes de promover uma regra de DRY_RUN para LIVE, use get-dry-run-impact para ver quantas solicitações permitidas seriam bloqueadas, quais IPs são mais afetados e uma estimativa de risco de falsos positivos.

Exemplos de uso

Investigar e bloquear tráfego suspeito

"Estou vendo um pico de solicitações negadas no meu site. Você pode investigar o que está acontecendo e me ajudar a bloquear a origem?" O assistente chama analyze-traffic para identificar o pico e, em seguida, list-requests filtrado por DENY para destacar os principais IPs ofensores. Ele usa investigate-ip para obter inteligência de ameaças para cada IP e, então, sugere uma regra de filtro. Usando create-rule, ele cria a regra no modo DRY_RUN para que você possa verificar a correspondência antes de chamar promote-rule para ativá-la.

Obter um briefing diário de segurança

“Me dê um briefing de segurança para o meu site de produção.”

O assistente chama list-teams e list-sites para localizar seu site de produção e, em seguida, chama get-security-briefing. Ele retorna um resumo cobrindo regras ativas, tendências de tráfego comparadas ao período anterior, detecção de anomalias, destaques de inteligência de ameaças, prontidão para promoção em modo de teste, status de cota e recomendações priorizadas que você pode aplicar imediatamente.

Configurar proteção contra bots sem reimplantar

“Adicione proteção contra bots ao meu site de marketing – comece no modo de teste para que eu possa verificar se não está bloqueando usuários reais.”

O assistente chama list-teams e list-sites para encontrar o site e, em seguida, create-rule para adicionar uma regra bot com mode: DRY_RUN configurado para bloquear tráfego automatizado. Depois que o tráfego fluir, peça ao assistente para chamar get-dry-run-impact para ver quantas solicitações teriam sido bloqueadas e estimar o risco de falsos positivos. Quando estiver satisfeito, peça para chamar promote-rule para alternar a regra para LIVE.

Autenticação

O servidor MCP usa OAuth para autenticação. Quando você se conecta pela primeira vez a partir de qualquer cliente compatível, o Arcjet redireciona você para entrar com sua conta Arcjet. Uma vez autenticado, seu assistente de IA pode acessar com segurança os recursos da sua conta.

Segurança

  • Verifique o endpoint – sempre confirme que você está se conectando a https://api.arcjet.com/mcp.
  • Revise as chamadas de ferramentas – ative prompts de confirmação no seu cliente de IA para que você possa revisar as ações antes de executá-las.
  • Somente clientes confiáveis – conecte-se apenas a clientes de IA em que você confia. Conectar concede à ferramenta de IA o mesmo acesso que sua conta Arcjet.