- Home
- MCP servers
- Lyngdorf
Lyngdorf
- typescript
2
GitHub Stars
typescript
Language
5 months ago
First Indexed
2 months ago
Catalog Refreshed
Documentation & install
Readme and setup notes from the catalogue, plus a client-ready config you can copy for your MCP host.
Installation
Add the following to your MCP client configuration file.
Configuration
View docs{
"mcpServers": {
"thejens-lyngdorf-mcp": {
"command": "npx",
"args": [
"lyngdorf-mcp"
],
"env": {
"LYNGDORF_IP": "192.168.1.42",
"VOLUME_HARD_LIMIT": "-10",
"VOLUME_WARNING_THRESHOLD": "-20"
}
}
}
}You can control Lyngdorf Audio devices through a dedicated MCP server that runs locally or remotely. This server auto-discovers devices on your network, provides a safety layer for volume, supports multiple Lyngdorf models, and exposes a rich set of control tools to manage power, input sources, RoomPerfect tuning, voicing, playback, and more. It’s designed to stay connected, handle model differences, and keep your device in sync with reliable commands.
How to use
Start the MCP server and connect your MCP client. On startup, it will automatically discover Lyngdorf devices on your network using mDNS. If a single device is found, it connects automatically. If multiple devices are found, you can list them and select the one you want to control.
From your MCP client, you can perform actions such as powering the device on or off, adjusting the volume with safety limits, changing sources, tuning RoomPerfect focus, applying voicing presets, and managing playback or streaming. The server includes a safety system with a warning threshold and a hard limit to protect your ears and equipment.
You can run multiple configurations and optionally set a specific device IP if auto-discovery does not locate a device on your network. Use the available tools to discover, list, and select devices when more than one is present.
How to install
Prerequisites: ensure you have Node.js 22 or newer and a package manager such as npm or yarn installed on your system.
Install from npm globally to begin using the MCP server right away.
npm install -g lyngdorf-mcp
Or run the MCP server directly without installing globally using npx.
npx lyngdorf-mcp
If you prefer to install from source, clone the project, install dependencies, prepare the environment, and build the distribution before running.
git clone <repository-url>
cd lyngdorf-mcp
npm install
cp .env.example .env
npm run build
Configuration and startup notes
You can configure how the MCP server discovers devices and limits volume via environment variables.
Key environment variables include:
-
LYNGDORF_IP: Manually specify a device IP if auto-discovery fails.
-
VOLUME_WARNING_THRESHOLD: Volume level in dB that triggers a confirmation prompt before allowing the change.
-
VOLUME_HARD_LIMIT: Maximum volume level in dB that cannot be exceeded via MCP tools.
For quick usage with Claude Desktop, you can configure the MCP server to run via npm or a local installation. The following examples show how to wire the MCP server into Claude Desktop’s config.
{
"mcpServers": {
"lyngdorf": {
"command": "npx",
"args": ["lyngdorf-mcp"],
"env": {
"VOLUME_WARNING_THRESHOLD": "-20",
"VOLUME_HARD_LIMIT": "-10"
}
}
}
}
Troubleshooting and tips
If no devices are found, ensure your Lyngdorf device is powered on and connected to the same network subnet as the MCP server. You can force discovery by manually setting LYNGDORF_IP.
If a volume change triggers a warning, either confirm the action to proceed or adjust the requested volume to stay within the safe range.
To see which devices are available for control, use the device listing tools in your MCP client. If multiple devices are present, select the one you wish to control.
Developer notes
The MCP server is designed to auto-discover, auto-connect when a single device is found, and provide a unified set of tools for power, volume, input, RoomPerfect, voicing, playback, and source management across supported Lyngdorf models.
Available tools
powerOn
Turn the Lyngdorf device on from standby
powerOff
Power down the device
togglePower
Toggle between on and standby states
checkPowerState
Query whether the device is active or in standby
setVolume
Set a specific volume level with safety checks enforcing thresholds
volumeUp
Increase volume by 0.5 dB per action
volumeDown
Decrease volume by 0.5 dB per action
getVolume
Retrieve the current volume level
mute
Mute the audio output
unmute
Unmute the audio output
setBass
Adjust bass gain level
getBass
Read current bass gain level
setTreble
Adjust treble gain level
getTreble
Read current treble gain level
setBalance
Adjust left/right balance
getBalance
Read current balance setting
setBassFrequency
Set bass frequency focus for EQ adjustments
getBassFrequency
Get bass EQ frequency focus
setTrebleFrequency
Set treble frequency focus for EQ adjustments
getTrebleFrequency
Get treble EQ frequency focus
setSource
Change the active input source
getSource
Query the current input source
listSources
List all available input sources
setRoomPerfectFocus
Set a specific RoomPerfect focus position
setRoomPerfectGlobal
Set global RoomPerfect tuning state
getRoomPerfect
Query current RoomPerfect settings
listRoomPerfectPositions
List available RoomPerfect focus positions
setVoicing
Apply a voicing preset or adjustment
nextVoicing
Cycle to the next voicing preset
previousVoicing
Cycle to the previous voicing preset
getVoicing
Get current voicing setting
listVoicings
List available voicing presets
play
Start playback of the current source (model dependent)
pause
Pause playback (model dependent)
stop
Stop playback (model dependent)
next
Skip to the next track (model dependent)
previous
Return to the previous track (model dependent)
getStreamType
Detect current streaming source (Spotify, Roon, AirPlay, etc.)
discoverDevices
Trigger device discovery on the network
listDevices
List all discovered Lyngdorf devices
selectDevice
Select which device to control when multiple are found
getStatus
Retrieve a comprehensive status of the currently selected device