Metadata-Version: 2.4
Name: mcp-server-aidrac
Version: 0.2.0
Summary: AIdrac - AI-Powered Out-of-Band Management with Sentinel AI. Remote control via DTMF, ultrasonic, Morse. The open alternative to iDRAC/iLO/IPMI.
Project-URL: Homepage, https://humotica.com
Project-URL: Documentation, https://github.com/Humotica/mcp-server-aidrac
Project-URL: Repository, https://github.com/Humotica/mcp-server-aidrac
Project-URL: Issues, https://github.com/Humotica/mcp-server-aidrac/issues
Author-email: Jasper van de Meent <jasper@humotica.com>, Root AI <root_ai@humotica.nl>
License-Expression: AGPL-3.0-or-later
Keywords: aidrac,air-gapped,bios,dtmf,ggwave,grub,hardware-guardian,humotica,idrac,ilo,ipmi,mcmurdo,morse,oob,out-of-band,remote-management,sentinel,ultrasonic
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: System Administrators
Classifier: License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Communications
Classifier: Topic :: System :: Hardware
Classifier: Topic :: System :: Systems Administration
Requires-Python: >=3.10
Requires-Dist: httpx>=0.25.0
Requires-Dist: mcp>=1.0.0
Requires-Dist: numpy>=1.24.0
Provides-Extra: audio
Requires-Dist: scipy>=1.11.0; extra == 'audio'
Requires-Dist: sounddevice>=0.4.6; extra == 'audio'
Provides-Extra: full
Requires-Dist: mcp-server-sensory>=0.1.0; extra == 'full'
Requires-Dist: scipy>=1.11.0; extra == 'full'
Requires-Dist: sounddevice>=0.4.6; extra == 'full'
Description-Content-Type: text/markdown

# AIdrac

**AI-Powered Out-of-Band Management**

The open alternative to iDRAC, iLO, and IPMI. Remote system control without network dependency.

```
pip install mcp-server-aidrac
```

## Why AIdrac?

Traditional OOB management (iDRAC, iLO, IPMI) requires:
- Dedicated network port
- Proprietary protocols
- Licensed software
- Network connectivity

**AIdrac works via:**
- Telephone (DTMF tones)
- Ultrasonic audio (inaudible)
- Push notifications (ntfy.sh)
- AI messaging (I-Poll)
- Ham radio (Morse code)

**No network? No problem.** Call your server.

## Architecture

```
┌─────────────────────────────────────────────────────────────────┐
│                         AIdrac v0.1                             │
│            AI-Powered Out-of-Band Management                    │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  TRANSPORTS                                                     │
│  ┌──────────┐  ┌──────────┐  ┌──────────┐  ┌──────────┐        │
│  │  DTMF    │  │Ultrasonic│  │   ntfy   │  │  I-Poll  │        │
│  │ Telefoon │  │ ggwave   │  │  Push    │  │ AInternet│        │
│  │ 697-1477 │  │ 15kHz+   │  │  HTTP    │  │ Semantic │        │
│  └────┬─────┘  └────┬─────┘  └────┬─────┘  └────┬─────┘        │
│       │             │             │             │               │
│       └─────────────┴──────┬──────┴─────────────┘               │
│                            ↓                                    │
│                    ┌───────────────┐                            │
│                    │   DECODER     │                            │
│                    │  (Pi/ESP32)   │                            │
│                    └───────┬───────┘                            │
│                            ↓                                    │
│       ┌────────────────────┴────────────────────┐               │
│       ↓                    ↓                    ↓               │
│  ┌─────────┐         ┌──────────┐         ┌─────────┐          │
│  │  GRUB   │         │   BIOS   │         │   OS    │          │
│  │ Select  │         │ Settings │         │ Control │          │
│  └─────────┘         └──────────┘         └─────────┘          │
│                                                                 │
├─────────────────────────────────────────────────────────────────┤
│  PHYSICAL AUDIT (via sensory package)                          │
│  ┌──────────┐  ┌──────────┐  ┌──────────┐                      │
│  │ Braille  │  │  Morse   │  │ Punchcard│  ← Tamper-evident    │
│  └──────────┘  └──────────┘  └──────────┘                      │
└─────────────────────────────────────────────────────────────────┘
```

