Proxygen

O servidor MCP Proxygen permite que agentes inspecionem tráfego, modifiquem requisições, gerenciem reescritas e scripts, executem testes e configurem o proxy.

Documentação

Nesta página

Dê aos agentes de IA acesso ao Proxygen.

O servidor MCP do Proxygen expõe as ferramentas do Proxygen aos agentes de IA por meio do Model Context Protocol. Uma vez conectado, um agente como Claude Code, Gemini CLI ou Codex pode inspecionar tráfego, modificar requisições, gerenciar reescritas e scripts, executar testes e configurar o proxy — tudo isso no seu documento Proxygen ativo.

Visão geral

O servidor MCP do Proxygen roda em localhost e é acessado por meio de um pequeno binário de ponte incluído no aplicativo. Ele exige um token de autenticação por sessão, para que apenas agentes iniciados na sua máquina possam usá-lo.

O MCP foi projetado para preparar um workspace para você inspecionar e continuar a partir dele, não para substituir a interface. Quando um agente cria um editor, uma regra de reescrita, um teste ou uma receita de transformação, o resultado fica visível na ferramenta correspondente do Proxygen para que você possa revisar, ajustar e continuar trabalhando com ele.

Usos típicos:

  • Peça a um agente para explorar o tráfego, resumir uma API ou destacar requisições interessantes
  • Peça a um agente para rascunhar regras de reescrita ou scripts com base em uma descrição em linguagem natural
  • Gere configurações de teste e payloads a partir de requisições de exemplo no histórico
  • Extraia valores de respostas em várias mensagens
  • Reproduza ou modifique requisições em um editor
  • Configure interceptação TLS, filtros de histórico e configurações de gravação

Ative o servidor em Preferências → MCP ativando Ativar servidor MCP.

Segredos

Tudo o que uma ferramenta retorna vai para o contexto do agente e, geralmente, para qualquer registro de transcrição que esse agente mantenha. Por isso, o Proxygen substitui credenciais por uma impressão digital antes que elas saiam do aplicativo.

Um cabeçalho Authorization retorna como Bearer <redacted:sha256=ab12cd34>. A estrutura ao redor é preservada porque ela em si não é secreta: o esquema de autenticação permanece visível, os cabeçalhos Cookie mantêm seus nomes de cookie e o Set-Cookie mantém seus atributos Path, Domain e HttpOnly. Isso é aplicado a cabeçalhos de requisição e resposta, valores de cookie, valores de variáveis, credenciais de autenticação armazenadas e parâmetros de consulta de URL com aparência secreta, como ?api_key=.

A impressão digital é estável, então um agente ainda pode responder à pergunta que normalmente precisa responder: duas requisições mostrando a mesma impressão digital estão usando o mesmo token, e impressões digitais diferentes significam tokens diferentes. É um prefixo SHA-256 com salt e não pode ser convertido de volta ao valor original. O salt é gerado uma vez por instalação, então as impressões digitais são comparáveis dentro da sua máquina, mas não entre máquinas.

A busca e a filtragem também correspondem ao texto redigido. Isso importa mais do que parece à primeira vista: se uma regra fosse comparada ao valor real, um agente poderia usá-la como uma sonda de sim/não — uma regex em uma URL ou cabeçalho, repetida — e recuperar um segredo uma pergunta de cada vez, sem que o valor jamais fosse retornado. Corresponder ao que o chamador já pode ver elimina isso, e buscar por uma impressão digital se torna a maneira de encontrar todas as mensagens que usam uma credencial.

A redação é controlada por Redigir segredos de chamadas de ferramentas em Preferências → MCP, que está ativada por padrão. As ferramentas aceitam um parâmetro revealSecrets para retornar valores sem redação, e isso só funciona depois que você desativa essa preferência; enquanto ela estiver ativada, a ferramenta retorna um erro dizendo ao agente para pedir sua permissão primeiro. Isso é proposital — sem a preferência, um agente poderia simplesmente optar por sair da redação.

