Skip to main content
Glama
elgatosf

Elgato MCP Server

Official
by elgatosf

Elgato MCP Server

npm version License: MIT

A Model Context Protocol (MCP) server that bridges AI assistants (like Claude Desktop) with Elgato apps.

Overview

The Elgato MCP Server acts as a protocol bridge between MCP clients and Elgato apps via IPC:

MCP Client <--MCP Transport--> Bridge <--Unix Socket/Named Pipe--> Elgato App

Key Features:

  • 🔌 Dynamic Tool Discovery — Automatically discovers and exposes tools from connected Elgato apps via MCP

  • 🚀 Dual Transport Support — stdio (for Claude Desktop) and HTTP (for web clients)

  • 🌐 ngrok Integration — Optional public tunnel for remote access

  • 🔄 Hot Reconnection — Automatically reconnects when apps become available

  • 💻 Cross-Platform — Supports Windows and macOS

  • 📢 Notification Forwarding — Forwards app notifications to connected MCP clients

Related MCP server: Anki AI MCP Server

Installation

# Global installation (recommended)
npm install -g @elgato/mcp-server

# Or with pnpm
pnpm add -g @elgato/mcp-server

Running without Installation

You can run the Elgato MCP Server directly without installing it globally using npx:

# Run with stdio transport (default)
npx -y @elgato/mcp-server@latest

# Run with HTTP transport
npx -y @elgato/mcp-server@latest --http

# Run with HTTP transport on a custom port
npx -y @elgato/mcp-server@latest --http --port 3000

# Run with ngrok tunnel
NGROK_AUTHTOKEN=your_token npx -y @elgato/mcp-server@latest --http --ngrok

# Run with verbose logging
npx -y @elgato/mcp-server@latest --verbose

This is useful for trying out the server without a permanent installation, or for use in CI/CD environments.

Usage

stdio Transport (Default)

For integration with Claude Desktop or other MCP clients using standard I/O:

elgato-mcp-server

HTTP Transport

For web-based clients or remote access:

# Start HTTP server on default port (9090)
elgato-mcp-server --http

# Custom port
elgato-mcp-server --http --port 3000

# With ngrok tunnel (requires NGROK_AUTHTOKEN env var)
NGROK_AUTHTOKEN=your_token elgato-mcp-server --http --ngrok

CLI Options

Options:
  --transport <mode>  Transport mode: 'stdio' (default) or 'http'
  --http              Shorthand for --transport http
  --port <number>     HTTP server port (default: 9090)
  --ngrok             Enable ngrok tunnel (requires NGROK_AUTHTOKEN env var)
  --help, -h          Show help message
  --verbose, -v       Enable verbose logging (default: silent)

Logging

Logs are written to stderr with a severity label (ERROR, WARN, INFO, DEBUG). Errors and warnings always output; info/debug require --verbose.

Claude Desktop Configuration

The easiest way to install is the packaged desktop extension (.mcpb), which is fully self-contained and runs on the Node.js runtime included with Claude Desktop — no Node.js, npm, or internet access required:

  1. Download the latest elgato_stream_deck-<version>.mcpb from the releases page.

  2. In Claude Desktop, open Settings → Extensions and drag the .mcpb file into the window (or double-click the file).

  3. Make sure the Stream Deck app is running — its tools appear automatically once connected. The built-in bridge_status tool reports the connection state at any time.

Alternatively, add the server to your Claude Desktop configuration file manually:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%\Claude\claude_desktop_config.json

Using Global Installation

{
    "mcpServers": {
        "elgato": {
            "command": "elgato-mcp-server"
        }
    }
}

Using npx (No Installation Required)

Alternatively, you can use npx to run the server without installing it globally:

{
    "mcpServers": {
        "elgato": {
            "command": "npx",
            "args": ["--yes", "@elgato/mcp-server@latest"]
        }
    }
}

Note: The npx-based configuration works with Claude Desktop and other MCP clients that support the stdio transport. The first run may take a moment while npx downloads the package.

HTTP Endpoints

When running in HTTP mode, the following endpoints are available:

Endpoint

Method

Description

/mcp

POST

MCP request endpoint

/mcp

GET

Server-Sent Events (SSE) for streaming

/mcp

DELETE

Close session

/health

GET

Health check endpoint

Requirements

  • Elgato app with MCP plugin support (e.g. Stream Deck)

  • Node.js 18 or later

  • Supported platforms: Windows, macOS

Privacy Policy

This server runs entirely on your machine and communicates only with locally installed Elgato apps over local IPC (Unix sockets on macOS, named pipes on Windows). It does not collect, store, or transmit personal data to external services. Tool inputs and outputs flow between your MCP client (e.g. Claude Desktop) and the connected Elgato app on the same machine; the optional ngrok tunnel is only established when explicitly enabled with --ngrok.

For Elgato/Corsair data handling practices, see the Elgato Privacy Policy.

Contributing

We welcome contributions! For development setup, coding guidelines, and the contribution process, see CONTRIBUTING.md.

For detailed technical documentation and architecture information, see TECHNICAL_SPECIFICATION.md.

License

MIT License - Copyright (c) Corsair Memory Inc.

See LICENSE for details.

Available Tools

1 tool
bridge_statusElgato Bridge StatusA
Read-only

Reports which Elgato apps (e.g. Stream Deck) are currently connected to the bridge and how many of their tools are available. Use this to check whether the Stream Deck app is reachable when expected tools are missing.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotation readOnlyHint: true already signals that this is a safe read operation. The description adds context beyond that by stating exactly what data is reported (connected apps and tool availability), which helps the agent understand the output even without an output schema. No contradiction exists between description and annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with no filler. The first sentence states the core function, and the second provides actionable usage context. Information is front-loaded, and every word contributes. This is an exemplary level of conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter, no-output-schema tool, the description covers both purpose and usage scenario adequately. It tells the agent what to expect from the report (connected apps, tool counts) and when to use it. There are no hidden requirements or side effects implied, so the description is complete for safe invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are zero parameters, so the baseline is 4. The description adds value by indicating what the tool reports, which is effectively the result of no inputs. Since there is no schema to describe, the description compensates by explaining the tool's behavior, which is helpful for the agent.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Reports') and resource ('Elgato apps connected to the bridge') and immediately clarifies the output ('how many of their tools are available'). It also gives an example app (Stream Deck), making the purpose unambiguous. With no sibling tools, differentiation is not needed, but the description still fully describes what the tool does.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The second sentence provides a clear use case: 'Use this to check whether the Stream Deck app is reachable when expected tools are missing.' This tells the agent when to invoke the tool. Since there are no sibling tools, there is no need to specify exclusions or alternatives, so only a slight deduction for not covering broader conditions (e.g., what to do if the bridge itself is down).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 1 tool updatev0.1.5
    • Addedbridge_status

TDQS

A4.2/5.0
Disambiguation5/5

With only one tool, there is no possibility of confusion or overlap. The single tool has a clear, distinct purpose.

Naming Consistency5/5

A single tool named 'bridge_status' follows a clear noun-based naming convention. While there is no pattern to compare, the name is descriptive and internally consistent.

Tool Count3/5

The server exposes only one tool, which feels thin for an Elgato MCP server. It's borderline acceptable for a minimal diagnostic utility, but lacks the breadth expected of a full-featured integration.

Completeness1/5

The tool only checks bridge status, implying the existence of other tools that are missing. For an Elgato server, this is severely incomplete—no device control, app management, or other operational tools are present, leaving the domain mostly uncovered.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Bridges AI assistants to Linux D-Bus for system interaction, enabling clipboard, notifications, screenshots, and service discovery with configurable security levels.
    4
    MIT
  • F
    license
    Not graded
    quality
    C
    maintenance
    Enables AI agents to discover and interact with iOS apps through a local MCP gateway, converting remote Streamable HTTP MCP endpoints into stdio tools. Provides dynamic device discovery, tool schema introspection, and deterministic tool calling for app analysis.
    -

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/elgatosf/elgato-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server