samsung-tv-mcp
Launches the Netflix app on the TV.
Launches the Prime Video app on the TV.
Controls a Samsung Tizen smart TV over the local network, including power on/off, status and health checks, app launch/close, remote key presses, volume control, and opening web pages in the TV browser.
Plays YouTube videos and live streams on the TV, including casting via DIAL when YouTube is already open or not cold-started.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@samsung-tv-mcpPlay BBC News live on my TV"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
samsung-tv-mcp
Control a Samsung smart TV from Claude. Ask Claude on your phone to play BBC News, and it plays on your TV.
This is a small MCP server. It talks to the TV over your home network. No Samsung account, no SmartThings, no cloud.
What Claude can do
Tool | What it does |
| Play any YouTube video or live stream. Claude finds the video, you get it on the TV. |
| Turn the TV on (Wake-on-LAN) or off. |
| Open YouTube, Netflix, Prime Video, Disney+ and others. |
| Check the TV is reachable, responsive and authorized, and flag apps running in the background. |
| Close apps running in the background. |
| Close one app. |
| Power state, foreground app, running apps. |
| Send any remote key: Home, Back, arrows, Play, Pause, HDMI1. |
| Volume up, down, mute. |
| Open a web page in the TV browser. |
| Installed apps the server knows about. |
Related MCP server: Samsung TV MCP Server
Requirements
A Samsung Tizen TV, 2016 or newer. Tested on a 2020 UN50TU7000 (firmware T-KTSU2AKUC-2743.0).
A Mac or Linux machine on the same network as the TV. Windows should work but isn't tested.
Python 3.10 or newer.
Claude Desktop or Claude Code.
Prepare the TV
Enable Settings > General > Network > Expert Settings > Power On with Mobile. Claude needs this to turn the TV on.
Give the TV a fixed IP. A DHCP reservation on your router is best. If you set it by hand on the TV, use your router's IP for both Gateway and DNS, or the TV says the gateway is invalid.
Optional. Stop Samsung from opening apps at startup: Settings > General > Smart Features, then disable Autorun Samsung TV Plus, Autorun Smart Hub and Autorun Last App.
Install
Keep the TV on and the remote in hand.
git clone https://github.com/dwdas9/samsung-tv-mcp.git
cd samsung-tv-mcp
bash setup.sh # finds the TV on your network
# or
bash setup.sh 192.168.1.50 # if you know its IPThe TV shows an Allow prompt. Accept it. The script saves an auth token in tv-token.txt and your TV details in tv_config.json. Both are git-ignored.
At the end, the script prints the config you need.
Claude Desktop: open Settings > Developer > Edit Config. Add the samsung-tv entry inside your existing mcpServers block. Quit and reopen Claude Desktop.
{
"mcpServers": {
"samsung-tv": {
"command": "/path/to/samsung-tv-mcp/.venv/bin/python",
"args": ["/path/to/samsung-tv-mcp/server.py"]
}
}
}Claude Code:
claude mcp add --scope user samsung-tv -- /path/to/samsung-tv-mcp/.venv/bin/python /path/to/samsung-tv-mcp/server.pyUse it from your phone
Claude on your phone reaches local MCP servers through your computer. So:
Link the chat to your computer.
Keep the computer awake with Claude Desktop open. On a Mac: System Settings > Battery > Options > Prevent automatic sleeping when the display is off.
Then ask things like:
"Play BBC News live on my TV"
"Is my TV running OK?"
"Close background apps on the TV"
"Turn off the TV"
Gotchas I hit
These cost me the most time. None of them were in the docs I found.
1. Claude Desktop's proxy breaks LAN calls. Claude Desktop can start MCP servers with proxy environment variables. Python's urllib honours them and sends http://192.168.x.x to a proxy that can't reach your home network. The call fails in about 20 ms and looks like the TV is off. The server now bypasses proxies for all TV calls.
2. macOS Local Network permission. Since macOS Sequoia, every app needs permission to talk to devices on your LAN. Terminal had it. My browser didn't. If something can't reach the TV, check System Settings > Privacy & Security > Local Network.
3. YouTube ignores deep links when it's already open. The Tizen run_app deep link (v=VIDEO_ID) only works on a cold start. If YouTube is open, or sitting on the "Who's watching?" profile screen, the link is dropped. The fix is DIAL, the same path the YouTube phone app uses to cast: POST http://TV:8080/ws/apps/YouTube with body v=VIDEO_ID.
4. DIAL returns 403 without an Origin header. Add Origin: https://www.youtube.com and it returns 200.
5. mcp 2.x renamed FastMCP. from mcp.server.fastmcp import FastMCP fails on 2.x. This repo pins mcp<2.
6. Nested mcpServers. If Claude Desktop says "entries ... are not valid MCP server configurations and were skipped: mcpServers", you pasted a whole "mcpServers": {...} block inside the existing one. Keep one level.
7. The TV won't list installed apps. The ed.installedApp.get WebSocket call hangs on my 2020 firmware. So the server checks apps by ID from tv_config.json. Add any app you care about there. A 404 means it isn't installed.
Health check limits
The TV API reports power state and, per app, whether it's running and visible. It doesn't report CPU, memory or a full process list. tv_health_check only knows about apps listed in tv_config.json. Samsung's own built-ins are hard to cover because their IDs vary by model and region.
Security
tv-token.txtlets anything on your network control the TV. Keep it private.The TV's REST API on port 8001 has no auth. Anyone on your Wi-Fi can read its status. That's Samsung's design, not this server's.
The server only talks to the TV's IP. It doesn't open any port.
How it works
Port | Used for |
8001 | REST. Device info, power state, app status, close app. No auth. |
8002 | Secure WebSocket. Remote keys, launch apps, open browser. Token auth. |
8080 | DIAL. Cast a video into YouTube. |
UDP 9 | Wake-on-LAN magic packet. |
Built on samsungtvws and the MCP Python SDK.
License
MIT
This server cannot be deployed
Maintenance
Related MCP Connectors
Control Android TV from any AI. 38 MCP tools: playback, recap, recommend, smart-home, schedules.
Give your AI agent the power to cast to your home TV and control an interactive canvas. By ArdaBot.
Teamfight Tactics data & AI coaching for Claude and ChatGPT — 19 tools, built-in Riot key.
Deploy sims to any screen. Control your displays with Claude.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceTurns AI assistants like Claude and ChatGPT into a remote control for LG webOS smart TVs, enabling power control, volume, app launching, input switching, and more, all locally without cloud APIs.2MIT
- AlicenseNot gradedqualityDmaintenanceA Model Context Protocol server that lets AI assistants control Samsung Smart TVs (Tizen OS, 2016+) over the local network. No cloud, no SmartThings account required.1MIT
- FlicenseNot gradedqualityDmaintenanceTurns any Claude-compatible AI chat into a universal remote for Android TV and Google TV via a cloud relay, enabling natural language control of your TV from anywhere.-
- AlicenseNot gradedqualityCmaintenanceEnables discovering, pairing with, and controlling Samsung Tizen TVs on a local network.2 npmMIT