Os corpos das mensagens não são redigidos. Um token em um corpo de resposta JSON, como um access_token OAuth, ainda chega ao agente por completo. A redação cobre os lugares estruturados onde as credenciais vivem, não o conteúdo arbitrário do payload.

Corpos grandes

Os corpos geralmente são a maior parte do que um agente lê. As ferramentas que retornam um corpo aceitam bodyMaxSize para limitar o quanto é retornado, bodyOffset para escolher onde a janela começa e bodyJsonPath para projetar um único valor de um corpo JSON dentro do Proxygen, em vez de retornar o corpo inteiro.

bodyOffset torna possível ler o meio de um corpo grande sem primeiro puxar tudo o que vem antes. A resposta informa bodyOffset e bodyLength para o intervalo realmente retornado, além de bodyTotalSize para o corpo inteiro, para que o agente possa trabalhar em partes. Janelas que caem no meio de um caractere multibyte são ajustadas para o limite de caractere mais próximo, e o intervalo informado reflete isso. As ferramentas de sockets usam messageMaxSize, messageOffset e messageJsonPath para o mesmo fim.

Configurando agentes

Abra Preferências → MCP. O pop-up Configuração de agente e o botão settings.json geram a configuração necessária para registrar o Proxygen em agentes comuns.

Comando de registro

O pop-up oferece comandos de registro em uma linha para três agentes. Selecionar uma entrada copia o comando para a sua área de transferência; cole-o em um terminal para registrar o Proxygen nesse agente.

  • Claude Code
    claude mcp add proxygen --transport stdio -- <path-to-proxygen-mcp>
    
  • Gemini CLI
    gemini mcp add proxygen <path-to-proxygen-mcp>
    
  • Codex
    codex mcp add proxygen -- <path-to-proxygen-mcp>
    

O comando mostrado no Proxygen contém o caminho absoluto para o binário de ponte proxygen-mcp incluído.

Configuração JSON

Para agentes configurados por meio de um arquivo de configurações JSON em vez de um comando CLI, use o botão settings.json. Ele copia um trecho pronto para colar para a sua área de transferência:

{
  "mcpServers": {
    "proxygen": {
      "command": "/path/to/Proxygen.app/Contents/MacOS/proxygen-mcp"
    }
  }
}

Mescle isso no arquivo de configurações MCP do seu agente.

[!info] Informação informação

O Proxygen deve estar em execução e o servidor MCP deve estar ativado para que os agentes se conectem.

Exemplos

Depois que o Proxygen é registrado em um agente, você pode usá-lo com linguagem natural. Os exemplos abaixo mostram os tipos de solicitações que as ferramentas foram projetadas para lidar — o agente escolhe as ferramentas e os parâmetros certos e deixa os resultados visíveis no Proxygen para você continuar.

Explorando e resumindo tráfego

  • “Dê-me um resumo da última hora de histórico — quais hosts, códigos de status e tipos de conteúdo estão presentes.”
  • “Monte um sitemap de tudo sob api.example.com e destaque endpoints que aparecem apenas uma vez.”
  • “Examine as mensagens 400–650 e sinalize qualquer requisição que levou mais de 2 segundos, adicionando uma nota com o tempo decorrido.”
  • “Encontre toda resposta 5xx nas últimas 200 mensagens, agrupe-as por host e mostre-me o primeiro exemplo de cada.”

Buscando e extraindo valores

  • “Busque no histórico qualquer resposta cujo corpo JSON contenha $.user.email e liste os valores únicos.”
  • “Nas mensagens 1200–1500, extraia $.data[*].id de cada resposta JSON e dê-me a lista combinada com duplicatas removidas.”
  • “Encontre toda requisição com um cabeçalho Authorization: Bearer e capture o token usando uma regex — salve os resultados como uma tabela.”
  • “Extraia //book/title/text() de toda resposta XML em catalog.example.com usando XPath.”
  • “Veja o canal SSE para stream.example.com e extraia o campo event de cada mensagem.”

