Format Conversion
Codifica un envío completo de Web Push: cifrado aes128gcm del RFC 8291, JWT ES256 VAPID del RFC 8292, cabeceras RFC 8030, correspondencia con APNs/FCM y verificación por descifrado de ida y vuelta.
Llama a esta herramienta desde tu código en tres lenguajes.
curl -X POST 'http://127.0.0.1:3003/es/api/tools/web-push-rfc8030-vapid-rfc8291-payload-encrypted-content-encoder' \
-H 'Content-Type: application/json' \
-d '{"payload":"When I grow up, I want to be a watermelon","encoding":"aes128gcm","uaPublicKey":"BCVxsr7N_eNgVRqvHtD0zTZsEc6-VV-JvLexhqUzORcxaOzi6-AYWXvTBHm4bjyPjs7Vd8pZGH6SRpkNtoIAiw4","authSecret":"BTBZMqHH6r4Tts7J_aSIgg","uaPrivateKey":"q1dXpw3UpT5VOmu_cf_v6ih07Aems3njxI-JWgLcM94","asPrivateKey":"yfWPiYE-n46HLnH0KqZOF1fJJU3MYrct3AELtAQ-oRw","saltB64":"DGv6ra1nlYgDCS1FRnbzlw","paddingBytes":0,"ttl":10,"urgency":"normal","topic":"","endpointHost":"push.example.net","endpointPath":"/push/JzLQ3raZJfFBR0aqvOMsLrt54w4rJUsV","vapidEnabled":true,"vapidSub":"mailto:[email protected]","vapidAud":"push.example.net","vapidExp":1453523768,"vapidPrivateKey":"nCScek-QpEjmOOlT-rQ38nZzvdPlqa00Zy0i6m2OJvY"}'Envía una petición POST con tus entradas en JSON. Los parámetros de tipo archivo requieren una subida previa.
POST http://127.0.0.1:3003/es/api/tools/web-push-rfc8030-vapid-rfc8291-payload-encrypted-content-encoder| Nombre | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| payload | textarea | Sí | — |
| encoding | select | No | — |
| uaPublicKey | text | Sí | — |
| authSecret | text | Sí | — |
| uaPrivateKey | text | No | — |
| asPrivateKey | text | Sí | — |
| saltB64 | text | Sí | — |
| paddingBytes | number | No | — |
| ttl | number | No | — |
| urgency | select | No | — |
| topic | text | No | — |
| endpointHost | text | No | — |
| endpointPath | text | No | — |
| vapidEnabled | checkbox | No | — |
| vapidSub | text | No | — |
| vapidAud | text | No | — |
| vapidExp | number | No | — |
| vapidPrivateKey | text | Sí | — |
Resultado HTML
{
"result": "<div>Processed HTML content</div>",
"error": "Error message (optional)",
"message": "Notification message (optional)",
"metadata": {
"key": "value"
}
}Añade esta herramienta a tu servidor Model Context Protocol para que los agentes de IA puedan listarla y llamarla.
Añade este bloque a la configuración de tu cliente MCP:
{
"mcpServers": {
"elysiatools-web-push-rfc8030-vapid-rfc8291-payload-encrypted-content-encoder": {
"name": "web-push-rfc8030-vapid-rfc8291-payload-encrypted-content-encoder",
"description": "Codifica un envío completo de Web Push: cifrado aes128gcm del RFC 8291, JWT ES256 VAPID del RFC 8292, cabeceras RFC 8030, correspondencia con APNs/FCM y verificación por descifrado de ida y vuelta.",
"baseUrl": "http://127.0.0.1:3003/mcp/sse?toolId=web-push-rfc8030-vapid-rfc8291-payload-encrypted-content-encoder",
"command": "",
"args": [],
"env": {},
"isActive": true,
"type": "sse"
}
}
}Tras conectar al endpoint SSE, lista las herramientas expuestas:
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/list"
}Invoca la herramienta por su id; los argumentos se construyen a partir de sus parámetros:
{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/call",
"params": {
"name": "web-push-rfc8030-vapid-rfc8291-payload-encrypted-content-encoder",
"arguments": {
"payload": "When I grow up, I want to be a watermelon",
"encoding": "aes128gcm",
"uaPublicKey": "BCVxsr7N_eNgVRqvHtD0zTZsEc6-VV-JvLexhqUzORcxaOzi6-AYWXvTBHm4bjyPjs7Vd8pZGH6SRpkNtoIAiw4",
"authSecret": "BTBZMqHH6r4Tts7J_aSIgg",
"uaPrivateKey": "q1dXpw3UpT5VOmu_cf_v6ih07Aems3njxI-JWgLcM94",
"asPrivateKey": "yfWPiYE-n46HLnH0KqZOF1fJJU3MYrct3AELtAQ-oRw",
"saltB64": "DGv6ra1nlYgDCS1FRnbzlw",
"paddingBytes": 0,
"ttl": 10,
"urgency": "normal",
"topic": "",
"endpointHost": "push.example.net",
"endpointPath": "/push/JzLQ3raZJfFBR0aqvOMsLrt54w4rJUsV",
"vapidEnabled": true,
"vapidSub": "mailto:[email protected]",
"vapidAud": "push.example.net",
"vapidExp": 1453523768,
"vapidPrivateKey": "nCScek-QpEjmOOlT-rQ38nZzvdPlqa00Zy0i6m2OJvY"
}
}
}¿Dudas o problemas? Contacta con [email protected]