servers / streamdeck-mcp

streamdeck-mcp

communitystdiolocalwrite capablehealthy

MCP server for Elgato Stream Deck control — set buttons, manage pages, wire actions


01Tools · 7

How to read this: tool names here are observed from a live tools/list handshake. The Risk label is a heuristic inferred from the tool name (write/destructive verbs), not from executing the tool — a conservative guess, not a verified capability. We never escalate risk from a description. Found one that's wrong? Tell us — we fix on report.

ToolRiskSide effectsApproval
streamdeck_create_icon
Generate one or many PNG icons. Button icons are 72x72 px; touchstrip segment icons are 200x100 px (use shape='touchstrip'). For a single icon: pass 'icon' (a Material Design Icons name like 'mdi:cpu-64-bit') OR 'text' (mutually exclusive with 'icon' — titles go on streamdeck_write_page's 'title' field since Elgato overlays them on images). For a full deck (often 30+ icons): pass 'icons' as a list of spec dicts to generate them all in one call and avoid the round-trip timeouts serial calls hit. ~7400 MDI icons bundled offline; unknown names return close-match suggestions. Returns either a single {path, size, ...} dict or {"icons": [...]} when 'icons' is used (each list element is a per-icon result or an {"error"} entry for that spec).
writetrueunknown
streamdeck_read_profiles
List Stream Deck desktop profiles from the active ProfilesV3 or ProfilesV2 directory.
readfalseunknown
streamdeck_install_mcp_plugin
Install the bundled streamdeck-mcp Stream Deck plugin into the user's Elgato Plugins directory. The plugin is a minimal shell that declares encoder support so that per-instance touchstrip icons and backgrounds written by streamdeck_write_page survive an Elgato app restart. Idempotent — returns installed=false when already present unless force=true. streamdeck_write_page also auto-installs this plugin when an encoder button targets it, so most callers do not need to invoke this directly.
readfalseunknown
streamdeck_restart_app
Restart the macOS Stream Deck desktop app after profile changes.
unknownunknownunknown
streamdeck_write_page
Create a new page or replace/update an existing Stream Deck desktop page manifest. IMPORTANT: the Elgato desktop app overwrites profile manifests from its in-memory state on quit, so writes made while the app is running are lost. This tool refuses to write when the app is running unless auto_quit_app=True is passed. Call streamdeck_restart_app once your edits are complete to make the changes visible on the device.
writetrueunknown
streamdeck_create_action
Create an executable shell script in ~/StreamDeckScripts and return a native Open action block for it.
writetrueunknown
streamdeck_read_page
Read a profile page by profile name or ID and page index or directory ID.
readfalseunknown

02Install & source
uvx streamdeck-mcp
uvx
uvx --from streamdeck-mcp streamdeck-mcp-usb
uvx
uvx --from streamdeck-mcp streamdeck-mcp-install-skill
uvx

05Provenance & freshness
sourcesGitHub repo search [p4]
last_checked2026-08-19 13:16Z
next_check2026-08-19 16:16Z
cadenceevery 3h
verifiedhandshake:failed metadata:passed handshake:failed metadata:passed handshake:failed metadata:passed handshake:failed metadata:passed handshake:failed metadata:passed
index_statusindex8 unique facts >= 5

06Badge

Add the “as seen on MCPExplorer” badge to your README. streamdeck-mcp MCP — as seen on mcpexplorer.com

[![streamdeck-mcp MCP — as seen on mcpexplorer.com](https://mcpexplorer.com/badge/streamdeck-mcp.svg)](https://mcpexplorer.com/servers/streamdeck-mcp)

Next step

This is one server. A loadout combines the right servers, governance, and proven plays for a whole job — assembled deliberately, not tool-dumped.

Explore loadouts →
streamdeck-mcp — MCPExplorer