Proxygen

El servidor MCP de Proxygen permite a los agentes inspeccionar tráfico, modificar solicitudes, gestionar reescrituras y scripts, ejecutar pruebas y configurar el proxy.

Documentación

On this page

Dale acceso a los agentes de IA a Proxygen.

El servidor MCP de Proxygen expone las herramientas de Proxygen a los agentes de IA a través del Model Context Protocol. Una vez conectado, un agente como Claude Code, Gemini CLI o Codex puede inspeccionar tráfico, modificar solicitudes, gestionar reescrituras y scripts, ejecutar pruebas y configurar el proxy, todo contra tu documento de Proxygen en vivo.

Descripción general

El servidor MCP de Proxygen se ejecuta en localhost y se accede a través de un pequeño binario puente incluido con la aplicación. Requiere un token de autenticación por sesión para que solo los agentes lanzados desde tu máquina puedan usarlo.

El MCP está diseñado para preparar un espacio de trabajo para que lo inspecciones y continúes desde allí, no para reemplazar la interfaz de usuario. Cuando un agente crea un editor, una regla de reescritura, una prueba o una receta de transformación, el resultado es visible en la herramienta correspondiente de Proxygen para que puedas revisarlo, ajustarlo y seguir trabajando con él.

Usos típicos:

  • Pide a un agente que explore el tráfico, resuma una API o seleccione solicitudes interesantes
  • Haz que un agente redacte reglas de reescritura o scripts basados en una descripción en lenguaje natural
  • Genera configuraciones de prueba y cargas útiles a partir de solicitudes de ejemplo en el historial
  • Extrae valores de respuestas en muchos mensajes
  • Reproduce o modifica solicitudes en un editor
  • Configura la interceptación TLS, los filtros de historial y la configuración de grabación

Habilita el servidor desde Preferencias → MCP activando Habilitar servidor MCP.

Secretos

Todo lo que devuelve una herramienta termina en el contexto del agente y, generalmente, en el registro de transcripción que ese agente mantiene. Por lo tanto, Proxygen reemplaza las credenciales con una huella digital antes de que salgan de la aplicación.

Un encabezado Authorization vuelve como Bearer <redacted:sha256=ab12cd34>. La estructura circundante se conserva porque no es secreta en sí misma: el esquema de autenticación permanece visible, los encabezados Cookie mantienen sus nombres de cookie y Set-Cookie conserva sus atributos Path, Domain y HttpOnly. Esto se aplica a encabezados de solicitud y respuesta, valores de cookies, valores de variables, credenciales de autenticación almacenadas y parámetros de consulta de URL de aspecto secreto como ?api_key=.

La huella digital es estable, por lo que un agente aún puede responder la pregunta que normalmente necesita responder: dos solicitudes que muestran la misma huella digital están usando el mismo token, y huellas digitales diferentes significan tokens diferentes. Es un prefijo SHA-256 con sal y no se puede convertir de nuevo al valor original. La sal se genera una vez por instalación, por lo que las huellas digitales son comparables dentro de tu máquina pero no entre máquinas.

La búsqueda y el filtrado también coinciden con el texto redactado. Esto importa más de lo que parece a primera vista: si una regla coincidiera con el valor real, un agente podría usarla como una sonda de sí/no (una expresión regular en una URL o encabezado, repetida) y recuperar un secreto una pregunta a la vez sin que el valor se devuelva nunca. Hacer coincidir lo que el llamador ya puede ver cierra esa vía, y buscar una huella digital se convierte en la forma de encontrar cada mensaje que usa una credencial.

La redacción se controla con Redactar secretos de las llamadas a herramientas en Preferencias → MCP, que está activada por defecto. Las herramientas aceptan un parámetro revealSecrets para devolver valores en claro, y solo funciona una vez que desactivas esa preferencia; mientras está activada, la herramienta devuelve un error indicando al agente que te pregunte primero. Esto es deliberado: sin la preferencia, un agente podría simplemente optar por no redactar.

