Elgato MCP ServerSAFE
A Model Context Protocol (MCP) server that provides automation capabilities with Elgato apps.
Overview
From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.
[](https://www.npmjs.com/package/@elgato/mcp-server) [](https://opensource.org/licenses/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 Bridge 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
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
##
18659d0279dbOBSERVED · 2026-10-10Connect
Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control.
claude mcp add mcp-server -- npx -y @elgato/[email protected]
{
"mcpServers": {
"mcp-server": {
"command": "npx",
"args": [
"-y",
"@elgato/[email protected]"
]
}
}
}Exposed tools (11)
10 read · 0 write · 1 destructive. Blast radius: 1 tool can delete or overwrite — an agent that can be talked into calling a tool can be talked into calling this one.
| Tool | Risk | Description |
|---|---|---|
app_status | read | Current status: uptime, connections, notes count. |
bridge_status | read | 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. |
echo | read | Echoes back the provided text. Useful for basic connectivity testing. |
failing_tool | read | Always returns an error. Use to test error handling. |
get_weather | read | Fetches current or forecast weather from wttr.in. Uses elicitation to ask for city and time range. |
notes | destructive | Simple note-taking tool. Add, list, or delete notes. |
readme | read | Description of the example app and its tools. |
slow_operation | read | Waits for N seconds then returns. Use to test timeout behavior. |
test_resource | read | A test resource |
test_tool | read | A test tool |
tool1 | read | A tool |
Trust audit
SAFEgrade B · trust 89/100 Nothing in the source contradicts what it says it does. Grade A is reserved for packages that have also passed the behavioural sandbox.
| Layer | What it checks | Result |
|---|---|---|
| L0 | Provenance & inventory | PASS |
| L1 | Static analysis of the code | PASS |
| L2 | Instruction surface (what it tells the agent) | PASS |
| L3 | Class-specific surface | WARN |
| L4 | Behavioural (sandbox) | SKIPPED |
What the source does
- Filesystem
- declared (1 observation(s))
- Network
- none-observed
- Shell
- none-observed
- Dependencies
- not all pinned
- Secrets in source
- none-found
Findings (12)
notes
import type { ClientManager } from "../../ClientManager.js";import type { IpcClient } from "../../IpcClient.js";import type { McpBridge } from "../../McpBridge.js";import type { CallToolResponse, McpResource, McpTool, ServerInfo, ToolsListResponse } from "../../types.js";import { McpBridge } from "../../McpBridge.js";Origin: "http://127.0.0.1:8080",
expect(response.headers.get("access-control-allow-origin")).toBe("http://127.0.0.1:8080");Origin: "http://127.0.0.1",
expect(response.headers.get("access-control-allow-origin")).toBe("http://127.0.0.1");@modelcontextprotocol/sdk, @ngrok/ngrok, cors, express, @changesets/cli, @elgato/eslint-config, @elgato/prettier-config, @types/cors
Always use Context7 MCP when I need library/API documentation, code generation, setup or configuration steps without me having to explicitly ask.
Gates applied: no_behavioural_pass.
18659d0279dbfull audit observations/trust-audit/mcp-server/elgatosf__elgato-mcp-server.json · Report an issue / request a re-scanAudit history
Every audit this server has had. A grade with a past is a grade somebody is still checking.
| Date | Source | Verdict | Grade | Score | Change |
|---|---|---|---|---|---|
| 2026-10-10 | 18659d0279db | SAFE | B | 89 | first audit |
Questions
What is the @elgato/mcp-server MCP server?
A Model Context Protocol (MCP) server that provides automation capabilities with Elgato apps.
What tools does @elgato/mcp-server expose?
11 in total: 10 read-only, 0 that write, and 1 that can delete or overwrite (notes). Every one is listed on this page with its risk.
Is @elgato/mcp-server safe to connect to an agent?
The audit found nothing in the source that contradicts what it says it does, and graded it B (89/100). Grade A is held back for packages that have also passed a sandboxed behavioural run, which is why a clean server reads B. Separately from the audit: 1 of its tools can destroy data, so scope the token you give it to what you actually need.
What credentials does @elgato/mcp-server need?
No credential environment variables were found in its source, so it appears to need none.
How does @elgato/mcp-server run?
It speaks stdio and streamable-http, so it runs as a local process your client starts. It is published on npm as @elgato/mcp-server at 0.1.8.
How current is this page?
The grade is for one exact copy of the source (18659d0279db), read on 2026-10-10. The repository is watched and re-audited when it changes.