From 20d021df537af089bf18e21dd64f179866565947 Mon Sep 17 00:00:00 2001 From: Kastro5 <100818228+Kastro5@users.noreply.github.com> Date: Thu, 15 Oct 2026 16:31:37 -0300 Subject: [PATCH] Add OpenDeck MCP --- __pycache__/validate_submission.cpython-313.pyc | Bin 0 -> 17185 bytes catalogue.json | 9 +++++++++ icons/dev.kastro5.opendeck-mcp.png | Bin 0 -> 4011 bytes 3 files changed, 9 insertions(+) create mode 100644 __pycache__/validate_submission.cpython-313.pyc create mode 100644 icons/dev.kastro5.opendeck-mcp.png diff --git a/__pycache__/validate_submission.cpython-313.pyc b/__pycache__/validate_submission.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..26f568498cd0de8fa459203f1e8af1f1f13bcd35 GIT binary patch literal 17185 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 G>-}%-ZMfb5 literal 0 HcmV?d00001 diff --git a/catalogue.json b/catalogue.json index ecad92d..bb9c562 100644 --- a/catalogue.json +++ b/catalogue.json @@ -107,6 +107,15 @@ "repository": "https://github.com/kahikara/opendeck-redline-monitor", "description": "A high-performance System Information dashboard for Stream Deck on Linux. Features real-time CPU/GPU monitoring (AMD focus), intelligent disk aggregation, and encoder-based system controls." }, + "dev.kastro5.opendeck-mcp": { + "name": "OpenDeck MCP", + "author": "kastro5", + "repository": "https://github.com/kastro5/opendeck-mcp", + "description": "MCP server to configure OpenDeck (open-source Stream Deck software) with natural language: keys, profiles, multi-actions, app switching, plugins — staged, previewed, backed up", + "flags": { + "ai_assisted": true + } + }, "com.lilithmoder.lifx": { "name": "LIFX", "author": "lilithmoder", diff --git a/icons/dev.kastro5.opendeck-mcp.png b/icons/dev.kastro5.opendeck-mcp.png new file mode 100644 index 0000000000000000000000000000000000000000..191311b40908d6ad25f0f1f06493ad951a7715c9 GIT binary patch literal 4011 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 eVRtGs+oCV#x&8C^>0dw-&Sq?2p