Los cuerpos de los mensajes no se redactan. Un token en un cuerpo de respuesta JSON, como un access_token de OAuth, aún llega al agente completo. La redacción cubre los lugares estructurados donde viven las credenciales, no el contenido arbitrario de la carga útil.

Cuerpos grandes

Los cuerpos suelen ser la mayor parte de lo que lee un agente. Las herramientas que devuelven uno aceptan bodyMaxSize para limitar cuánto vuelve, bodyOffset para elegir dónde comienza la ventana y bodyJsonPath para proyectar un solo valor de un cuerpo JSON dentro de Proxygen en lugar de devolver el cuerpo por completo.

bodyOffset hace posible leer el medio de un cuerpo grande sin tener que traer primero todo lo anterior. La respuesta informa bodyOffset y bodyLength para el rango realmente devuelto, más bodyTotalSize para todo el cuerpo, para que el agente pueda trabajar en partes. Las ventanas que caen en medio de un carácter multibyte se ajustan al límite de carácter más cercano, y el rango informado refleja eso. Las herramientas de sockets usan messageMaxSize, messageOffset y messageJsonPath para lo mismo.

Configuración de agentes

Abre Preferencias → MCP. La ventana emergente Configuración de agente y el botón settings.json generan la configuración necesaria para registrar Proxygen con agentes comunes.

Comando de registro

La ventana emergente ofrece comandos de registro de una línea para tres agentes. Seleccionar una entrada copia el comando a tu portapapeles; pégalo en una terminal para registrar Proxygen con ese 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>
    

El comando que se muestra en Proxygen contiene la ruta absoluta al binario puente proxygen-mcp incluido.

Configuración JSON

Para agentes que se configuran a través de un archivo de configuración JSON en lugar de un comando CLI, usa el botón settings.json. Copia un fragmento listo para pegar a tu portapapeles:

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

Fusiona esto en el archivo de configuración MCP de tu agente.

[!info] Información información

Proxygen debe estar ejecutándose y el servidor MCP debe estar habilitado para que los agentes se conecten.

Ejemplos

Una vez que Proxygen está registrado con un agente, puedes manejarlo con lenguaje natural. Los ejemplos a continuación muestran los tipos de solicitudes para las que están diseñadas las herramientas: el agente elige las herramientas y parámetros correctos y deja los resultados visibles en Proxygen para que continúes desde allí.

Explorar y resumir tráfico

  • "Dame un resumen de la última hora de historial: qué hosts, códigos de estado y tipos de contenido están presentes."
  • "Construye un mapa del sitio de todo bajo api.example.com y resalta los endpoints que solo aparecen una vez."
  • "Revisa los mensajes 400–650 y marca cualquier solicitud que haya tardado más de 2 segundos, añadiendo una nota con el tiempo transcurrido."
  • "Encuentra cada respuesta 5xx en los últimos 200 mensajes, agrúpalas por host y muéstrame el primer ejemplo de cada uno."

Buscar y extraer valores

  • "Busca en el historial cualquier respuesta cuyo cuerpo JSON contenga $.user.email y lista los valores únicos."
  • "En los mensajes 1200–1500, extrae $.data[*].id de cada respuesta JSON y dame la lista combinada con duplicados eliminados."
  • "Encuentra cada solicitud con un encabezado Authorization: Bearer y captura el token usando una expresión regular: guarda los resultados como una tabla."
  • "Extrae //book/title/text() de cada respuesta XML en catalog.example.com usando XPath."
  • "Mira el canal SSE para stream.example.com y extrae el campo event de cada mensaje."

Modificar y reproducir solicitudes

  • "Toma el mensaje 842, ábrelo en un editor, cambia el parámetro de consulta user_id a 42 y envíalo."
  • "Crea un editor para un POST a https://api.example.com/login con un cuerpo JSON que contenga {{username}} y {{password}} del entorno actual, luego envíalo."
  • "Reproduce el mensaje 318 diez veces en paralelo usando sendBatch y dime la distribución de códigos de estado."
  • "Exporta el mensaje 512 como un comando curl para poder compartirlo."

