Revel Digital MCP Server

Mike Tinnes
Mike Tinnes
  • Updated

Revel Digital MCP Server

The Revel Digital MCP Server lets AI assistants like Claude, ChatGPT, Cursor, and others interact directly with your Revel Digital digital signage platform using the Model Context Protocol (MCP).

With this server, you can use natural language to manage devices, media, playlists, schedules, templates, data tables, and more — all through your favorite AI-powered tool.

What is MCP?

The Model Context Protocol is an open standard that allows AI applications to securely connect to external data sources and tools. Instead of copying and pasting data between your signage platform and an AI assistant, MCP lets the AI interact with Revel Digital directly on your behalf.

Getting Started

  1. Have a Revel Digital account with API access
  2. Connect your MCP client using one of the server endpoints below
  3. Authenticate via the browser-based OAuth login when prompted
  4. Start using tools to manage your digital signage

No API keys or manual configuration required — the OAuth flow handles everything automatically.

See it in Action

Watch this short demo showing Claude generating a report using the Revel Digital MCP Server:

Server Endpoints

Transport URL Use When
Streamable HTTP (recommended) https://mcp.reveldigital.io/mcp Recommended for most clients
SSE (legacy) https://mcp.reveldigital.io/sse For clients that only support SSE

Authentication

The MCP server uses OAuth 2.0 / OpenID Connect via Revel Digital's identity provider. When you first connect:

  1. Your MCP client sends a request to the server
  2. The server prompts your client to start the OAuth flow
  3. A browser window opens to the Revel Digital login page
  4. You sign in with your Revel Digital credentials
  5. After successful login, the browser redirects back and your client receives an access token
  6. All subsequent tool calls use this token automatically

Connecting Your AI Client

Claude Desktop

Add the following to your Claude Desktop MCP configuration file:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "revel-digital": {
      "command": "npx",
      "args": [
        "mcp-remote",
        "https://mcp.reveldigital.io/mcp"
      ]
    }
  }
}

Restart Claude Desktop after saving. A browser window will open for authentication on first use.

Note: Claude Desktop uses mcp-remote as a local proxy to connect to remote MCP servers. Make sure you have Node.js 18+ installed.

Claude Code (CLI)

claude mcp add revel-digital --transport http https://mcp.reveldigital.io/mcp

Or add to your .mcp.json file:

{
  "mcpServers": {
    "revel-digital": {
      "type": "url",
      "url": "https://mcp.reveldigital.io/mcp"
    }
  }
}

Cursor

  1. Open SettingsMCP Servers
  2. Click Add Server
  3. Set the URL to https://mcp.reveldigital.io/mcp
  4. Select Streamable HTTP as the transport type
  5. Click Save

VS Code (Copilot)

Add the following to your VS Code settings.json:

{
  "mcp": {
    "servers": {
      "revel-digital": {
        "type": "http",
        "url": "https://mcp.reveldigital.io/mcp"
      }
    }
  }
}

ChatGPT Desktop

  1. Open SettingsTools & PluginsMCP Servers
  2. Click Add Server
  3. Enter the URL: https://mcp.reveldigital.io/mcp
  4. Authenticate via the browser when prompted

Windsurf

  1. Open SettingsMCP
  2. Add a new remote server with URL https://mcp.reveldigital.io/mcp
  3. Save and connect

Other MCP Clients

For any MCP-compatible client, connect to:

  • Streamable HTTP: POST https://mcp.reveldigital.io/mcp
  • SSE: GET https://mcp.reveldigital.io/sse

Available Tools

The server provides 46 tools across 14 categories. For complete parameter documentation, see the full tool reference.


Account & Users (5 tools)

Manage account information, organizations, users, and audit logs.

Tool Description
get_account Get account-level details including account ID, name, subscription type, feature flags, and contact information.
list_organizations List all organizations (sub-accounts) under the account. Organizations partition devices, media, schedules, and users for multi-tenant or multi-location deployments.
list_audit_events List audit log events recording user and system actions such as creating, updating, or deleting resources. Supports filtering by user, event type, HTTP method, date range, IP address, and response code.
list_users List all users in the account with their id, name, email, role, and permissions.
get_user Get detailed information about a specific user by ID.

Devices (7 tools)

