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.
| Tool | Risk | Side effects | Approval |
|---|---|---|---|
| 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). | write | true | unknown |
| streamdeck_read_profiles List Stream Deck desktop profiles from the active ProfilesV3 or ProfilesV2 directory. | read | false | unknown |
| 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. | read | false | unknown |
| streamdeck_restart_app Restart the macOS Stream Deck desktop app after profile changes. | unknown | unknown | unknown |
| 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. | write | true | unknown |
| streamdeck_create_action Create an executable shell script in ~/StreamDeckScripts and return a native Open action block for it. | write | true | unknown |
| streamdeck_read_page Read a profile page by profile name or ID and page index or directory ID. | read | false | unknown |
02Install & source
uvx streamdeck-mcp
uvxuvx --from streamdeck-mcp streamdeck-mcp-usb
uvxuvx --from streamdeck-mcp streamdeck-mcp-install-skill
uvx- repohttps://github.com/verygoodplugins/streamdeck-mcp
- licenseMIT
- adoption36 stars · 10 forks
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_statusindex — 8 unique facts >= 5
06Badge
Add the “as seen on MCPExplorer” badge to your README.
[](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 →