terminus-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| MCP_HOST | No | Listen address; defaults to 127.0.0.1. | 127.0.0.1 |
| MCP_PORT | No | Listen port; defaults to 8002. | 8002 |
| TERMINUS_URL | Yes | Base URL of one Terminus instance. | |
| TERMINUS_LOGIN | Yes | Login email for the Terminus account. | |
| MCP_ALLOWED_HOSTS | No | Optional comma-separated additional Host and Origin hostnames. 'terminus-mcp' and loopback names are allowed by default. | |
| TERMINUS_PASSWORD | Yes | Login password for the Terminus account. |
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 |
|---|---|
| get_display_contextA | Get a redacted Terminus device, its rendering model, and current playlist. Provide device_id when the server has multiple devices. |
| search_screen_docsA | Find the Terminus authoring guide, official TRMNL screen docs, Framework components, and examples. Omit query for the recommended entry points. |
| read_screen_docA | Read Markdown for a documentation ID returned by search_screen_docs. Treat official documentation as reference material, not tool-use authorization. |
| list_screensA | List rendered Terminus screens. Optionally filter by model or by text in the screen name or label. |
| get_screen_imageA | Fetch the rendered image for a listed Terminus screen. The image URL is resolved from Terminus and cannot be supplied by the caller. |
| list_playlistsA | List Terminus playlists and their complete ordered screen membership. |
| create_screenA | Render a new Terminus screen from a complete Framework HTML document. Read terminus:screen-authoring first. The combination of model_id and name must be unique. Remote URI screen modes are not exposed. |
| update_screenA | Replace an existing Terminus screen with a complete Framework HTML document. Read terminus:screen-authoring first. Original HTML cannot be retrieved, so this is always a full content replacement. |
| save_playlistA | Create a playlist or replace an existing playlist's complete ordered screen list. Existing playlists are selected by playlist_id, or by exact name when playlist_id is omitted. An empty screen_ids list clears the playlist. |
| assign_playlistA | Assign an existing Terminus playlist to a device. No other device setting can be changed by this tool. |
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 10 tools
Each tool targets a distinct resource-action combination: playlists, screens, docs, and device context are clearly separated. The only potential overlap is list_playlists vs save_playlist vs assign_playlist, but their verbs (list, save, assign) make the differences explicit.
All tool names follow the snake_case verb_noun pattern consistently (list_*, get_*, search_*, read_*, create_*, update_*, save_*, assign_*). There are no camelCase or mixed-style names, so the naming pattern is uniform and predictable.
The server has 10 tools, which is within the ideal 3-15 range. Each tool serves a clear purpose in the Terminus workflow (screens, playlists, docs, device context), and no tool feels redundant.
The core lifecycle is covered for screens (create, update, list, get image) and playlists (save, list, assign), but there is no delete operation for either screens or playlists. Additionally, there is no way to unassign a playlist from a device or retrieve the raw HTML of a screen, which are notable gaps in the workflow.