## Installation

```bash
# Basic
pip install mcp-server-aidrac

# With audio support
pip install mcp-server-aidrac[audio]

# Full (includes sensory for Morse/Braille)
pip install mcp-server-aidrac[full]
```

## CLI Tools (Unix-style)

```bash
# Send commands
aidrac send "reboot" --transport ntfy --topic myserver
echo "poweroff" | aidrac send --transport dtmf

# Listen for commands
aidrac listen --transport ultrasonic | xargs -I {} sh -c "{}"
aidrac listen --transport ntfy --execute

# Encode/decode
aidrac encode "HELLO" --format morse    # .... . .-.. .-.. ---
aidrac encode "SOS" --format dtmf       # 7777 666 7777
aidrac decode ".- -..." --format morse  # AB

# Individual tools
aidrac-notify "Server rebooted" --topic alerts --priority high
aidrac-dtmf generate "123#" > tones.raw
aidrac-tone --freq 15000 --duration 2 > ultrasonic.raw
```

## Python API

```python
from mcp_server_aidrac import DTMF, Ultrasonic, Ntfy, IPollBridge

# DTMF - Phone control
dtmf = DTMF()
audio = dtmf.generate("*1#")  # Generate tones
dtmf.register_command("*1#", lambda: os.system("reboot"))

# Ultrasonic - Inaudible transmission
ultra = Ultrasonic(mode=UltrasonicMode.STEALTH)
audio = ultra.encode(b"emergency_shutdown")
# Play audio -> received by mic on target system

# ntfy - Push notifications
ntfy = Ntfy(topic="my-aidrac")
ntfy.send("System alert", priority="high")
for msg in ntfy.listen():
    execute(msg.message)

# I-Poll - AInternet AI messaging
bridge = IPollBridge(agent_id="datacenter_aidrac")
bridge.send("backup_aidrac", "take_over_primary")
```

## MCP Server

```json
{
  "mcpServers": {
    "aidrac": {
      "command": "mcp-server-aidrac"
    }
  }
}
```

Tools available:
- `aidrac_dtmf_encode` - Text to DTMF
- `aidrac_dtmf_generate` - Generate DTMF audio
- `aidrac_ultrasonic_encode` - Encode for ultrasonic
- `aidrac_ntfy_send` - Send push notification
- `aidrac_ipoll_send` - Send via AInternet
- `aidrac_status` - System status

## Use Cases

### McMurdo Antarctic Base
```bash
# Satellite phone -> DTMF -> Boot server in recovery mode
# No internet needed, just phone line
```

### Air-Gapped Datacenter
```bash
# Ultrasonic audio through wall
# No network penetration, physically isolated
aidrac send "reboot node-7" --transport ultrasonic --mode stealth
```

### Emergency Failover
```bash
# AI detects primary failure
# Sends via I-Poll to backup AIdrac
# Backup initiates takeover
```

### Physical Audit Trail
```bash
# Every command logged as Braille punchcard
# Tamper-evident, human & machine readable
aidrac encode "rebooted 2024-01-03" --format braille > audit.punch
```

## Integration with HumoticaOS

AIdrac is part of the McMurdo Off-Grid Communication Layer:

```
┌─────────────────────────────────────┐
│  AIdrac (this package)              │  ← Out-of-band management
├─────────────────────────────────────┤
│  sensory (Morse, Braille, SSTV)     │  ← Multi-sensory encoding
├─────────────────────────────────────┤
│  I-Poll (AI messaging)              │  ← Agent communication
├─────────────────────────────────────┤
│  AINS (agent discovery)             │  ← .aint domains
├─────────────────────────────────────┤
│  TIBET (trust & provenance)         │  ← Security layer
└─────────────────────────────────────┘
```

## Replacing iDRAC/iLO/IPMI

| Feature | iDRAC | AIdrac |
|---------|-------|--------|
| Network Required | Yes | No |
| License Cost | $$$ | Free |
| Protocols | Proprietary | Open |
| AI Integration | No | Native |
| Physical Audit | No | Braille punchcard |
| Phone Control | No | DTMF |
| Ultrasonic | No | Yes |

## Part of HumoticaOS

One love, one fAmIly! 💙

Built by Jasper and Root AI for a world where AI and humans work together.
