Format Conversion
Encode a complete Web Push send: RFC 8291 aes128gcm payload encryption, RFC 8292 VAPID ES256 JWT, RFC 8030 headers, APNs/FCM cross-walk and decrypt round-trip verification.
Call this tool from your code in three languages.
curl -X POST 'http://127.0.0.1:3003/en/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"}'Send a POST request with your inputs as JSON. File parameters require a separate upload first.
POST http://127.0.0.1:3003/en/api/tools/web-push-rfc8030-vapid-rfc8291-payload-encrypted-content-encoder| Name | Type | Required | Description |
|---|---|---|---|
| payload | textarea | Yes | — |
| encoding | select | No | — |
| uaPublicKey | text | Yes | — |
| authSecret | text | Yes | — |
| uaPrivateKey | text | No | — |
| asPrivateKey | text | Yes | — |
| saltB64 | text | Yes | — |
| 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 | Yes | — |
HTML result
{
"result": "<div>Processed HTML content</div>",
"error": "Error message (optional)",
"message": "Notification message (optional)",
"metadata": {
"key": "value"
}
}Add this tool to your Model Context Protocol server so AI agents can list and call it.
Add this block to your MCP client configuration:
{
"mcpServers": {
"elysiatools-web-push-rfc8030-vapid-rfc8291-payload-encrypted-content-encoder": {
"name": "web-push-rfc8030-vapid-rfc8291-payload-encrypted-content-encoder",
"description": "Encode a complete Web Push send: RFC 8291 aes128gcm payload encryption, RFC 8292 VAPID ES256 JWT, RFC 8030 headers, APNs/FCM cross-walk and decrypt round-trip verification.",
"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"
}
}
}After connecting to the SSE endpoint, list the exposed tools:
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/list"
}Invoke the tool by its id, passing arguments built from its parameters:
{
"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"
}
}
}Questions or issues? Contact [email protected]