list_local_hardwareLABSCO SUMMARY
It tells you what the device can do before you send it something it cannot play.
Casting fails in boring ways — wrong codec, a DLNA renderer that will not take a playlist URL — and this returns capabilities and limitations per device up front, so the choice is informed rather than trial and error. Stable device IDs matter for the same reason: the follow-up calls address a session and a device, not a name that might have shifted. --self-test before wiring a client is a nice touch, and the first go run is slower because the module has to build.
What it is
A stdio server for casting to Chromecast and DLNA/UPnP renderers on your LAN. It discovers devices, starts playback, and holds a session you can pause, seek and stop.
What you get
- Seven tools:
list_local_hardware,beam_media,get_beaming_status,play_beaming,pause_beaming,seek_beamingandstop_beaming list_local_hardwarereturns stable device IDs plus name, type, address, protocol and per-device capabilities — whether it takes files, URLs or HLS.m3u8beam_mediatakes an absolute local path or an http/https URL, a target device, and optionalsubtitles_path(.srt or .vtt) andstart_seconds;transcodeis auto, always or neverseek_beamingaccepts a percent or an absolute position; the session ID frombeam_mediaaddresses every follow-up call- Protocol differences are reported rather than hidden — Chromecast casts
.m3u8directly, DLNA rejects it with structured limitation details and falls back from direct to proxy for other sources - Errors are structured with remediation hints; if transcoding is needed and ffmpeg is missing, you get
FFMPEG_NOT_FOUNDrather than a silent failure
Requirements
Go 1.26 or newer if you run it with go run go2tv.app/mcp-beam@latest, build it locally, or install with claude mcp add. A downloaded release binary needs no Go at all. ffmpeg and ffprobe are optional for direct-play paths and recommended otherwise. --self-test and --version verify the wiring before you connect a client.
Setup effort
One command — go run go2tv.app/mcp-beam@latest
USE CASES
Putting a local video on the TV
Discover the devices, pick one, and beam the file with subtitles attached.
Controlling what is playing
Pause, resume, seek to a position and stop, all against the session you started.
Picking the right renderer
Read each device's capabilities and limitations before sending a URL it cannot handle.
Resuming where you left off
Start at an offset instead of scrubbing from the beginning.
7 tools
Listed in project docs. Your client may show a different list.
beam_mediaget_beaming_statusplay_beamingpause_beamingseek_beamingstop_beamingBEFORE YOU INSTALL
What to know first
Tools you get
7 tools named in the project's documentation.
Requires
go on PATH
INSTALLATION
Connect your client
Server setup
go run go2tv.app/mcp-beam@latestMCP Clients
Claude Code
claude mcp add --scope user mcp-beam -- go run go2tv.app/mcp-beam@latestCodex
codex mcp add mcp-beam -- go run go2tv.app/mcp-beam@latestGemini CLI
gemini mcp add mcp-beam go run go2tv.app/mcp-beam@latestAny MCP client — go run
{
"mcpServers": {
"mcp-beam": {
"command": "go",
"args": [
"run",
"go2tv.app/mcp-beam@latest"
]
}
}
}