Modificando e reproduzindo requisições

  • “Pegue a mensagem 842, abra-a em um editor, altere o parâmetro de consulta user_id para 42 e envie-a.”
  • “Crie um editor para um POST para https://api.example.com/login com um corpo JSON contendo {{username}} e {{password}} do ambiente atual e envie-o.”
  • “Reproduza a mensagem 318 dez vezes em paralelo usando sendBatch e diga-me a distribuição de códigos de status.”
  • “Exporte a mensagem 512 como um comando curl para eu compartilhar.”

Reescritas, scripts e interceptação

  • “Crie uma regra de reescrita que adicione X-Debug: 1 a toda requisição para *.staging.example.com.”
  • “Simule GET https://api.example.com/feature-flags para retornar {"beta": true} com status 200.”
  • “Escreva um script que execute onResponse para api.example.com, registre qualquer resposta onde $.error esteja presente e defina um sinalizador na mensagem de histórico.”
  • “Ative a interceptação de requisições apenas para POST *.example.com/checkout e mostre-me o que está atualmente na fila.”
  • “Encaminhe a primeira interceptação pendente, mas substitua o corpo pelo conteúdo da mensagem 902.”

Testes e transformações

  • “Crie uma coleção de testes a partir da mensagem 611 que substitua §email§ pelos valores [email protected], [email protected] e uma string vazia e execute-a.”
  • “Monitore o teste em execução a cada poucos segundos até terminar e resuma as falhas.”
  • “Pegue o valor do cabeçalho Authorization da mensagem 750, decodifique em base64, divida por : e dê-me o nome de usuário.”
  • “Salve uma receita de transformação que descomprima a entrada com gzip e depois a formate como JSON, e chame-a de decode-gzip-json.”

Cookies, variáveis e configuração

  • “Liste cookies para example.com e exclua qualquer um cujo nome comece com _tmp.”
  • “Defina apiToken no ambiente atual para o campo access_token da resposta da mensagem 988.”
  • “Ative a interceptação TLS para *.example.com, mas exclua telemetry.example.com.”
  • “Adicione uma resolução de host que aponte api.example.com para 127.0.0.1 para que eu possa acessar um servidor local.”
  • “Verifique se a CA do Proxygen é confiável e instale-a se não for.”

Ferramentas

O servidor MCP expõe as seguintes ferramentas, agrupadas por área.

Autenticação

Nome da ferramentaDescrição
authenticationListLista regras de autenticação com suas condições de correspondência e tipo de credencial.
authenticationGetDetalhes completos de uma regra de autenticação, incluindo suas credenciais. As credenciais são impressas digitalmente, a menos que revealSecrets esteja definido.
authenticationCreateCria uma regra de autenticação que aplica credenciais Basic, API key, Bearer, JWT, Digest ou NTLM a requisições correspondentes.
authenticationUpdateModifica uma regra de autenticação existente.
authenticationDeleteExclui regras de autenticação por índice.

Certificado

Nome da ferramentaDescrição
certificateStatusVerifica se a CA do Proxygen está instalada e é confiável para interceptação TLS.
certificateInstallInstala a CA do Proxygen no chaveiro de login e define as configurações de confiança.

Canal

Nome da ferramentaDescrição
channelListLista conexões TCP ativas passando atualmente pelo proxy (mesmos dados do painel Monitor de Conexões). Instantâneo no momento da chamada.

Console

Nome da ferramentaDescrição
consoleReadLê itens de log da ferramenta Console: status do proxy, eventos de conexão, correspondências de interceptação/script, erros. Filtra por nível ou texto de busca.
consoleClearExclui todos os itens do log do Console.

Cookie

