ultra mcp ss
A FastAPI-based MCP server that integrates with smartscreen.tv, allowing you to programmatically control web displays by displaying media, sending notifications, and controlling playback via HTTP commands.
A FastAPI-based MCP server that integrates with smartscreen.tv, allowing you to programmatically control web displays by displaying media, sending notifications, and controlling playback via HTTP commands.
ultra/mcp-ss is a FastAPI-based MCP server that integrates with smartscreen.tv, a web display service, allowing you to programmatically manipulate the screen (e.g., display media, send notifications, control playback) via simple HTTP/MCP commands.
## Table of Contents - [What is SmartScreen?](#what-is-smartscreen) - [Prerequisites](#prerequisites) - [Configuration](#configuration) - [Running Locally](#running-locally) - [Docker](#docker) - [API Endpoints](#api-endpoints) - [Health & Search](#health--search) - [SmartScreen Commands (HTTP)](#smartscreen-commands-http) - [MCP Tool Integration](#mcp-tool-integration) - [Using MCP Proxy for Clients Without SSE Support](#using-mcp-proxy-for-clients-without-sse-support-claude-desktop) - [Setting up MCP-SS in Langflow](#setting-up-mcp-ss-in-langflow) - [Contributing](#contributing) |
|
SmartScreen is a web-based screening service.
Content across multiple displays and locations can be controlled remotely. Simply add the MCP tool to your AI app.
SmartScreen setup:
1. Access SmartScreen through URL: smartscreen.tv
* On Linux, SmartScreen can be installed via snapcraft.
2. Click the menu button on the top-left corner to reach
Settings. Here you can name your device, add tags, and set up OnStart and other scheduled events.
* Don’t forget to click “Save” after making any changes.
3. Click SmartScreen to return to the Home Page.
Create a .env
file or export environment variables:
- YOUTUBE_API_KEY – your Google YouTube Data API v3 key
- SS_SERVICE_TOKEN – SmartScreen service token
Example .env
:
YOUTUBE_API_KEY=AIzaSy...
SS_SERVICE_TOKEN=xxxxx
or export them:
export YOUTUBE_API_KEY=AIzaSy...
export SS_SERVICE_TOKEN=xxxxx
uvicorn main:app --reload --host 0.0.0.0 --port 8000
docker build -t ultra-mcp-ss .
docker run -d --name ultra-mcp-ss -p 127.0.0.1:8000:8000 ultra-mcp-ss
Base URL: http://127.0.0.1:8000
HEAD /mcp
– health check for MCP GET /search-youtube?query=...
– returns the most relevant YouTube video URLEndpoint | Description |
---|---|
POST /drop | Drop media URL onto a screen frame |
POST /notify | Send a notification banner |
POST /toast | Show a toast popup message |
POST /marquee | Display scrolling marquee text |
POST /text | Render static text overlay |
POST /app | Launch a web app in a frame |
POST /touch | Send playback/control commands |
POST /status | Query or set system status |
POST /dj | Execute DJ tasks: scheduling, kiosk, restart, logo |
Refer to OpenAPI docs at http://<host>:8000/docs
for request/response schemas.
FastApiMCP automatically mounts all endpoints as MCP tools under /mcp
.
Use your MCP client to invoke tools by name (e.g., drop
, notify
, toast
, etc.).
Install mcp-proxy:
uv pip install --user mcp-proxy #for Python
npm install -g mcp-proxy #for Node.js
pnpm add -g mcp-proxy #for Node.js
On Windows:
Edit claude_desktop_config.json
:
{
"mcpServers": {
"ultra-mcp-ss": {
"command": "mcp-proxy",
"args": ["http://0.0.0.0:8000/mcp"]
}
}
}
On MacOS:
Get the path to mcp-proxy
:
which mcp-proxy
Edit claude_desktop_config.json
:
{
"mcpServers": {
"ultra-mcp-ss": {
"command": "/YOUR/PATH/TO/mcp-proxy",
"args": ["http://0.0.0.0:8000/mcp"]
}
}
}
To integrate ultra-mcp-ss with Langflow:
http://0.0.0.0:8000/mcp
http://127.0.0.1:8000
if running using Docker.Once connected, you can use all SmartScreen commands within your Langflow workflows.
Made with FastAPI & FastApiMCP