# streamdeck-mcp [Health: Active]

**Category:** 🖥️ OS Automation  
**Repository:** https://github.com/verygoodplugins/streamdeck-mcp  
**GitHub Stars:** 54  
**Views:** 1  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/streamdeck-mcp

## Description
MCP server for Elgato Stream Deck control — set buttons, manage pages, wire actions

## Tools
Capabilities this server exposes over MCP:

- **streamdeck_find_actions** — Searches configured buttons/dials across profiles and returns paste-ready native `action` objects for `streamdeck_write_page`.
- **streamdeck_read_plugins** — Lists installed Stream Deck plugins and declared actions from readable plugin manifests. Protected or binary manifests are reported with diagnostics instead of failing the whole catalog.
- **streamdeck_read_profiles** — Lists desktop profiles, device metadata, page directories, and active profile roots from `ProfilesV3` or `ProfilesV2`.
- **streamdeck_read_page** — Reads a page manifest and returns simplified button details plus raw native action objects.
- **streamdeck_write_page** — Creates or rewrites a page manifest. Prefer `action` from `find_actions` / `button.raw` when reusing configured third-party plugin actions.
- **streamdeck_create_icon** — Generates button or touch-strip PNGs from Material Design Icons or text. Icons are bundled offline; unknown names return close-match suggestions.
- **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.
- **streamdeck_install_mcp_plugin** — Installs the bundled streamdeck-mcp Stream Deck plugin used for durable encoder imagery. Usually auto-installed by `streamdeck_write_page`.

## Claude Desktop Quick Installation
Install path detected from listing signals. Uses `uvx` (confidence: high):

```json
"mcpServers": {
  "streamdeck-mcp": {
    "command": "uvx",
    "args": ["streamdeck-mcp"]
  }
}
```

## Documentation

## What streamdeck-mcp MCP server does

The streamdeck-mcp MCP server connects an MCP client to local Elgato Stream Deck profile data and, on supported setups, the Stream Deck desktop application. It can inspect profile directories, device metadata, page layouts, installed plugin manifests, and actions already configured in the Elgato app. Agents can use that information to create or revise real deck pages rather than producing only a conceptual layout.

The server is intended for workflows such as building a Slack control board, arranging controls for OBS or Home Assistant, creating repository shortcuts, or composing a themed page from existing plugin actions. Other MCP servers may supply application data, while this server handles the Stream Deck profile authoring.

## How it works

The packaged command runs as a stdio MCP server through `uvx streamdeck-mcp`. Profile discovery reads Elgato’s `ProfilesV3` format and falls back to `ProfilesV2` for older installations. Before writing, an agent can inspect hardware geometry, available pages, dials, touch-strip support, and configured actions.

For plugin controls, the streamdeck-mcp MCP server can search existing buttons and dials and return native action objects suitable for reuse. Reading the raw action data helps preserve private settings from third-party or first-party plugins. When no suitable plugin action exists, the server can create an executable shell script and connect it through an Open action.

Profile updates follow a quit, write, and relaunch cycle intended to prevent the Elgato application from overwriting manifest changes. The restart tool specifically restarts the macOS Stream Deck desktop app after edits.

## Setup and configuration

Run the server with:

```bash
uvx streamdeck-mcp
```

Claude Code can register it with `claude mcp add streamdeck -- uvx streamdeck-mcp`. Other stdio clients use a server entry whose command is `uvx` and whose argument is `streamdeck-mcp`. The repository documents configurations for Claude Desktop, Cursor, and OpenAI Codex.

For Claude Code, an optional designer skill can be installed with `uvx --from streamdeck-mcp streamdeck-mcp-install-skill`. It is copied to `~/.claude/skills/streamdeck-designer/` and provides additional guidance for layout, themes, hardware, and plugin-action reuse.

The normal writer expects the Elgato desktop app on macOS or Windows. Linux, headless machines, and direct hardware ownership can use `uvx --from streamdeck-mcp streamdeck-mcp-usb` instead.

## Tools and capabilities

The streamdeck-mcp MCP server exposes tools for:

- Finding reusable configured actions across profiles.
- Listing readable plugin manifests and declared actions, with diagnostics for protected or binary manifests.
- Reading profiles and individual page manifests.
- Creating or replacing pages with native action objects.
- Generating offline PNGs from bundled Material Design Icons or text labels.
- Creating scripts under `~/StreamDeckScripts/` and returning Open action blocks.
- Installing the bundled plugin used for persistent encoder imagery.
- Restarting the macOS Stream Deck application after profile changes.

The bundled plugin is normally installed automatically when a page write needs it. Unknown icon names produce close-match suggestions instead of silently selecting an unrelated icon.

## Limitations and notes

The desktop profile workflow depends on the Elgato Stream Deck application and its local profile files. The documented restart operation is for macOS, while the desktop writer is described for macOS and Windows. Linux and headless use cases require the separate USB entry point.

Plugin discovery only reads manifests that are accessible in readable form; protected or binary manifests are reported with diagnostics. Reusing an action found in an existing page or profile is preferred when plugin settings must remain intact. The material does not specify environment variables or a software license.

_Full upstream README: https://allmcps.com/mcp/streamdeck-mcp/readme_

