STB MCP Server
by lightnet19
README.md
# STB MCP Server
> mcp-name: io.github.lightnet19/stb-mcp-server
[](https://registry.modelcontextprotocol.io/v0/servers/io.github.lightnet19%2Fstb-mcp-server/versions)
[](https://pypi.org/project/stb-mcp-server/)
MCP Server untuk kontrol penuh server STB (Amlogic S9xx / Armbian) โ SSH via Cloudflare Tunnel + CasaOS + AdGuard Home.
Dibuat untuk [Hermes Agent](https://hermes-agent.nousresearch.com) oleh [Fuad Al Fajri](https://github.com/lightnet19).
## Tools
| # | Tool | Fungsi |
|---|------|--------|
| 1 | `stb_execute` | ๐ง Jalankan perintah shell |
| 2 | `stb_read_file` | ๐ Baca file |
| 3 | `stb_write_file` | โ๏ธ Tulis file |
| 4 | `stb_system_info` | ๐ Info sistem (OS, CPU, RAM, disk, uptime, suhu) |
| 5 | `stb_docker_list` | ๐ณ Daftar container running |
| 6 | `stb_docker_logs` | ๐ Log container (tail N baris) |
| 7 | `stb_docker_restart` | ๐ Restart container |
| 8 | `stb_docker_stats` | ๐ Resource CPU/RAM container |
| 9 | `stb_adguard_config` | ๐ก๏ธ Parameter utama AdGuard Home |
| 10 | `stb_adguard_full_config` | ๐ Full file YAML AdGuard |
| 11 | `stb_adguard_stats` | ๐ Statistik DNS AdGuard |
| 12 | `stb_cleanup_root` | ๐งน Bersihkan root filesystem |
| 13 | `stb_casaos_status` | ๐ Status CasaOS |
## Instalasi
### Prasyarat
- Python 3.10+
- SSH key dengan akses ke server target
- `cloudflared` di PATH (untuk tunnel proxy)
### Instalasi dari PyPI (Recommended)
```bash
pip install stb-mcp-server
```
### Setup dari Source
```bash
git clone https://github.com/lightnet19/stb-mcp-server
cd stb-mcp-server
python3 -m venv venv
source venv/bin/activate
pip install -e .
# Register ke Hermes Agent
hermes mcp add stb --command "$(pwd)/run.sh"
```
### Konfigurasi SSH
Server membaca environment variables saat start. Default aman untuk publik (placeholder) โ override per instance via env:
| Variabel | Default | Keterangan |
|----------|---------|------------|
| `STB_HOST` | `sshstb.your-domain.example.com` | Hostname/IP server target |
| `STB_USER` | `root` | User SSH |
| `STB_KEY` | `~/.ssh/stb_alfajri` | Path private key |
| `STB_PROXY_HOST` | nilai `STB_HOST` | Host untuk tunnel proxy (`cloudflared access ssh`); **kosongkan** jika koneksi langsung (OVPN/LAN) |
### Multi-Host (beberapa STB)
Satu codebase bisa melayani banyak STB sekaligus โ daftarkan instance MCP terpisah, masing-masing dengan wrapper + file env sendiri:
```bash
# .stb1.env (STB1 โ via Cloudflare Tunnel)
STB_HOST=stb1.your-domain.example.com
STB_USER=root
STB_KEY=/home/user/.ssh/stb1_key
STB_PROXY_HOST=stb1.your-domain.example.com
```
```bash
# .stb2.env (STB2 โ via OVPN/LAN, tanpa proxy)
STB_HOST=10.0.0.5
STB_USER=root
STB_KEY=/home/user/.ssh/stb2_key
STB_PROXY_HOST=
```
```bash
# run-stb2.sh (wrapper instance kedua)
#!/bin/bash
cd /path/to/stb-mcp-server
export PYTHONUNBUFFERED=1
set -a; source /path/to/stb-mcp-server/.stb2.env; set +a
exec /path/to/stb-mcp-server/venv/bin/python3 -m stb_mcp_server
```
```bash
# Register instance kedua ke Hermes Agent
hermes mcp add stb2 --command "/path/to/stb-mcp-server/run-stb2.sh"
```
> โ ๏ธ File `.env` berisi kredensial โ sudah ada `.env*` di `.gitignore`, JANGAN pernah di-commit ke repo publik.
## Cara Kerja
```
[Hermes Agent] โ MCP stdio โ [stb-mcp-server] โ SSH โ [Server STB]
```
Semua tool dieksekusi via SSH ke server target. SSH key + Cloudflare Tunnel digunakan untuk koneksi aman tanpa port terbuka.
## Struktur Project
```
stb-mcp-server/
โโโ pyproject.toml # Package metadata
โโโ README.md # Dokumentasi
โโโ CONTRIBUTING.md # Panduan kontribusi
โโโ LICENSE # MIT License
โโโ run.sh # Wrapper script (Hermes entry point)
โโโ stb_mcp_server/
โโโ __init__.py
โโโ __main__.py # python3 -m entry point
โโโ server.py # Tools MCP (FastMCP)
```
## Publikasi
- **GitHub**: [lightnet19/stb-mcp-server](https://github.com/lightnet19/stb-mcp-server)
- **Lisensi**: MIT
## Kontribusi
Silakan lihat [CONTRIBUTING.md](CONTRIBUTING.md) untuk panduan kontribusi.
This server cannot be deployed
Maintenance
ActivitySlowing
ResponsivenessNo issues