Nome da ferramentaDescrição
cookieListLista cookies do cookie jar do projeto com filtragem opcional por domínio/nome.
cookieGetObtém um único cookie do cookie jar do projeto por UUID.
cookieSetCria ou atualiza um cookie no cookie jar do projeto. Campos opcionais omitidos revertem para os padrões ao atualizar.
cookieDeleteExclui cookies específicos por seus UUIDs.
cookieClearExclui todos os cookies do cookie jar do projeto.

Diff

Nome da ferramentaDescrição
diffGetCalcula um diff de texto entre dois itens (mensagens de histórico ou mensagens de socket) e os prepara na ferramenta Diff do Proxygen.

Documento

Nome da ferramentaDescrição
documentListLista todos os projetos Proxygen abertos com seus IDs e nomes. Passe um ID retornado como documentId em outras ferramentas para direcionar esse projeto.

Editor

Nome da ferramentaDescrição
editorCreateCria um novo editor com uma requisição HTTP preparada. Prefira isso em vez de send quando a requisição deve permanecer visível na interface.
editorCreateFromHistoryCria um editor a partir de uma mensagem de histórico.
editorGetDetalhes completos de um editor, incluindo requisição e última resposta.
editorUpdateModifica a requisição de um editor existente.
editorSendEnvia a requisição em um editor e retorna a resposta. A resposta também fica visível no painel de resposta do Editor.
editorListLista todos os editores abertos no projeto.
editorDeleteExclui um ou mais editores.

Histórico

Nome da ferramentaDescrição
historySummaryVisão geral rápida do histórico HTTP capturado do projeto: contagens, hosts, códigos de status, tipos de conteúdo, intervalo de tempo.
historyListLista mensagens do histórico com filtragem, ordenação e paginação.
historyGetDetalhes completos de uma única mensagem do histórico, incluindo cabeçalhos e corpos de requisição e resposta.
historySearchBusca avançada baseada em regras nas mensagens do histórico. Suporta posições JSONPath e XPath além das correspondências usuais por string, regex e curinga.
historyExtractExtrai valores de mensagens correspondentes usando grupos de captura JSONPath, XPath ou regex.
historyUpdateDefine sinalizador e/ou anotações em mensagens do histórico, por UUIDs, números ou filtro.
historyFilterSetConfigura o filtro de visualização do histórico para que os achados apareçam na interface. Passe reset: true para limpar o filtro.
historyDeleteExclui mensagens específicas do histórico por UUID ou número.
historyClearLimpa todas as mensagens do histórico do projeto.
historySitemapÁrvore de URL hierárquica agrupada por host e caminho, útil para descobrir endpoints.
historyExportCurlExporta uma mensagem do histórico como um comando curl.

Resolução de host

Nome da ferramentaDescrição
hostResolutionListLista substituições personalizadas de host para IP. Padrões de host suportam * e ?; a primeira correspondência vence.
hostResolutionSetCria ou atualiza uma resolução de hostname. Correspondida por host, então uma entrada existente com o mesmo host é substituída.
hostResolutionDeleteExclui resoluções de hostname pelos seus valores de host.

Interceptação

Nome da ferramentaDescrição
interceptListLista requisições e respostas pausadas na fila de Interceptação aguardando encaminhamento ou descarte.
interceptGetObtém detalhes completos de uma mensagem interceptada pendente, com cabeçalhos e corpo de requisição ou resposta analisados.
interceptForwardEncaminha uma ou mais interceptações pendentes ao seu destino, opcionalmente substituindo a mensagem bruta para uma única interceptação.
interceptDropDescarta interceptações pendentes para que nunca cheguem ao seu destino.
interceptEnableSetHabilita ou desabilita a interceptação de requisições e respostas.
interceptFilterSetConfigura o filtro de Interceptação (regras e hosts) para que apenas mensagens correspondentes pausem na fila.

Proxy

