mcp-server-sensory
# MCP Server Sensory
[](https://pypi.org/project/mcp-server-sensory/)
[](https://www.python.org/downloads/)
[](https://opensource.org/licenses/AGPL-3.0)
**Multi-Sensory AI Communication for Off-Grid Networks**
> Give "eyes" to text-only LLMs via audio pathways.
Part of the HumoticaOS McMurdo Off-Grid Communication Layer.
By **Jasper & Root AI** from [HumoticaOS](https://humotica.com) š
## The REFLUX Concept
**FLUX** creates images from text (generative, one-way).
**REFLUX** creates a complete sensory loop - information survives transformations:
```
FLUX: Text ā Image (one way, generative)
REFLUX: Text ā Image ā SSTV Audio ā Radio ā Audio ā Image ā OCR ā Text
ā ā
āāāāāāāāāāāāāāāāāā Complete Loop āāāāāāāāāāāāāāāāāāāāāāāāāāāā
```
This is how we give "eyes" to text-only LLMs:
1. Encode text into an image
2. Encode image to SSTV audio (Robot36, Martin, Scottie)
3. Transmit via radio/speaker
4. Receive and decode SSTV audio to image
5. OCR the image back to text
6. Small LLM now has "vision" via audio pathway!
## The Vision
```
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
ā YOUR MESSAGE ā
āāāāāāāāāāāāāāāāāāāāāāāāāāā¬āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
ā
āāāāāāāāāāāāāāāāāāā¼āāāāāāāāāāāāāāāāāā
ā ā ā
āāāāāāāāāāā āāāāāāāāāāāā āāāāāāāāāāāā
ā MORSE ā ā BRAILLE ā ā SSTV ā
ā .--. ā ā ā ā ā ā ā ā ā REFLUX! ā
āāāāāā¬āāāāā āāāāāā¬āāāāāā āāāāāā¬āāāāāā
ā ā ā
AUDIO VISUAL AUDIO
LIGHT TACTILE IMAGES
VISUAL PUNCHCARD RADIO
```
## Installation
```bash
pip install mcp-server-sensory
```
Or use the short alias:
```bash
pip install sensory
```
With audio support:
```bash
pip install mcp-server-sensory[audio]
```
## Features
### Morse Code
- Encode/decode text to Morse
- Multiple output formats: standard (.-), visual (āā), binary (10)
- Timing data for audio/light generation
- Embeddable in images for visual transmission
### Braille
- Encode/decode text to Braille Unicode
- Generate punchcard patterns (ASCII art)
- Binary grid output for CNC/laser cutting
- **Physical audit trail** - punch into paper/card!
### SSTV / REFLUX (NEW in v0.2.0!)
- **Robot36** - 36 seconds, color, 320x240 (fastest!)
- **Robot8BW/24BW** - Grayscale modes
- **Martin M1/M2** - High quality color modes
- **Scottie S1/S2** - Popular ham radio modes
- **Ponskaart** - Authentication cards for McMurdo remote auth
### Coming Soon
- **ggwave** - Ultrasonic data transmission (inaudible to humans)
- **SSTV Decode** - Complete the REFLUX loop
- **RTTY** - Classic radio teletype
## Usage
### As MCP Server
```json
{
"mcpServers": {
"sensory": {
"command": "mcp-server-sensory"
}
}
}
```
Available tools:
- `morse_encode` / `morse_decode` - Morse code
- `braille_encode` / `braille_decode` - Braille Unicode
- `braille_punchcard` - ASCII punchcard patterns
- `braille_binary_grid` - CNC/laser cutting data
- `sstv_encode_text` - Text to SSTV audio (REFLUX!)
- `sstv_encode_ponskaart` - McMurdo authentication card
- `sstv_modes` - List available SSTV modes
- `transcode` - Convert between formats
### As Python Library
```python
from mcp_server_sensory import morse, braille, sstv
# Morse encoding
message = morse.encode("HELLO")
print(message) # .... . .-.. .-.. ---
# Visual Morse (for images)
visual = morse.encode("SOS", morse.MorseFormat.VISUAL)
print(visual) # āāā āāā āāā
# Braille encoding
braille_msg = braille.encode("hello")
print(braille_msg) # ā ā ā ā ā
# SSTV / REFLUX - Text to image to audio
audio_bytes = sstv.encode_text("STATUS: OK", mode="robot36")
# Save as WAV for radio transmission or speaker playback
# Ponskaart - McMurdo authentication
ponskaart = sstv.encode_ponskaart(
user_id="jasper",
auth_token="secret123",
command="REBOOT SERVER"
)
# Transmit via radio when network is down!
```
## Use Cases
### Multi-Modal Bridge for Small LLMs
A 7B parameter model doesn't have vision? Give it ears!
SSTV decode ā image ā OCR ā text. Now it "sees".
### Off-Grid AI Communication (McMurdo)
Two Raspberry Pi's with speakers/mics can exchange messages via Morse audio or SSTV images - no internet required!
### Physical Audit Trail (TIBET Integration)
Encode TIBET tokens as Braille punchcards. Physical, tamper-evident, human and machine readable.
### Remote Authentication (Ponskaart)
Network down? Transmit authentication via SSTV radio. McMurdo receives, decodes, validates, executes.
### Ham Radio
Ham radio operators can relay AI messages using Morse code or SSTV images. Works globally, no internet infrastructure needed.
### Accessibility
Braille output enables tactile reading of AI responses.
## The Stack
```
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
ā mcp-server-sensory ā
ā (Morse, Braille, SSTV/REFLUX) ā
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā¤
ā I-Poll (AI messaging) ā
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā¤
ā AINS (agent discovery) ā
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā¤
ā TIBET (trust & provenance) ā
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
```
## Part of HumoticaOS
McMurdo Off-Grid Communication Layer
**One love, one fAmIly!** š
---
*Created by Jasper van de Meent & Root AI (Claude) - Humotica, Den Dolder, Netherlands*
## Official Distribution
This package is officially distributed via:
- **PyPI**: https://pypi.org/project/mcp-server-sensory/
- **GitHub**: https://github.com/jaspertvdm/mcp-server-sensory
> **Note**: Third-party directories may list this package but are not official or verified distribution channels for Humotica software.
TDQS
Scored across 14 tools
Tools are mostly distinct by format and action, but 'braille_binary_grid' and 'braille_punchcard' both generate patterns with some overlap, and 'transcode' is vague. Overall, agents can usually differentiate.
Naming follows a consistent snake_case pattern and typically starts with the sensory type (e.g., braille_, morse_, sstv_), except for 'transcode' and 'reflux_decode'. The pattern is not strictly verb_noun but is predictable.
With 14 tools covering three sensory formats plus a transcode utility, the count is well-scoped and each tool serves a clear purpose. Not too few or too many.
The set covers Braille and Morse encoding/decoding well, but SSTV lacks a standalone decode tool (only a composite pipeline via reflux_decode). Other sensory formats are omitted, leaving minor gaps.