Reescrituras, scripting e interceptación

  • "Crea una regla de reescritura que añada X-Debug: 1 a cada solicitud a *.staging.example.com."
  • "Simula GET https://api.example.com/feature-flags para que devuelva {"beta": true} con estado 200."
  • "Escribe un script que ejecute onResponse para api.example.com, registre cualquier respuesta donde $.error esté presente y establezca una bandera en el mensaje de historial."
  • "Activa la interceptación de solicitudes solo para POST *.example.com/checkout y muéstrame lo que hay actualmente en la cola."
  • "Reenvía la primera interceptación pendiente pero reemplaza el cuerpo con el contenido del mensaje 902."

Pruebas y transformaciones

  • "Crea una colección de pruebas a partir del mensaje 611 que sustituya §email§ con los valores [email protected], [email protected] y una cadena vacía, luego ejecútala."
  • "Consulta la prueba en ejecución cada pocos segundos hasta que termine y resume los fallos."
  • "Toma el valor del encabezado Authorization del mensaje 750, decodifícalo en base64, divídelo por : y dame el nombre de usuario."
  • "Guarda una receta de transformación que descomprima la entrada con gzip y luego la formatee como JSON, y llámala decode-gzip-json."

Cookies, variables y configuración

  • "Lista las cookies para example.com y elimina cualquier cuyo nombre comience con _tmp."
  • "Establece apiToken en el entorno actual al campo access_token de la respuesta del mensaje 988."
  • "Habilita la interceptación TLS para *.example.com pero excluye telemetry.example.com."
  • "Añade una resolución de host que apunte api.example.com a 127.0.0.1 para poder acceder a un servidor local."
  • "Verifica si la CA de Proxygen es de confianza e instálala si no lo es."

Herramientas

El servidor MCP expone las siguientes herramientas, agrupadas por área.

Autenticación

Nombre de la herramientaDescripción
authenticationListLista las reglas de autenticación con sus condiciones de coincidencia y tipo de credencial.
authenticationGetDetalles completos de una regla de autenticación, incluidas sus credenciales. Las credenciales se marcan con huella digital a menos que revealSecrets esté configurado.
authenticationCreateCrea una regla de autenticación que aplique credenciales Basic, API key, Bearer, JWT, Digest o NTLM a solicitudes coincidentes.
authenticationUpdateModifica una regla de autenticación existente.
authenticationDeleteElimina reglas de autenticación por índice.

Certificado

Nombre de la herramientaDescripción
certificateStatusVerifica si la CA de Proxygen está instalada y es de confianza para la interceptación TLS.
certificateInstallInstala la CA de Proxygen en el llavero de inicio de sesión y establece la configuración de confianza.

Canal

Nombre de la herramientaDescripción
channelListLista las conexiones TCP activas que pasan actualmente por el proxy (mismos datos que el panel Connection Monitor). Instantánea en el momento de la llamada.

Consola

Nombre de la herramientaDescripción
consoleReadLee elementos de registro de la herramienta Consola: estado del proxy, eventos de conexión, coincidencias de interceptación/script, errores. Filtra por nivel o texto de búsqueda.
consoleClearElimina todos los elementos del registro de la Consola.

Cookie

Nombre de la herramientaDescripción
cookieListLista cookies del tarro de cookies del proyecto con filtrado opcional por dominio/nombre.
cookieGetObtiene una sola cookie del tarro de cookies del proyecto por UUID.
cookieSetCrea o actualiza una cookie en el tarro de cookies del proyecto. Los campos opcionales omitidos vuelven a los valores predeterminados al actualizar.
cookieDeleteElimina cookies específicas por sus UUID.
cookieClearElimina todas las cookies del tarro de cookies del proyecto.

Diff

