Denon MCP Server
English summary. MCP server for Denon AVR home-cinema receivers over the local telnet control protocol: power, volume, mute, inputs, status. Configure with DENON_HOST / DENON_PORT (optional DENON_MAC to follow the receiver when DHCP changes its IP) or a config.yaml; runs standalone (uvx denon-mcp after PyPI publication).
Serveur MCP pour contrôler un Home Cinema Denon AVR via le protocole Denon AVR Control (telnet).
Démo

Enregistrée sur l'ampli réel avec docs/demo/record.sh : un client MCP minimal (docs/demo/mcp_demo.py) démarre le serveur en stdio avec DENON_HOST dans l'environnement, liste les outils et appelle get_status (lecture seule).
Modèle supporté
- Denon AVR-X1700H DAB
- Autres modèles AVR-X series compatibles avec le protocole Denon AVR Control
Configuration
Ordre de résolution : variables d'environnement, puis fichier YAML (DENON_CONFIG, sinon ./config.yaml, sinon config.yaml à côté du serveur, sinon celui de Lyra si le serveur est installé dans son arborescence). Le serveur fonctionne seul, sans Lyra.
Sans réservation DHCP, renseignez aussi mac (ou DENON_MAC) : si l'IP ne répond plus, le serveur retrouve le Denon par son adresse MAC dans la table de voisinage du réseau local (une recherche toutes les 2 min au plus) et bascule sur la nouvelle IP.
Installation en une ligne
uvx denon-mcp # après publication sur PyPI ; en attendant : uvx --from git+https://github.com/amineutron/denon-mcp denon-mcp
Configuration Claude Desktop / Claude Code (mcpServers) :
{ "denon": { "command": "uvx", "args": ["denon-mcp"], "env": { "DENON_HOST": "192.0.2.22" } } }
Ajouter dans config.yaml :
denon:
host: "192.0.2.10" # IP du Denon (exemple)
port: 23 # Port telnet (default: 23)
Les valeurs ci-dessous sont des exemples : remplacez-les par les valeurs de votre appareil
(IP affichée dans le menu réseau de l'ampli, adresse MAC au format AA:BB:CC:DD:EE:FF
utile pour une réservation DHCP ou le Wake-on-LAN).
Outils disponibles
| Outil | Rôle |
|---|---|
volume_set | Regle le volume du Denon a un niveau specifique (0-98). 80 = 0dB reference. |
volume_up | Augmente le volume du Denon. |
volume_down | Baisse le volume du Denon. |
mute_on | Active le mute du Denon. |
mute_off | Desactive le mute du Denon. |
mute_toggle | Toggle le mute du Denon (on/off). |
power_on | Allume le Denon AVR. |
power_off | Eteint le Denon AVR (standby). |
get_status | Retourne le statut du Denon : volume, power (on/standby/unknown), muted, source (BD, TV, GAME...), reachable. |
set_input | Change la source d'entree du Denon (BD, TV, GAME, SAT/CBL, DVD, MPLAY). |
Sources d'entrée
BD: Blu-ray / Lecteur BDTV: Entrée TVGAME: Console de jeuSAT/CBL: Satellite / CâbleDVD: Lecteur DVDMPLAY: Media Player
Aliases supportés : bluray, blu-ray, cable, sat, media, mediaplayer
Échelle de volume
- 0-98 : Échelle Denon (0 = -80 dB, 80 = 0 dB référence, 98 = +18 dB)
- Pour une écoute normale : 30-50
- Pour un home cinéma : 50-70
- Maximum recommandé : 80 (0 dB)
Protocole Denon AVR Control
Commandes telnet sur port 23 :
MV44: Volume 44MV?: Demander le volume actuelMVUP/MVDOWN: Volume +/-PWON/PWSTANDBY: Power on/offMUON/MUOFF: Mute on/offSIBD: Source Blu-ray
Notes HDMI ARC
Quand un home cinéma est connecté en HDMI ARC/eARC à la TV :
- Le volume de la TV est désactivé
- C'est le home cinéma qui contrôle le volume audio
- Les commandes
tv.volume_*ne fonctionnent PAS - Utiliser
denon.volume_*à la place
Test manuel
# Test connexion
echo "MV?" | nc 192.0.2.10 23
# Régler volume à 44
echo "MV44" | nc 192.0.2.10 23
# Allumer
echo "PWON" | nc 192.0.2.10 23
Installation
denon-mcp # installé (pip, uvx) ; `denon-mcp --help` liste les réglages
python -m denon_mcp # équivalent, depuis tout environnement où le paquet est installé
python server.py # depuis un clone, sans installation (lanceur minimal, code dans denon_mcp/)
Le code vit dans le paquet denon_mcp : il s'installe à côté d'autres serveurs MCP sans conflit de nom de module.
Le serveur est automatiquement lancé par Lyra via la config MCP.
Part of the Lyra ecosystem
| Dépôt | Rôle |
|---|---|
| lyra | assistant DevOps vocal, local par défaut (AGPL-3.0) |
| fedora-agents | MCP : machines virtuelles KVM et sauvegardes |
| mcp-tracking | MCP + API + tableau de bord des tâches longues |
| neutroncore | hub PWA du homelab |
| hue-mcp | MCP Philips Hue (fork de ThomasRohde/hue-mcp) |
| pylips-mcp | MCP TV Philips |
| denon-mcp | MCP ampli Denon |
| catt-mcp | MCP Chromecast et DLNA |