Manage devices (players) registered to the account. Each device represents a physical display player (Android, Chrome OS, Windows, Linux, or BrightSign) that renders scheduled content.

Tool Description
list_devices List devices with filtering by group, device type, online status, and organization. Optionally include latest screenshot data.
get_device Get detailed device info including name, type, group assignment, current schedule, online status, last check-in time, IP address, and firmware version.
create_device Pre-provision a new device entry. Supports setting name, device type, group assignment, and activation code for pairing.
update_device Update a device's name, group assignment, schedule, or tags.
delete_device Permanently remove a device registration. The physical player will need to re-register if it reconnects.
send_device_command Send a remote command to a device: reboot, screenshot, restart-player, or clear-cache. Commands execute on the device's next check-in.
bulk_send_device_commands Send commands to multiple devices simultaneously for fleet-wide operations.
get_device_snapshot Retrieve the latest screenshot for a device showing what is currently displayed. Supports base64 output.

Device Groups (5 tools)

Organize devices into hierarchical folder structures.

Tool Description
list_device_groups List all device groups with id, name, and parent reference.
get_device_group Get details of a group including child groups.
create_device_group Create a new group, optionally nested under a parent.
update_device_group Rename a group or move it under a different parent.
delete_device_group Delete a group. Devices in the group become ungrouped.

Media (5 tools)

Manage media files in the Revel Digital library including images (JPG, PNG, GIF), videos (MP4, WebM), PDFs, web pages, and other content types.

Tool Description
list_media List media files with filtering by group. Returns id, name, file type, group, tags, and availability dates.
get_media Get detailed media info including file size, URL, sharing status, and availability window.
update_media Update a media item's metadata — name, group, tags, sharing status, or availability dates. Does not replace the file itself.
delete_media Permanently delete a media file. References in playlists or templates will become invalid.
import_media Import a media file from an external URL into the library.

Media Groups (4 tools)

Organize media files into hierarchical folder structures.

Tool Description
list_media_groups List all media groups with id, name, and parent reference.
create_media_group Create a new group, optionally nested under a parent.
update_media_group Rename a group or move it under a different parent.
delete_media_group Delete a group. Media in the group becomes ungrouped.

Playlists (5 tools)

Manage playlists — ordered sequences of media items (images, videos, web pages) that play in rotation on devices.

Tool Description
list_playlists List all playlists with id, name, group, duration, and item count.
get_playlist Get a playlist with its full ordered list of media items, duration, and sharing status.
create_playlist Create a new playlist. Optionally pre-populate with media items, each with display duration, transition, and sequence order.
update_playlist Update a playlist's name, group, or media items. When updating items, send the complete ordered array — it replaces existing items entirely.
delete_playlist Permanently delete a playlist. Schedules referencing it will need to be updated.

Playlist Groups (2 tools)

Organize playlists into folders. Tools follow the same pattern as other group tools (list_playlist_groups, create_playlist_group).


Schedules (5 tools)

Manage schedules — time-based rules that determine when playlists, templates, or campaigns play on devices.

Tool Description
list_schedules List all schedules with filtering by group or target device.
get_schedule Get a schedule with its time entries, content reference (Playlist, Template, or Campaign), playback rules, and assigned devices.
create_schedule Create a new schedule linking content to devices with time-based playback rules.
update_schedule Update a schedule's name, group, content type, time entries, or device assignments.
delete_schedule Permanently delete a schedule. Assigned devices will no longer receive its content.

Schedule Groups (2 tools)

Organize schedules into folders. Tools follow the same pattern as other group tools (list_schedule_groups, create_schedule_group).


Templates (4 tools)

Manage templates — multi-zone screen layouts where each zone can display a different playlist, web page, or media item simultaneously. Templates also support JavaScript scripting for interactive or dynamic content.

Tool Description
list_templates List all templates with id, name, group, and zone configuration.
get_template Get a template with its full zone definitions, dimensions, and scripting. Each zone defines a screen region with position, size, and content assignment.
create_template Create a new template with a specified canvas size (e.g. 1920×1080).
update_template Update a template's name, group, dimensions, zone layout, or scripting. Zone updates replace existing zones entirely.

Template Groups (2 tools)

