streamdeck-mcp
Health Uyari
- License — License: MIT
- Description — Repository has a description
- Active repo — Last push 0 days ago
- Low visibility — Only 9 GitHub stars
Code Gecti
- Code scan — Scanned 12 files during light audit, no dangerous patterns found
Permissions Gecti
- Permissions — No dangerous permissions requested
This is an MCP server that allows AI models to manage and control an Elgato Stream Deck. It can set buttons, create custom icons, and write executable shell scripts to automate tasks directly through the device's desktop application or via direct USB connection.
Security Assessment
Overall risk rating: Medium. The primary security concern is the `streamdeck_create_action` tool, which is explicitly designed to write and execute shell scripts in a local directory (`~/StreamDeckScripts/`). While the automated code scan found no dangerous patterns or hardcoded secrets, giving an AI agent the ability to generate and trigger executable scripts always carries inherent risk. Additionally, `streamdeck_restart_app` can forcefully restart local applications. The tool does not request broad dangerous permissions, does not make external network requests, and does not collect sensitive user data.
Quality Assessment
The project is actively maintained, with its most recent updates pushed today. It uses the highly permissive MIT license and includes clear, well-documented instructions. However, it currently suffers from extremely low community visibility, having accumulated only 9 GitHub stars. This means it has not been broadly tested or vetted by a wide audience. Developers will need to rely on their own code review rather than community consensus.
Verdict
Use with caution. While the code itself is clean, the inherent ability for this tool to write and execute shell scripts on your machine means you should carefully restrict which AI agents you grant access to.
MCP server for Elgato Stream Deck control — set buttons, manage pages, wire actions
Stream Deck MCP
AI-first MCP server for Elgato Stream Deck profile management. The default server writes directly to the Stream Deck desktop app's native profile files, and the original USB-direct server is still available as a legacy fallback.
Installation
Default: Desktop Profile Writer
The default packaged entrypoint is the profile writer. It edits ProfilesV3 when present, then falls back to ProfilesV2.
uvx streamdeck-mcp
Local Repo Configuration
{
"mcpServers": {
"streamdeck": {
"command": "uv",
"args": [
"--directory",
"/path/to/streamdeck-mcp",
"run",
"profile_server.py"
]
}
}
}
Legacy USB Server
If you still want direct hardware control that bypasses the Elgato app entirely, keep using the legacy server:
{
"mcpServers": {
"streamdeck-usb": {
"command": "uv",
"args": [
"--directory",
"/path/to/streamdeck-mcp",
"run",
"server.py"
]
}
}
}
Or use the packaged legacy entrypoint:
uvx --from streamdeck-mcp streamdeck-mcp-usb
Default Tools
| Tool | What it does |
|---|---|
streamdeck_read_profiles |
Lists desktop profiles and page directories from the active ProfilesV3 or ProfilesV2 store |
streamdeck_read_page |
Reads a page manifest and returns simplified button details plus the raw manifest |
streamdeck_write_page |
Creates a new page or rewrites an existing page manifest |
streamdeck_create_icon |
Generates a 72x72 PNG icon with text and colors |
streamdeck_create_action |
Creates an executable shell script in ~/StreamDeckScripts/ and returns an Open action block |
streamdeck_restart_app |
Restarts the macOS Stream Deck desktop app after profile changes |
How the Profile Writer Works
ProfilesV3is preferred when it exists because page UUIDs map cleanly to directories.ProfilesV2is still supported, but existing pages should be targeted bydirectory_idorpage_indexbecause Elgato stores opaque page directory names there.streamdeck_write_pagecan accept raw native action objects, or use convenience fields likepath,action_type,plugin_uuid, andaction_uuid.- Generated icons are stored in
~/.streamdeck-mcp/generated-icons/. - Generated shell scripts are stored in
~/StreamDeckScripts/.
Usage Notes
- After writing profiles, the Elgato desktop app may need a restart to pick up the new manifests.
streamdeck_create_actionis the safest way to build shell-command buttons because it writes a standalone script and returns the native Open action block for it.- The profile writer does not require exclusive USB access.
Legacy USB Tools
The original USB-direct server is preserved for backwards compatibility. It still provides:
streamdeck_connectstreamdeck_infostreamdeck_set_buttonstreamdeck_set_buttonsstreamdeck_clear_buttonstreamdeck_get_buttonstreamdeck_clear_allstreamdeck_set_brightnessstreamdeck_create_pagestreamdeck_switch_pagestreamdeck_list_pagesstreamdeck_delete_pagestreamdeck_disconnect
Use that mode only when you want the MCP server to own the hardware directly and the Elgato desktop app is not running.
Development
uv venv
uv pip install -e ".[dev]"
uv run pytest tests/ -v
uv run ruff check .
To audit this repo against the shared Very Good Plugins MCP standards:
../mcp-ecosystem/scripts/audit-server.sh .
Support
For issues, questions, or suggestions:
Built with 🧡 by Very Good Plugins
Yorumlar (0)
Yorum birakmak icin giris yap.
Yorum birakSonuc bulunamadi