About Denon AVR
An MCP server for controlling Denon AVR home-cinema receivers over the local telnet protocol. It provides power, volume, mute, input selection, and status controls, with configuration through environment variables or YAML.
Key features
- 01Power on and standby controls
- 02Set or adjust volume
- 03Mute controls
- 04Select input source
- 05Read receiver status
Use cases
- 01Adjust receiver volume from an MCP client
- 02Switch between TV, game, or Blu-ray inputs
- 03Check receiver power, mute, and source status
MCP support
Exposes tools for controlling and checking a Denon AVR to MCP clients. Communicates with the receiver over the Denon AVR Control telnet protocol.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
uvx denon-mcpDENON_HOSTIP address of the Denon receiverDENON_PORTTelnet port of the receiverLocal servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.
Tools
10Saved tool list · updated 2w ago
| Parameter | Type | Required | Description |
|---|---|---|---|
| level | integer | Yes | Volume level (0-98) |
Details
From the project READMEDenon 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 |
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.