Denon AVR

Control a Denon AVR home cinema receiver over telnet: power, volume, mute, input source, status.

OtherPythonv0.3.2

Denon MCP Server

tests License: MIT Python 3.10+

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

Client MCP : les 10 outils, puis get_status sur l'ampli réel

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

OutilRôle
volume_setRegle le volume du Denon a un niveau specifique (0-98). 80 = 0dB reference.
volume_upAugmente le volume du Denon.
volume_downBaisse le volume du Denon.
mute_onActive le mute du Denon.
mute_offDesactive le mute du Denon.
mute_toggleToggle le mute du Denon (on/off).
power_onAllume le Denon AVR.
power_offEteint le Denon AVR (standby).
get_statusRetourne le statut du Denon (volume, power, etc.).
set_inputChange la source d'entree du Denon (BD, TV, GAME, SAT/CBL, DVD, MPLAY).

Sources d'entrée

  • BD : Blu-ray / Lecteur BD
  • TV : Entrée TV
  • GAME : Console de jeu
  • SAT/CBL : Satellite / Câble
  • DVD : Lecteur DVD
  • MPLAY : 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 44
  • MV? : Demander le volume actuel
  • MVUP / MVDOWN : Volume +/-
  • PWON / PWSTANDBY : Power on/off
  • MUON / MUOFF : Mute on/off
  • SIBD : 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ôtRôle
lyraassistant DevOps vocal, local par défaut (AGPL-3.0)
fedora-agentsMCP : machines virtuelles KVM et sauvegardes
mcp-trackingMCP + API + tableau de bord des tâches longues
neutroncorehub PWA du homelab
hue-mcpMCP Philips Hue (fork de ThomasRohde/hue-mcp)
pylips-mcpMCP TV Philips
denon-mcpMCP ampli Denon
catt-mcpMCP Chromecast et DLNA

Installation

Source-derived launch command. Check the maintainer’s required arguments and credentials before running:

bash
uvx denon-mcp

Set up in your AI client

Merge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.

json
{
  "mcpServers": {
    "io-github-amineutron-denon-mcp": {
      "command": "uvx",
      "args": [
        "denon-mcp"
      ]
    }
  }
}

Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the client’s tool list, then try a read-only example from its documentation.

Claude Desktop setup reference

Package

denon-mcppypi

Compatible MCP Clients

Denon AVR works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.

  • Claude Desktop~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.
  • Cursor~/.cursor/mcp.jsonRestart Cursor for changes to take effect.
  • VS Code.vscode/mcp.jsonReload VS Code window for changes to take effect.
  • Windsurf~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect.
  • Claude Code.mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.

Learn More