Skip to content

fix(usb): select stream deck by serial#45

Open
jack-arturo wants to merge 3 commits into
mainfrom
fix/streamdeck-connect-serial
Open

fix(usb): select stream deck by serial#45
jack-arturo wants to merge 3 commits into
mainfrom
fix/streamdeck-connect-serial

Conversation

@jack-arturo
Copy link
Copy Markdown
Member

Summary

  • add streamdeck_list_devices to enumerate attached USB Stream Decks
  • allow streamdeck_connect to select a specific deck by serial while preserving first-device default behavior
  • document the multi-deck USB workflow and add mocked hardware regression tests

Fixes #44

Tests

  • uv run pytest tests/test_server.py -q
  • uv run pytest tests/ -q
  • uv run ruff check .

Risk

  • No physical multi-deck hardware test was run; coverage uses mocked python-elgato-streamdeck devices.

Copilot AI review requested due to automatic review settings May 27, 2026 21:26
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR adds multi-device support to the legacy USB-direct Stream Deck MCP server by allowing devices to be enumerated and selected by serial number.

Changes:

  • Adds USB Stream Deck enumeration via streamdeck_list_devices.
  • Extends streamdeck_connect with an optional serial argument while preserving default first-device behavior.
  • Updates README guidance and adds mocked regression coverage for multi-deck selection.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 1 comment.

File Description
server.py Adds device enumeration, serial selection, tool schema updates, and tool dispatch handling.
tests/test_server.py Adds mocked tests for listing devices, serial selection, unknown serial errors, and tool schema exposure.
README.md Documents the legacy USB multi-deck workflow.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread server.py
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

streamdeck_connect always grabs the first enumerated device — no way to target a specific deck when multiple are attached

2 participants