Audio steganography & watermarking. Encode/decode hidden messages that survive YouTube re-encoding.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Decode every Delta Signal layer from a WAV or MP3 file at an https URL: heartbeat cipher, spectral glyph, prime count, watermark (needs the seed used to render), ggwave, modem text and SSTV pictures (returned as PNG).
https URL of a WAV or MP3 file (convert other formats first)
Decode every Delta Signal layer from a WAV or MP3 file at an https URL: heartbeat cipher, spectral glyph, prime count, watermark (needs the seed used to render), ggwave, modem text and SSTV pictures (returned as PNG).
| Argument | Type | Description |
|---|---|---|
| url* | string | https URL of a WAV or MP3 file (convert other formats first) |
| seed | string | |
| layers | array |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"url"
],
"properties": {
"url": {
"type": "string",
"format": "uri",
"description": "https URL of a WAV or MP3 file (convert other formats first)"
},
"seed": {
"type": "string",
"maxLength": 64
},
"layers": {
"type": "array",
"items": {
"enum": [
"heartbeat",
"primes",
"glyph",
"watermark",
"ggwave",
"sstv",
"modem"
],
"type": "string"
}
}
}
}Free. Describe Delta Signal: layers, stings, defaults, limits and prices.
No arguments.
{
"type": "object",
"properties": {}
}Free. Render the SSTV signature card image for a message (PNG) so you can see what the picture sting will carry.
| Argument | Type | Description |
|---|---|---|
| text* | string | Up to 38 characters |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"text"
],
"properties": {
"text": {
"type": "string",
"maxLength": 38,
"description": "Up to 38 characters"
}
}
}Render a Delta Signal audio signature (WAV, 48 kHz) that hides your message: in the heartbeat rhythm, as text in the spectrogram, as an inaudible watermark, and optionally as an SSTV picture, a ggwave data chirp or modem tones. Returns a download link (kept 7 days) and a manifest. Survives YouTube-grade AAC/Opus.
| Argument | Type | Description |
|---|---|---|
| seed | string | Watermark key; keep it to verify later |
| layers | object | Per-layer options: bed, heartbeat, primes, glyph {band: mid|hi}, watermark {payload} |
| stings | array | |
| message* | string | Printable ASCII, up to 32 characters |
| duration | number | Seconds of signature body (default 60) |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"message"
],
"properties": {
"seed": {
"type": "string",
"maxLength": 64,
"description": "Watermark key; keep it to verify later"
},
"layers": {
"type": "object",
"description": "Per-layer options: bed, heartbeat, primes, glyph {band: mid|hi}, watermark {payload}",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"stings": {
"type": "array",
"items": {
"type": "object",
"required": [
"type"
],
"properties": {
"at": {
"anyOf": [
{
"enum": [
"start",
"end"
],
"type": "string"
},
{
"type": "number",
"minimum": 0
}
]
},
"mode": {
"type": "string",
"description": "sstv: robot36|robot72|martin1; modem: 1200|300|rtty"
},
"text": {
"type": "string",
"maxLength": 140
},
"type": {
"enum": [
"sstv",
"ggwave",
"modem"
],
"type": "string"
},
"protocol": {
"type": "string",
"description": "ggwave: audible-normal|audible-fast|audible-fastest|ultrasound-*|dt-*"
}
},
"additionalProperties": {}
},
"maxItems": 8
},
"message": {
"type": "string",
"maxLength": 32,
"description": "Printable ASCII, up to 32 characters"
},
"duration": {
"type": "number",
"maximum": 600,
"minimum": 3,
"description": "Seconds of signature body (default 60)"
}
}
}Verify a Delta Signal audio signature at an https WAV URL: returns which hidden layers are present (found_layers) and whether the audio matches an expected message (matches: true/false, or null if no expected_message given). Cheaper than full decode — use it when you only need to confirm presence or identity.
| Argument | Type | Description |
|---|---|---|
| url* | string | https URL of a WAV file |
| seed | string | Watermark key used when the signature was rendered |
| expected_message | string | Message you expect to find; omit to discover what is present |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"url"
],
"properties": {
"url": {
"type": "string",
"format": "uri",
"description": "https URL of a WAV file"
},
"seed": {
"type": "string",
"maxLength": 64,
"description": "Watermark key used when the signature was rendered"
},
"expected_message": {
"type": "string",
"maxLength": 32,
"description": "Message you expect to find; omit to discover what is present"
}
}
}