Nome da ferramentaDescrição
proxyStatusEstado atual do proxy, listeners configurados e contagem de conexões ativas.
proxyStartInicia os listeners do proxy.
proxyStopPara todos os listeners do proxy.
proxyConfigureTlsConfigura quais hosts têm TLS interceptado (MitM). Suporta curingas.
proxyConfigureWriteConfigura qual tráfego é gravado no histórico, incluindo filtragem por tipo de conteúdo.

Reescrita

Nome da ferramentaDescrição
rewriteCreateCria uma regra de reescrita que modifica requisições, modifica respostas, simula ou descarta tráfego.
rewriteListLista todas as regras de reescrita no projeto.
rewriteGetDetalhes completos de uma regra de reescrita, incluindo condições de correspondência e ações.
rewriteUpdateModifica uma regra de reescrita existente.
rewriteDeleteExclui regras de reescrita por índice.

Script

Nome da ferramentaDescrição
scriptCreateCria um script JavaScript que executa em tráfego de proxy correspondente (onRequest, onResponse).
scriptListLista todos os scripts com condições de correspondência e estado de habilitação.
scriptGetDetalhes completos de um script, incluindo código-fonte.
scriptUpdateModifica um script existente.
scriptDeleteExclui scripts por índice.

Enviar

Nome da ferramentaDescrição
sendEnvia uma requisição HTTP diretamente, ignorando o proxy e sem deixar artefato no projeto. Use editorCreate + editorSend quando quiser que a requisição seja visível na interface.
sendBatchEnvia múltiplas requisições HTTP simultaneamente com paralelismo configurável.

Mostrar

Nome da ferramentaDescrição
showTraz uma superfície da interface do Proxygen para frente e opcionalmente seleciona um item específico dentro dela.

Sockets

Nome da ferramentaDescrição
socketsSummaryVisão geral dos canais e mensagens WebSocket e SSE no projeto.
socketsListLista mensagens de socket com filtragem e ordenação.
socketsGetDetalhes completos de uma única mensagem de socket.
socketsSearchBusca avançada baseada em regras nas mensagens de socket.
socketsExtractExtrai valores de mensagens de socket correspondentes usando JSONPath, XPath ou regex. Suporta combinação ou coleta de resultados.
socketsUpdateDefine sinalizador e/ou anotações em mensagens de socket.
socketsFilterSetConfigura o filtro de visualização de Sockets para que os achados apareçam na interface.
socketsDeleteExclui mensagens específicas de socket por UUID.
socketsClearLimpa todos os canais e mensagens de socket do projeto.

Teste

Nome da ferramentaDescrição
testListLista todas as coleções de teste, testes e requisições no projeto.
testCreateCria uma configuração de teste (não executa). Usa marcadores §placeholder§ na requisição bruta para substituição de payload (distinto das variáveis de ambiente {{variable}}).
testGetDetalhes de uma coleção de teste, seus testes, requisições e configuração.
testRunExecuta um teste pelo ID da coleção.
testStatusConsulta o status da execução de teste atual: progresso, contagens de aprovação/reprovação, tempo decorrido.
testResultsResultados detalhados paginados da execução de teste atual ou última.
testStopInterrompe o teste atualmente em execução.
testDeleteExclui coleções de teste por UUID.

Transformação

Nome da ferramentaDescrição
transformApplyAplica transformações de dados encadeadas: codificação, hash, compressão, operações de texto, manipulação de strings.
transformListOperationsLista todas as operações de transformação disponíveis com descrições e parâmetros.
transformListRecipesLista todas as receitas de transformação salvas.
transformCreateRecipeCria uma receita de Transformação persistente.
transformDeleteRecipeExclui receitas de transformação por UUID.

Variável

Nome da ferramentaDescrição
variableEnvironmentSetDefine o ambiente de variáveis ativo.
variableListLista todas as variáveis no ambiente atual e no padrão.
variableGetObtém o valor resolvido de uma variável pelo nome.
variableSetDefine um valor de variável no ambiente atual ou em um específico.
variableDeleteExclui uma ou mais variáveis pelo nome.