How to Build a Live Screen Status Dashboard with an AI Assistant?
Have Claude or ChatGPT collect your player status through the EasySignage MCP server every few minutes and show it on a digital signage dashboard.
How does the dashboard work?
The AI assistant calls the read-only list_displays tool, which returns each player’s online status, power state, platform, software version, current playlist, and licence state. It turns that into a full-screen dashboard you play on a screen. You can let Claude build and host the dashboard, or host a ready-made one yourself.
What do I need before I start?
- An EasySignage Premium or Enterprise plan
- An AI assistant connected to EasySignage with Read only access to Screens
How do I let Claude build and host the dashboard?
- In a Claude chat with the EasySignage connector on, ask: “Build a full-screen player status dashboard for a 1920x1080 signage screen from my EasySignage players, refresh it every 5 minutes, and publish it”
- Claude builds the page and publishes it with a claude.ai link
- Ask for changes in the same chat, such as “use a dark theme” or “group the screens by city”, and Claude updates the same link
- In EasySignage, add the link as a web page in a playlist, assign it to your operations screen, and publish
Claude pages are private by default. Open the link on the player itself to check that it loads without signing in to Claude, and that the numbers update on their own.
How do I host the dashboard myself?
You need a static web host for two files, such as GitHub Pages, Netlify, or Amazon S3, and an assistant that can repeat a task, such as Claude Code or a scheduled task in your AI app.
- Download
index.htmlfrom the Digital Signage AI Assistant MCP repository - Ask the assistant: “Build my player status report and save it as status.json”
- Upload
index.htmlandstatus.jsonto the same folder on your web host - Set the assistant to repeat the report every 5 minutes and upload the new
status.json. In Claude Code,/loop 5mdoes this while the session is open - In EasySignage, add the dashboard URL as a web page in a playlist, assign it to your operations screen, and publish
The page reads status.json every minute, holds no API keys, and shows a warning if no new data arrives for 15 minutes.
How often should it refresh?
Every 5 minutes means 288 runs a day. If your screens change slowly, 10 to 15 minutes is usually enough. On the self-hosted dashboard, add ?stale=30 to the URL to move the warning threshold to match.