Reported issues for streamdeck-mcp
Pod holds 5 of 5 GitHub reports that passed its relevance review. This can include external user reports, maintainer-confirmed bugs, and concrete feature gaps. Treat them as evidence to inspect, not a count of distinct defects.
Back to streamdeck-mcp.
Most discussed
Windows: _quote_open_path() double-escapes backslashes, corrupting Open-action paths written via write_page's path field
Summary
_quote_open_path() in profile_manager.py (confirmed in the published PyPI 0.3.0 release) manually doubles backslashes before wrapping the path in quotes:
def _quote_open_path(path: Path) -> str:
escaped = str(path).replace("\\", "\\\\").replace('"', '\\"')
return f'"{escaped}"'
This string is stored as-is in Settings.path and the whole button dict is later serialized with json.dump() when the page manifest is written. json.dump() performs its own…
Read the thread · 2026-09-13 · open · external user · 0 comments
Windows: is_stream_deck_app_running()/stop_stream_deck_app() are Darwin-only stubs, silently defeating write_page's safety check
Summary
profile_manager.py (confirmed in the published PyPI 0.3.0 release) guards write_page against clobbering by the running Elgato app like this:
def is_stream_deck_app_running() -> bool:
if sys.platform != "darwin":
return False
...
def stop_stream_deck_app(*, graceful_timeout: float = 3.0) -> dict[str, Any]:
if sys.platform != "darwin":
return {"stopped": False, "graceful": [], "forced": [], "reason": "non-darwin platform"}
...
```…
[Read the thread](https://github.com/verygoodplugins/streamdeck-mcp/issues/74) · 2026-09-12 · open · external user · 0 comments
### Mark Stream Deck profile validation failures as MCP tool errors
## Summary
Stream Deck profile tools can return validation/refusal failures as plain text content, causing MCP clients and AutoHub telemetry to record them as successful tool calls.
## Evidence
- Time window: `2026-07-18T02:32:27Z` to `2026-07-19T02:32:27Z`.
- AutoHub DB health: canonical `/Users/jgarturo/Projects/OpenAI/autohub/data/hub-unified.db` returned `PRAGMA quick_check;` -> `ok`.
- Query result: `tool_calls` found 6 Stream Deck profile calls in the last 24h where `status='success'`…
[Read the thread](https://github.com/verygoodplugins/streamdeck-mcp/issues/62) · 2026-07-19 · closed · 0 comments
### streamdeck_connect always grabs the first enumerated device — no way to target a specific deck when multiple are attached
## Problem
`server.py:292` hardcodes `self.deck = decks[0]`, so when more than one Stream Deck is connected (e.g. an Original *and* a Plus on the same machine), the MCP can only ever talk to whichever device `DeviceManager().enumerate()` returns first. There is no tool argument to choose, and no `list_devices` tool to discover what's attached.
Repro on a machine with two decks plugged in:
streamdeck_connect → always opens the same one regardless of intent
## Suggested fix
Two…
[Read the thread](https://github.com/verygoodplugins/streamdeck-mcp/issues/44) · 2026-05-27 · closed · external user · 0 comments
### streamdeck_read_profiles fails on Windows with UTF-8 profile/page manifests
## Summary
On Windows, `streamdeck_read_profiles` can fail with:
`UnicodeDecodeError: ''charmap'' codec can''t decode byte 0x8d ...`
when any Stream Deck profile or page `manifest.json` contains non-ASCII UTF-8 content such as emoji.
## Reproduction
1. Create or edit a Stream Deck profile page so a page manifest contains UTF-8 text, for example: `"pastedText": "👍"`
2. Run the MCP server via `uvx streamdeck-mcp`
3. Call `streamdeck_read_profiles`
## Actual
The server crashes while…
[Read the thread](https://github.com/verygoodplugins/streamdeck-mcp/issues/39) · 2026-04-28 · open · external user · 0 comments
## Most recent
The remaining reports are on [the project's issue tracker](https://github.com/verygoodplugins/streamdeck-mcp/issues).