Cast

Servidor MCP para Google Cast — descubra dispositivos, reproduza mídia, controle o volume, inicie aplicativos e gerencie filas via stdio

Documentação

cast-mcp

Servidor MCP para Google Cast — descubra dispositivos na sua rede local via mDNS, reproduza mídia, controle o volume, inicie aplicativos e gerencie filas, tudo via stdio. Não são necessárias variáveis de ambiente ou chaves de API; o servidor se conecta diretamente aos receptores Cast usando o protocolo castv2.

Instalação

bunx @daanrongen/cast-mcp

Ferramentas (17 no total)

DomínioFerramentasCobertura
Descobertadiscover_devicesEscaneia a rede local em busca de dispositivos com Cast via mDNS
Mídiaplay_media, pause, resume, stop, seek, get_media_statusControle de reprodução e status da mídia
Filaload_queue, queue_next, queue_prevEnfileiramento de playlists e navegação
Aplicativosget_status, launch_app, stop_appCiclo de vida de aplicativos nos receptores Cast
Volumeget_volume, set_volume, mute, unmuteControle de volume e mudo

Configuração

Claude Desktop

Edite ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "cast": {
      "type": "stdio",
      "command": "bunx",
      "args": ["@daanrongen/cast-mcp"]
    }
  }
}

Claude Code CLI

claude mcp add cast -- bunx @daanrongen/cast-mcp

Desenvolvimento

bun install
bun run dev        # run with --watch
bun test           # run test suite
bun run typecheck  # type check without emitting
bun run build      # bundle to dist/main.js
bun run inspect    # open MCP Inspector in browser

Inspeção local

bun run inspect inicia o MCP Inspector contra a build local:

bun run build && bun run inspect

Isso abre a interface do Inspector no seu navegador, onde você pode chamar qualquer ferramenta interativamente e inspecionar os formatos de requisição e resposta.

Arquitetura

src/
├── config.ts                   # (no env config required)
├── main.ts                     # Entry point — ManagedRuntime + StdioServerTransport
├── domain/
│   ├── CastClient.ts           # Context.Tag service interface (port)
│   ├── errors.ts               # CastError, DeviceNotFoundError
│   ├── models.ts               # Schema.Class models (CastDevice, MediaStatus, …)
│   ├── discovery.test.ts       # Discovery domain tests
│   ├── media.test.ts           # Media domain tests
│   └── volume.test.ts          # Volume domain tests
├── infra/
│   ├── CastClientLive.ts       # Layer.scoped — mDNS discovery + castv2 connections
│   └── CastClientTest.ts       # In-memory test adapter
└── mcp/
    ├── server.ts               # McpServer wired to ManagedRuntime
    ├── utils.ts                # formatSuccess, formatError
    └── tools/                  # discovery.ts, media.ts, queue.ts, apps.ts, volume.ts

Licença

MIT