Commit Graph

4 Commits

Author SHA1 Message Date
Andres Eduardo Garcia Marquez 82b99225bc fix: rename 'message' key to 'note' in info() offline response
Prevents _ok() from getting duplicate 'message' argument when
unpacking the dict returned by info() when TV is unreachable.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-03 09:35:03 -05:00
Andres Eduardo Garcia Marquez ba81fabefc fix: eliminate all blocking operations that freeze MCP
- Remove ThreadPoolExecutor/SIGALRM approaches (don't work in FastMCP threads)
- list_apps: return known aliases directly (WS app_list blocks on TU7000)
- _send_ws: simplified with auto-reconnect, no thread wrapping
- All timeouts via SamsungTVWS timeout param + urlopen timeout
- No operation can block the MCP process anymore

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-02 02:13:27 -05:00
Andres Eduardo Garcia Marquez 4dd9132a9b fix: add timeouts to all WebSocket operations
- WS_TIMEOUT (8s) for all WebSocket commands via ThreadPoolExecutor
- SIGALRM hard timeout for list_apps (recv blocks indefinitely)
- Fallback to known app aliases when TV doesn't respond to app_list
- SamsungTVWS constructor now passes timeout parameter
- Prevents MCP tools from hanging forever on unresponsive TV

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-02 01:59:17 -05:00
Andres Eduardo Garcia Marquez f12556bb43 feat: initial release — Samsung TV MCP server
15 tools for controlling Samsung Tizen TVs via local network.
Auto-discovery (SSDP), WebSocket remote, UPnP volume/DLNA,
app management, browser control, and Wake-on-LAN.

Tested on Samsung UN65TU7000KXZL (2020, Crystal UHD).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-02 00:54:08 -05:00