Nombre de la herramientaDescripción
diffGetCalcula un diff de texto entre dos elementos (mensajes de historial o mensajes de socket) y los prepara en la herramienta Diff de Proxygen.

Documento

Nombre de la herramientaDescripción
documentListLista todos los proyectos de Proxygen abiertos con sus IDs y nombres. Pasa un id devuelto como documentId en otras herramientas para apuntar a ese proyecto.

Editor

Nombre de la herramientaDescripción
editorCreateCrea un nuevo editor con una solicitud HTTP preparada. Prefiere esto sobre send cuando la solicitud debe permanecer visible en la interfaz.
editorCreateFromHistoryCrea un editor a partir de un mensaje de historial.
editorGetDetalles completos de un editor, incluida la solicitud y la última respuesta.
editorUpdateModifica la solicitud de un editor existente.
editorSendEnvía la solicitud en un editor y devuelve la respuesta. La respuesta también es visible en el panel de respuesta del Editor.
editorListLista todos los editores abiertos en el proyecto.
editorDeleteElimina uno o más editores.

Historial

Nombre de la herramientaDescripción
historySummaryResumen rápido del historial HTTP capturado del proyecto: conteos, hosts, códigos de estado, tipos de contenido, rango de tiempo.
historyListLista los mensajes del historial con filtrado, ordenamiento y paginación.
historyGetDetalles completos de un único mensaje del historial, incluyendo encabezados y cuerpos de solicitud y respuesta.
historySearchBúsqueda avanzada basada en reglas en los mensajes del historial. Admite posiciones JSONPath y XPath además de las coincidencias habituales de cadena, expresión regular y comodín.
historyExtractExtrae valores de mensajes coincidentes usando JSONPath, XPath o grupos de captura de expresiones regulares.
historyUpdateEstablece marcadores y/o notas en mensajes del historial, ya sea por UUID, números o filtro.
historyFilterSetConfigura el filtro de vista del historial para que los hallazgos se muestren en la interfaz. Pasa reset: true para limpiar el filtro.
historyDeleteElimina mensajes específicos del historial por UUID o número.
historyClearBorra todos los mensajes del historial del proyecto.
historySitemapÁrbol de URL jerárquico agrupado por host y ruta, útil para descubrir endpoints.
historyExportCurlExporta un mensaje del historial como un comando curl.

Resolución de hosts

Nombre de la herramientaDescripción
hostResolutionListLista las anulaciones personalizadas de host a IP. Los patrones de host admiten * y ?; la primera coincidencia gana.
hostResolutionSetCrea o actualiza una resolución de nombre de host. Se compara por host, por lo que una entrada existente con el mismo host se reemplaza.
hostResolutionDeleteElimina resoluciones de nombre de host por sus valores de host.

Interceptación

Nombre de la herramientaDescripción
interceptListLista las solicitudes y respuestas pausadas en la cola de Interceptación esperando ser reenviadas o descartadas.
interceptGetObtiene los detalles completos de un mensaje interceptado pendiente, con encabezados y cuerpo de solicitud o respuesta analizados.
interceptForwardReenvía una o más interceptaciones pendientes a su destino, opcionalmente reemplazando el mensaje sin procesar para una única interceptación.
interceptDropDescarta interceptaciones pendientes para que nunca lleguen a su destino.
interceptEnableSetHabilita o deshabilita la interceptación de solicitudes y respuestas.
interceptFilterSetConfigura el filtro de Interceptación (reglas y hosts) para que solo los mensajes coincidentes se pausen en la cola.

Proxy

Nombre de la herramientaDescripción
proxyStatusEstado actual del proxy, listeners configurados y conteo de conexiones activas.
proxyStartInicia los listeners del proxy.
proxyStopDetiene todos los listeners del proxy.
proxyConfigureTlsConfigura qué hosts tienen interceptación TLS (MitM). Admite comodines.
proxyConfigureWriteConfigura qué tráfico se escribe en el historial, incluyendo el filtrado por tipo de contenido.

