# streamdeck-mcp

Build or rework Elgato Stream Deck profiles through an AI agent, with buttons, pages, actions, and artwork. Useful when you want to describe a control panel instead of assembling it by hand.

- MCP server · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI · ★ 54
- Author: verygoodplugins
- License: MIT · policy=link-only · description only; the file stays with the author
- Source: https://github.com/verygoodplugins/streamdeck-mcp
- Updated: 2026-08-12
- HTML: https://affpapa.org/en/nevibecode/mcp/streamdeck-mcp

## What it does

Describe the control panel you need and the server creates a local Stream Deck profile with buttons, icons, colors, dial controls, and touch-strip artwork. It reads and writes Elgato profile files, with a fallback format for older installations. Before changing a profile, it checks the device model and key layout.

The server searches existing profiles for configured plugin actions and prefers reusing them, which keeps their settings intact. When no suitable action is available, it can create an executable shell script and attach it to a button. Icons are rendered locally from a bundled collection or short text labels. Dial and touch-strip support can require installation of a bundled plugin. On macOS and Windows, profile writing targets the Elgato desktop app; Linux and headless setups use a separate USB server.

In Claude Code, add the server with the command in the FAQ. A bundled designer skill can also guide layout choices. One constraint matters: the Elgato app can overwrite manifest edits, so the server closes it before writing and relaunches it afterward.

## Requirements
- Needs: Python and uv (commands run via uvx)

## Install

### Claude Code (native platform)

**Platform CLI**
```bash
claude mcp add streamdeck-mcp -- uvx streamdeck-mcp
```
uvx runs the command named after the package; if the README names another one, use uvx --from streamdeck-mcp <command>

### Codex

**Platform CLI**
```bash
codex mcp add streamdeck-mcp -- uvx streamdeck-mcp
```
uvx runs the command named after the package; if the README names another one, use uvx --from streamdeck-mcp <command>

### Cursor

**Config file**
File `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "streamdeck-mcp": {
            "command": "uvx",
            "args": [
                "streamdeck-mcp"
            ]
        }
    }
}
```
uvx runs the command named after the package; if the README names another one, use uvx --from streamdeck-mcp <command>

### GitHub Copilot

**Config file**
File `.vscode/mcp.json`:
```json
{
    "servers": {
        "streamdeck-mcp": {
            "type": "stdio",
            "command": "uvx",
            "args": [
                "streamdeck-mcp"
            ]
        }
    }
}
```
uvx runs the command named after the package; if the README names another one, use uvx --from streamdeck-mcp <command>

### Gemini CLI

**Platform CLI**
```bash
gemini mcp add streamdeck-mcp uvx streamdeck-mcp
```
uvx runs the command named after the package; if the README names another one, use uvx --from streamdeck-mcp <command>

## When to use it
- create a Stream Deck profile from a panel description
- reuse configured plugin actions on a new page
- add project command buttons to a local deck
- render icons and touch-strip artwork
- set up dial controls for Stream Deck

## Example prompts
- Build a Stream Deck panel for Slack with channel shortcuts and status controls.
- Make an OBS control panel based on my scenes and audio inputs.
- Create a deck for this repository with local command buttons and PR links.

## Similar
- [Scrapling MCP Server](https://affpapa.org/en/nevibecode/mcp/scrapling-mcp-server.md) — MCP server · ★ 89433
- [browser-use](https://affpapa.org/en/nevibecode/mcp/browser-use.md) — MCP server · ★ 119160
- [AIHawk](https://affpapa.org/en/nevibecode/mcp/aihawk.md) — MCP server · ★ 32221
- [Skyvern](https://affpapa.org/en/nevibecode/mcp/skyvern.md) — MCP server · ★ 23263
- [SeleniumBase MCP](https://affpapa.org/en/nevibecode/mcp/seleniumbase-mcp.md) — MCP server · ★ 13169
- [Inbox Zero](https://affpapa.org/en/nevibecode/mcp/inbox-zero.md) — MCP server · ★ 12791

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
