TRMNL API MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| TRMNL_ACCOUNT_API_KEY | No | Your TRMNL User API Key. Overrides the default credential file. The per-plugin key beginning `ps_mcp_` is not suitable. | |
| TRMNL_ACCOUNT_API_KEY_FILE | No | Path to a file containing your TRMNL User API Key. Overrides the default credential file location (~/.config/trmnl-playlist/account-api-key). |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_devicesA | List your TRMNL devices with names, numeric IDs, refresh interval in seconds, sleep settings and last check-in. Credentials and hardware identifiers are excluded. |
| list_playlist_itemsA | Read TRMNL playlist items, optionally for one numeric device_id. Returns plugin names, visibility, row_order, group IDs and render timestamps in API order. Does not fetch images or custom durations. |
| get_playlist_item_scheduleA | Read weekly display windows for a playlist item. week_days uses 0=Sunday through 6=Saturday. Times are returned as stored; the API does not supply timezone. always_active describes schedule windows, not the separate visibility flag. |
| set_playlist_item_visibilityA | Show or hide an existing playlist item without removing it. Inspect the playlist first and verify visibility afterward. |
| add_playlist_itemA | Add an existing plugin instance to a device playlist. plugin_setting_id must be the plugin setting UUID documented by TRMNL, not a numeric plugin ID. This may create another entry if retried; inspect the playlist after any uncertain outcome. |
| remove_playlist_itemA | Remove a playlist entry by its item_id. This loses that entry and its schedule; use set_playlist_item_visibility to pause it instead. Read the entry before removal and verify afterward. |
| reorder_playlist_itemsA | Replace a device playlist ordering. Supply every current playlist item ID exactly once in the desired order, including hidden items. The current list is checked before writing; TRMNL also validates the complete set. |
| replace_playlist_item_scheduleA | Replace ALL weekly display windows for an item. Read the existing schedule first; send all windows to retain. An empty week_schedules array clears time restrictions (always active), not visibility. week_days: 0=Sunday through 6=Saturday; use HH:MM in the account timezone, which this API does not expose. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 8 tools
Each tool targets a distinct resource and action: devices, playlist items, schedules, visibility, and ordering are clearly separated. The read/write schedule pair and visibility vs. removal are described with enough distinction to prevent misselection.
All tools follow a consistent snake_case verb_noun pattern using list/get/set/add/remove/reorder/replace. The naming style is uniform and the resource hierarchy is predictable.
Eight tools cover the device listing and playlist management workflows without redundancy or bloat. The count is well within the ideal range and each tool contributes a distinct playlist lifecycle operation.
The playlist item lifecycle is well covered: add, list, read schedule, update visibility, replace schedule, reorder, and remove. The main gap is that add_playlist_item requires an external plugin_setting_id with no corresponding tool to discover plugin settings, forcing agents to get that ID from outside the server.