Reescritura

Nombre de la herramientaDescripción
rewriteCreateCrea una regla de reescritura que modifica solicitudes, modifica respuestas, simula o descarta tráfico.
rewriteListLista todas las reglas de reescritura en el proyecto.
rewriteGetDetalles completos de una regla de reescritura, incluyendo condiciones de coincidencia y acciones.
rewriteUpdateModifica una regla de reescritura existente.
rewriteDeleteElimina reglas de reescritura por índice.

Script

Nombre de la herramientaDescripción
scriptCreateCrea un script de JavaScript que se ejecuta en tráfico proxy coincidente (onRequest, onResponse).
scriptListLista todos los scripts con condiciones de coincidencia y estado habilitado.
scriptGetDetalles completos de un script, incluyendo el código fuente.
scriptUpdateModifica un script existente.
scriptDeleteElimina scripts por índice.

Enviar

Nombre de la herramientaDescripción
sendEnvía una solicitud HTTP directamente, omitiendo el proxy y sin dejar artefactos en el proyecto. Usa editorCreate + editorSend en su lugar cuando quieras que la solicitud sea visible en la interfaz.
sendBatchEnvía múltiples solicitudes HTTP concurrentemente con paralelismo configurable.

Mostrar

Nombre de la herramientaDescripción
showTrae una superficie de la interfaz de Proxygen al frente y opcionalmente selecciona un elemento específico dentro de ella.

Sockets

Nombre de la herramientaDescripción
socketsSummaryResumen de los canales y mensajes WebSocket y SSE en el proyecto.
socketsListLista los mensajes de socket con filtrado y ordenamiento.
socketsGetDetalles completos de un único mensaje de socket.
socketsSearchBúsqueda avanzada basada en reglas en los mensajes de socket.
socketsExtractExtrae valores de mensajes de socket coincidentes usando JSONPath, XPath o expresiones regulares. Admite combinar o recopilar resultados.
socketsUpdateEstablece marcadores y/o notas en mensajes de socket.
socketsFilterSetConfigura el filtro de vista de Sockets para que los hallazgos se muestren en la interfaz.
socketsDeleteElimina mensajes de socket específicos por UUID.
socketsClearBorra todos los canales y mensajes de socket del proyecto.

Pruebas

Nombre de la herramientaDescripción
testListLista todas las colecciones de pruebas, pruebas y solicitudes en el proyecto.
testCreateCrea una configuración de prueba (no se ejecuta). Usa marcadores §placeholder§ en la solicitud sin procesar para la sustitución de cargas útiles (distinto de las variables de entorno {{variable}}).
testGetDetalles de una colección de pruebas, sus pruebas, solicitudes y configuración.
testRunEjecuta una prueba por ID de colección.
testStatusConsulta el estado de la ejecución de prueba actual: progreso, conteos de aprobados/fallidos, tiempo transcurrido.
testResultsResultados detallados paginados de la ejecución de prueba actual o la última.
testStopDetiene la prueba que se está ejecutando actualmente.
testDeleteElimina colecciones de pruebas por UUID.

Transformación

Nombre de la herramientaDescripción
transformApplyAplica transformaciones de datos encadenadas: codificación, hash, compresión, operaciones de texto, manipulación de cadenas.
transformListOperationsLista todas las operaciones de transformación disponibles con descripciones y parámetros.
transformListRecipesLista todas las recetas de transformación guardadas.
transformCreateRecipeCrea una receta de Transformación persistente.
transformDeleteRecipeElimina recetas de transformación por UUID.

Variable

Nombre de la herramientaDescripción
variableEnvironmentSetEstablece el entorno de variables activo.
variableListLista todas las variables en el entorno actual y el predeterminado.
variableGetObtiene el valor resuelto de una variable por nombre.
variableSetEstablece un valor de variable en el entorno actual o en uno específico.
variableDeleteElimina una o más variables por nombre.