Streamdeck MCP logo

Streamdeck MCP

Controls local Elgato Stream Deck profiles with MCP tools for pages, actions, icons, scripts, dials, and touch strips.

Install Streamdeck MCP

Pick your client, then add it in one click or paste the config.

STDIOPython
~/Library/Application Support/Claude/claude_desktop_config.json
claude_desktop_config.json
{
  "mcpServers": {
    "streamdeck-mcp": {
      "command": "uvx",
      "args": [
        "streamdeck-mcp"
      ]
    }
  }
}

Settings → Developer → Edit Config, merge this into mcpServers, then fully quit and reopen Claude Desktop.

We couldn’t confirm it starts correctly

We ran the install command but it didn't respond within our test window — this can mean a slow first-time install rather than a real problem.

uvx streamdeck-mcp

Process exited before answering initialize.

This is an experimental automated check and can have false negatives — missing environment variables, a slow cold install, etc. It doesn’t necessarily mean something’s wrong. Last checked 6d ago.

Overview

streamdeck-mcp MCP server lets MCP-compatible agents read and rewrite local Elgato Stream Deck profiles. It discovers devices, pages, installed plugins, and configured actions, then writes native profile manifests, generates icons, and creates shell-backed controls. Use it when an agent needs to build or reconfigure a physical Stream Deck without developing a custom plugin first. The default desktop-app workflow targets macOS and Windows; a separate USB entry point is available for Linux or headless setups.

Use cases

  • Build a themed Stream Deck page for Slack or OBS
  • Reuse configured plugin actions across profile pages
  • Create shell-backed buttons for local commands
  • Generate icons and touch-strip artwork offline
  • Inspect device layouts before authoring a profile

Key features

  • Reads ProfilesV3 and ProfilesV2 profile data
  • Finds reusable configured plugin actions
  • Writes native Stream Deck page manifests
  • Generates offline icons from MDI names or text
  • Creates executable shell-backed Open actions
  • Supports dials and touch-strip imagery

Tools9

What Streamdeck MCP lets your agent do. Expand a tool for its parameters.

Self-reported~328 tokens of context

Security & health

What it can reach and how reliably it runs — from our own checks, not the maintainer’s claims.

ActiveLast checked 1d ago

Recent health check succeeded.

10/10 checks healthy over the last 50d

Supply-chain signal

No high-severity advisories surfaced by our automated scan.

Critical 0High 0Medium 0Low 0

Scanned 12d ago via OSV.dev · streamdeck-mcp (PyPI)

Adoption & maintenance

Factual signals from GitHub, npm, and our automated checks — not a rating.

GitHub stars54Stargazers on the source repository.
Last commit2mo agoMost recent push to the default branch.
Install checkInconclusiveDidn't respond in our test window — often a slow first install.
Tools exposed9Callable tools this server registers over MCP.
Directory activity1 viewsConfig copies, upvotes, and views on AllMCPs.

How Streamdeck MCP works

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.

Reviews

No reviews yet — be the first to share how it worked for you.

Frequently Asked Questions about Streamdeck MCP

streamdeck-mcp is an MCP server that connects MCP clients to local Elgato Stream Deck profiles and the desktop app workflow. Its main tools read and write pages, discover plugins and configured actions, generate icons, create shell-backed actions, restart the macOS app, and install the bundled plugin for encoder imagery.

Install it by registering `uvx streamdeck-mcp` as a stdio MCP server. Claude Code uses `claude mcp add streamdeck -- uvx streamdeck-mcp`; Claude Desktop, Cursor, Codex, and other compatible clients can use `uvx` with `streamdeck-mcp` as its argument.

Yes, streamdeck-mcp works with Cursor through its stdio MCP configuration. Add a server named `streamdeck` with command `uvx` and the argument `streamdeck-mcp` to Cursor’s MCP configuration.

Yes, Linux and headless setups can use the legacy USB server entry point. Run `uvx --from streamdeck-mcp streamdeck-mcp-usb` and configure the client with that command instead of the default desktop profile writer.

Related MCP servers

Add a badge to your READMEShow it’s listed — live SVG, Markdown or HTML.

AllMCPs Directory Badge

Full Badge Customizer

Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.

Badge Style:
Live Dynamic SVG PreviewStreamdeck MCP AllMCPs Directory Badge
Markdown (GitHub README)
[![AllMCPs](https://allmcps.com/api/badge/streamdeck-mcp?style=directory)](https://allmcps.com/mcp/streamdeck-mcp)
HTML Embed
<a href="https://allmcps.com/mcp/streamdeck-mcp"><img src="https://allmcps.com/api/badge/streamdeck-mcp?style=directory" alt="Streamdeck MCP on AllMCPs" /></a>