Format Conversion
Кодирует полную отправку Web Push: шифрование aes128gcm по RFC 8291, VAPID ES256 JWT по RFC 8292, заголовки RFC 8030, соответствие APNs/FCM и проверку расшифровкой в оба направления.
Вызовите этот инструмент из своего кода на трёх языках.
curl -X POST 'http://127.0.0.1:3003/ru/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"}'Отправьте POST-запрос с входными данными в JSON. Параметры типа «файл» требуют предварительной загрузки.
POST http://127.0.0.1:3003/ru/api/tools/web-push-rfc8030-vapid-rfc8291-payload-encrypted-content-encoder| Имя | Тип | Обязательный | Описание |
|---|---|---|---|
| payload | textarea | Да | — |
| encoding | select | Нет | — |
| uaPublicKey | text | Да | — |
| authSecret | text | Да | — |
| uaPrivateKey | text | Нет | — |
| asPrivateKey | text | Да | — |
| saltB64 | text | Да | — |
| paddingBytes | number | Нет | — |
| ttl | number | Нет | — |
| urgency | select | Нет | — |
| topic | text | Нет | — |
| endpointHost | text | Нет | — |
| endpointPath | text | Нет | — |
| vapidEnabled | checkbox | Нет | — |
| vapidSub | text | Нет | — |
| vapidAud | text | Нет | — |
| vapidExp | number | Нет | — |
| vapidPrivateKey | text | Да | — |
HTML-результат
{
"result": "<div>Processed HTML content</div>",
"error": "Error message (optional)",
"message": "Notification message (optional)",
"metadata": {
"key": "value"
}
}Добавьте этот инструмент на свой сервер Model Context Protocol, чтобы ИИ-агенты могли перечислять и вызывать его.
Добавьте этот блок в конфигурацию вашего MCP-клиента:
{
"mcpServers": {
"elysiatools-web-push-rfc8030-vapid-rfc8291-payload-encrypted-content-encoder": {
"name": "web-push-rfc8030-vapid-rfc8291-payload-encrypted-content-encoder",
"description": "Кодирует полную отправку Web Push: шифрование aes128gcm по RFC 8291, VAPID ES256 JWT по RFC 8292, заголовки RFC 8030, соответствие APNs/FCM и проверку расшифровкой в оба направления.",
"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"
}
}
}После подключения к SSE-endpoint выведите список доступных инструментов:
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/list"
}Вызовите инструмент по его id; аргументы формируются из его параметров:
{
"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"
}
}
}Вопросы или проблемы? Свяжитесь с [email protected]