How elgatosf/elgato-mcp-server works
Elgato MCP Server bridges MCP clients to locally running Elgato apps over IPC. The principal workflow selects stdio or HTTP, routes MCP tool/resource requests through the bridge and client manager, and forwards them to the connected app; discovered capabilities and app notifications flow back to MCP clients. The graph also preserves reconnection, HTTP sessions, and optional ngrok access. Source excerpts show the main orchestration and request paths; additional capabilities are included where documented in the README.
Main entry points: McpBridge.ts MCP bridge · http.ts HTTP transport · ClientManager.ts Client manager · index.ts CLI entry
Components 14
Server entry
- CLI entry
src/index.ts - stdio transport
src/transports/stdio.ts - Naming and CLI utilities
src/utils.ts
MCP bridge
- MCP bridge
src/McpBridge.ts - IPC and MCP types
src/types.ts
App connectivity
- Client manager
src/ClientManager.ts - IPC client
src/IpcClient.ts - Tool and resource discovery
src/ClientManager.ts - App notifications
src/ClientManager.ts
HTTP access
- HTTP transport
src/transports/http.ts - HTTP sessions
src/transports/http.ts - ngrok tunnel
Other components
- MCP client
- Elgato app
Connections 19
- MCP client → stdio transport: uses stdio
README.md - MCP client → HTTP transport: sends MCP requests
README.md - CLI entry → stdio transport: selects transport
src/index.ts - CLI entry → HTTP transport: selects transport
src/index.ts - CLI entry → Naming and CLI utilities: parses options
src/index.ts - stdio transport → MCP bridge: creates connected bridge
src/transports/stdio.ts - HTTP transport → MCP bridge: creates initialized bridge
src/transports/http.ts - HTTP transport → HTTP sessions: manages sessions
src/transports/http.ts - HTTP transport → ngrok tunnel: opens optional tunnel
src/transports/http.ts - MCP bridge → Client manager: delegates app operations
src/McpBridge.ts - Client manager → IPC client: creates and calls clients
src/ClientManager.ts - IPC client → Elgato app: exchanges IPC messages
README.md - Client manager → Tool and resource discovery: refreshes capabilities
src/ClientManager.ts - Tool and resource discovery → IPC client: requests tool lists
src/ClientManager.ts - Elgato app → App notifications: sends notifications
README.md - App notifications → MCP bridge: forwards notifications
README.md - MCP bridge → MCP client: forwards app updates
README.md - MCP bridge → IPC and MCP types: uses protocol types
src/McpBridge.ts - Client manager → Naming and CLI utilities: converts and prefixes names
src/ClientManager.ts