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 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.
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, etc.). |
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
cd mcp-servers/denon-mcp
python server.py
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 |
Release files for denon-mcp 0.2.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| denon_mcp-0.2.1.tar.gz | 8.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| denon_mcp-0.2.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 17.9 kB
Release files / denon_mcp-0.2.1.tar.gz
| Download URL | denon_mcp-0.2.1.tar.gz |
|---|---|
| Size | 8.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
486d6c3705c73f367f7cd7b04ab5ff4f563065734c8c3b8eb1a0688b52f55bce
|
|
BLAKE2b-256 checksum How to use checksums |
f52f1d894616d36eae28031fe6384a72d7b2a8d437fd7ad8112acc6789c5abf6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 24, 2026.
Transparency logRelease files / denon_mcp-0.2.1-py3-none-any.whl
| Download URL | denon_mcp-0.2.1-py3-none-any.whl |
|---|---|
| Size | 9.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
84dc422f80a6476a3cff51cff69bf8c5937ddbc85e8705902efe007f4e31e011
|
|
BLAKE2b-256 checksum How to use checksums |
61f81b7393d83823684fb050bc86355779e4028eff137a521798450d793632af
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 24, 2026.
Transparency log