Organize templates into folders. Tools follow the same pattern as other group tools (list_template_groups, create_template_group).


Data Tables (17 tools)

Manage data tables — structured row/column data that can be used in templates and playlists for dynamic content. Includes full CRUD, batch operations, CSV export, and row version history with rollback.

Table Management:

Tool Description
list_datatables List data tables with cursor-based pagination.
get_datatable Get a table definition including its column schema and metadata.
create_datatable Create a new data table with a name and column schema.
update_datatable Update a table definition — rename or modify column schema.
delete_datatable Permanently delete a table and all its rows.

Row Operations:

Tool Description
list_datatable_rows List rows with filtering, sorting, field selection, and cursor-based pagination.
get_datatable_row Get a single row by ID with all column values.
create_datatable_row Create a new row with column values matching the table schema.
update_datatable_row Partial update — only the specified columns are changed.
delete_datatable_row Delete a single row.

Batch Operations:

Tool Description
batch_create_datatable_rows Create multiple rows in a single request.
batch_delete_datatable_rows Delete multiple rows in a single request (max 100).
reorder_datatable_rows Reorder rows by providing row IDs in the desired sequence.

Export & Versioning:

Tool Description
export_datatable_rows Export all rows as CSV.
list_datatable_row_versions List version history for a row (newest first). Each version captures the row's state at a point in time.
get_datatable_row_version Get a specific version snapshot of a row.
rollback_datatable_row Roll back a row to a specific previous version, replacing its current state.

Alerts (3 tools)

Monitor and manage device alerts. Alerts are generated automatically when monitored conditions trigger — for example, when a device goes offline, encounters a content error, or exceeds resource thresholds.

Tool Description
list_alerts List alerts with filtering by device, active/resolved status, and organization.
get_alert Get detailed alert info including type, associated device, trigger condition, timestamps, and resolution status.
update_alert Update an alert's status — typically to mark it as resolved or acknowledged.

Analytics (13 tools)

Query the AdHawk analytics engine. All analytics tools require startDate and endDate parameters and support optional device filtering.

Play & Content Logs:

Tool Description
get_play_logs Raw content play log entries. Each entry records a single media play event with timestamp, duration, media file ID, and device ID.
get_ping_logs Device connectivity logs recording check-ins with timestamp, IP address, CPU usage, memory usage, and connection type. Filterable by CPU/memory thresholds.
get_event_logs Custom event log entries — application-defined occurrences (user interactions, sensor triggers) logged by templates or player scripts.

Aggregated Metrics:

Tool Description
get_event_metrics Aggregated counts and distributions for custom events over time. Supports time bucketing (minute through month) and grouping by device or event name.
get_device_metrics Device health and performance metrics — uptime, storage, memory, CPU, and connection quality over time.
get_media_play_stats Per-media play statistics: total play count, total duration, average duration, and unique device count.
get_device_play_stats Per-device play statistics: total play count, total duration, and content utilization.
get_play_stats_by_time Play statistics bucketed by time interval for identifying peak display times and trends. Supports grouping by device or media file.

Audience Analytics (requires audience measurement hardware such as a camera with face detection):

Tool Description
get_impressions Audience impression data — viewer detections with estimated dwell time, demographics, and device ID. Filterable by gender and minimum dwell time.
get_audience_metrics Aggregated audience measurement: viewer count, average dwell time, attention time, and demographic estimates.
get_media_impressions Impression data per media item: view count, display duration, and audience reach per asset.

Other:

Tool Description
get_event_flow Event flow sequences showing multi-step user interaction patterns over time.
get_heatmap Heatmap data showing time-of-day and day-of-week activity intensity matrices.

Troubleshooting

"Connection Error - Check if your MCP server is running" Make sure you're using the correct transport type (Streamable HTTP vs SSE) and the correct URL path (/mcp or /sse).

"Mcp-Session-Id header is required" You're connecting with SSE transport to the Streamable HTTP endpoint. Either switch to Streamable HTTP transport or use the /sse endpoint.

OAuth login loop Clear your browser cookies for mcp.reveldigital.io and id.reveldigital.com, then try connecting again.

Resources

Related to

Was this article helpful?

0 out of 0 found this helpful

Have more questions? Submit a request

Comments

0 comments

Please sign in to leave a comment.