{"_id":"@cast-hub/mcp","_rev":"2-391911745d1401253eac532ad0fbf926","name":"@cast-hub/mcp","dist-tags":{"latest":"0.1.1"},"versions":{"0.1.0":{"name":"@cast-hub/mcp","version":"0.1.0","keywords":["mcp","model-context-protocol","digital-signage","casthub","claude","ai-agents"],"author":{"name":"CastHub"},"license":"MIT","_id":"@cast-hub/mcp@0.1.0","maintainers":[{"name":"casthubowner","email":"dan@cast-hub.com"}],"homepage":"https://cast-hub.com/mcp","bugs":{"url":"https://github.com/Cast-Hub/mcp-server/issues"},"bin":{"casthub-mcp":"dist/index.js"},"dist":{"shasum":"28fdade2a39db1d8d526e9475342ba036b2a10a8","tarball":"https://registry.npmjs.org/@cast-hub/mcp/-/mcp-0.1.0.tgz","fileCount":15,"integrity":"sha512-ea+x5h0v23t550gkOBbU8jTJEKzCJBWpmwqLSl42SownPfhSST1En53ZR8nKQUOwXTcKrw/u2yI0EeYccNoE3Q==","signatures":[{"sig":"MEQCIB/CMlAPLKSkEwH49i/f5es+O95ppYdwAWq/13lk/ZMFAiBIONTlgFfA4NovOja2LqPua36AWN5R97TwBLhCj9263A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":19121},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"gitHead":"f151f20645da1fe3f0ca378f759574c50075ffa8","mcpName":"io.github.cast-hub/mcp","scripts":{"lint":"tsc --noEmit","test":"node --test --import tsx ./tests/*.test.ts","build":"tsc","start":"node dist/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"casthubowner","email":"dan@cast-hub.com"},"repository":{"url":"git+https://github.com/Cast-Hub/mcp-server.git","type":"git"},"_npmVersion":"11.12.1","description":"MCP server for CastHub digital signage. Manage TV fleets, presentations, schedules, and emergency alerts from any MCP client.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","typescript":"^5.6.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp_0.1.0_1778072916022_0.1696737290349033","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@cast-hub/mcp","version":"0.1.1","mcpName":"io.github.Cast-Hub/mcp","description":"MCP server for CastHub digital signage. Manage TV fleets, presentations, schedules, and emergency alerts from any MCP client.","keywords":["mcp","model-context-protocol","digital-signage","casthub","claude","ai-agents"],"homepage":"https://cast-hub.com/mcp","repository":{"type":"git","url":"git+https://github.com/Cast-Hub/mcp-server.git"},"bugs":{"url":"https://github.com/Cast-Hub/mcp-server/issues"},"license":"MIT","author":{"name":"CastHub"},"type":"module","main":"./dist/index.js","types":"./dist/index.d.ts","bin":{"casthub-mcp":"dist/index.js"},"engines":{"node":">=18"},"scripts":{"build":"tsc","prepublishOnly":"npm run build","start":"node dist/index.js","test":"node --test --import tsx ./tests/*.test.ts","lint":"tsc --noEmit"},"dependencies":{"@modelcontextprotocol/sdk":"^1.29.0"},"devDependencies":{"@types/node":"^22.0.0","tsx":"^4.19.0","typescript":"^5.6.0"},"gitHead":"f151f20645da1fe3f0ca378f759574c50075ffa8","_id":"@cast-hub/mcp@0.1.1","_nodeVersion":"24.15.0","_npmVersion":"11.12.1","dist":{"integrity":"sha512-a7YlV2Rb4r5kohk4gAYTQ7oFolR+KzQe8XAdu/RApIV6KsyIXVO/DONjhR9wENcNFmMfMx/4TaPauBBJAVAOiw==","shasum":"b38d48032f4a3468f727f3f4d335b38a5a905be0","tarball":"https://registry.npmjs.org/@cast-hub/mcp/-/mcp-0.1.1.tgz","fileCount":15,"unpackedSize":19121,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCtGR7D6Xnns1NexwAkSmQHPTNiSQQXpiDl56ArpGlfyAIhAIdPo816abTZQEzUfo4NBXnjOThfDhJ3YCWOtRp9gTiw"}]},"_npmUser":{"name":"casthubowner","email":"dan@cast-hub.com"},"directories":{},"maintainers":[{"name":"casthubowner","email":"dan@cast-hub.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mcp_0.1.1_1778074740051_0.4020955022270656"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-06T13:08:35.916Z","modified":"2026-05-06T13:39:00.330Z","0.1.0":"2026-05-06T13:08:36.180Z","0.1.1":"2026-05-06T13:39:00.209Z"},"bugs":{"url":"https://github.com/Cast-Hub/mcp-server/issues"},"author":{"name":"CastHub"},"license":"MIT","homepage":"https://cast-hub.com/mcp","keywords":["mcp","model-context-protocol","digital-signage","casthub","claude","ai-agents"],"repository":{"type":"git","url":"git+https://github.com/Cast-Hub/mcp-server.git"},"description":"MCP server for CastHub digital signage. Manage TV fleets, presentations, schedules, and emergency alerts from any MCP client.","maintainers":[{"name":"casthubowner","email":"dan@cast-hub.com"}],"readme":"# CastHub MCP Server\n\n> Model Context Protocol server for digital signage. Manage TV fleets, presentations, schedules, and emergency alerts from Claude, Cursor, ChatGPT, or any MCP client.\n\n[![npm version](https://img.shields.io/npm/v/@cast-hub/mcp.svg)](https://www.npmjs.com/package/@cast-hub/mcp)\n[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)\n\n![CastHub MCP demo](./docs/demo.gif)\n\n<!-- TODO: replace placeholder demo.gif with a real recording -->\n\n## What this is\n\nCastHub MCP Server lets AI assistants directly control digital signage networks. Instead of clicking through a dashboard, you tell Claude to update the lobby TV, push an emergency alert to all stores, or schedule next week's promotional content. The server exposes 30+ tools covering devices, presentations, schedules, alerts, and groups across the CastHub platform.\n\n## Why this exists\n\nDigital signage management is repetitive, multi-step work that maps cleanly to natural language. Several signage platforms (Fugo, Revel Digital, Screenly) have shipped MCP support over the last year. CastHub MCP differentiates on hosted endpoint architecture (no local install required for the basic path), a governance layer with preview-confirm-rollback for safe agent use, and native Amazon Signage Stick integration.\n\n## Two ways to connect\n\n### Option A: Hosted endpoint (recommended)\n\nNo installation required. Add the CastHub MCP server to your Claude Desktop, Cursor, or other MCP client config:\n\n```json\n{\n  \"mcpServers\": {\n    \"casthub\": {\n      \"url\": \"https://api.cast-hub.com/mcp\",\n      \"auth\": {\n        \"type\": \"bearer\",\n        \"token\": \"YOUR_CASTHUB_API_KEY\"\n      }\n    }\n  }\n}\n```\n\nGenerate your API key at [dashboard.cast-hub.com](https://dashboard.cast-hub.com/).\n\n### Option B: Install the SDK locally\n\nFor MCP clients that require a local stdio process:\n\n```bash\nnpm install -g @cast-hub/mcp\n```\n\nThen configure your client:\n\n```json\n{\n  \"mcpServers\": {\n    \"casthub\": {\n      \"command\": \"casthub-mcp\",\n      \"env\": {\n        \"CASTHUB_API_KEY\": \"your-api-key-here\"\n      }\n    }\n  }\n}\n```\n\nThe SDK forwards MCP protocol calls to the CastHub hosted endpoint. All tool execution happens server-side; the SDK is a transport shim.\n\n## Available Tools (30+)\n\n### Devices\n\n| Tool name | Description |\n|---|---|\n| get_devices | List all devices grouped by device group |\n| update_device | Update a device's name |\n| delete_device | Delete a device by ID |\n| change_device_group | Move a device to a different group |\n| issue_device_command | Send a remote command to an Amazon Signage Stick |\n| get_device_commands | List recent remote commands and their status |\n| create_device_command_schedule | Create a recurring command plan for a device group |\n| get_device_command_schedules | List command plans for a device group |\n| toggle_device_command_schedule | Enable or disable a command plan |\n| delete_device_command_schedule | Delete a command plan |\n\n### Device groups\n\n| Tool name | Description |\n|---|---|\n| create_device_group | Create a new device group |\n| update_device_group | Update a device group's title |\n| delete_device_group | Delete a device group |\n\n### Presentations\n\n| Tool name | Description |\n|---|---|\n| get_presentations | List all presentations |\n| get_presentation | Get a specific presentation with all slides |\n| create_presentation | Create a new presentation |\n| create_presentation_with_content | Create a presentation with slides in one step |\n| update_presentation | Update presentation properties |\n| delete_presentation | Delete a presentation |\n| assign_presentation | Assign a presentation to a specific device group |\n| assign_presentation_to_default | Assign a presentation to the default group |\n| register_slide_image_upload | Step 1 of 3 for uploading an image slide |\n| acknowledge_slide_image_upload | Step 3 of 3 for uploading an image slide |\n| register_slide_video_upload | Step 1 of 3 for uploading a video slide |\n| acknowledge_slide_video_upload | Step 3 of 3 for uploading a video slide |\n\n### Schedules\n\n| Tool name | Description |\n|---|---|\n| get_schedules | List all schedules |\n| get_linear_schedule | Get a Simple Schedule with all time entries |\n| get_weekly_schedule | Get a Weekly Schedule with all time slots |\n| assign_schedule | Assign a schedule to a device group |\n| remove_schedule | Remove the schedule from a device group |\n| delete_schedule | Delete a schedule |\n\n### Alerts\n\n| Tool name | Description |\n|---|---|\n| assign_alert_presentation | Set the alert presentation for a specific device group |\n| assign_alert_presentation_to_default | Set the alert presentation for the default group |\n| remove_alert_presentation | Remove the alert presentation from a group |\n| start_all_alerts | Start alerts on all device groups |\n| start_group_alert | Start an alert on a specific group |\n| start_text_alert | Start a text alert on all device groups |\n| start_text_alert_for_group | Start a text alert on a specific group |\n| stop_all_alerts | Stop alerts on all groups |\n| stop_group_alert | Stop an alert on a specific group |\n\n### Account and utility\n\n| Tool name | Description |\n|---|---|\n| who_am_i | Check current login status |\n| get_user_info | Get user profile and subscription details |\n| get_dashboard | Get a comprehensive dashboard overview |\n| get_current_utc_time | Returns the current UTC timestamp |\n\n## How CastHub MCP compares\n\n| Capability | CastHub MCP | Screenly MCP | Revel Digital MCP | Fugo MCP |\n|---|---|---|---|---|\n| MCP server available | Yes | Yes | Yes | Yes |\n| Hosted endpoint (no local CLI install) | Yes | No (CLI-based) | Yes | Yes |\n| Governance layer (preview, confirm, rollback) | Yes | No | No | No |\n| Amazon Signage Stick native support | Yes | No | Partial | No |\n| Flat-rate pricing | Yes | Per-screen | Per-screen | Per-screen |\n| Open-source player option | Roadmap | Yes (Pi via Anthias) | No | No |\n\n## Example usage\n\n### Update content for a specific group of screens\n\nPrompt: `\"Push the new winter sale presentation to all 12 store screens for next week\"`\n\nTools called: `get_presentations`, `assign_presentation`, `assign_schedule`\n\n### Trigger an emergency alert\n\nPrompt: `\"Start a fire drill alert across the warehouse group right now\"`\n\nTools called: `start_text_alert_for_group`\n\n### Audit fleet health\n\nPrompt: `\"Show me all devices that have not checked in for over 24 hours\"`\n\nTools called: `get_devices` (filtered client-side)\n\nMore walkthroughs in [`examples/`](./examples).\n\n## Documentation\n\n- [CastHub MCP overview](https://cast-hub.com/mcp)\n- [CastHub Dashboard](https://dashboard.cast-hub.com)\n- [CastHub pricing](https://cast-hub.com/digital-signage-pricing/)\n\n## License\n\nMIT. See [LICENSE](LICENSE).\n\n## Contributing\n\nIssues and pull requests welcome at [github.com/Cast-Hub/mcp-server/issues](https://github.com/Cast-Hub/mcp-server/issues). For commercial questions or partnership inquiries, contact [info@cast-hub.com](mailto:info@cast-hub.com).\n","readmeFilename":"README.md"}