# 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](/mcp/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:

```python
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](https://github.com/verygoodplugins/streamdeck-mcp/issues/75) · 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:

```python
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).
