terminus-mcp
v0.1.0
Published
MCP server for creating and publishing content to Terminus
Downloads
195
Maintainers
Readme
terminus-mcp
An MCP server for agents that create and publish content to a Terminus instance.
The project targets version 2 of the official Model Context Protocol TypeScript SDK and Node.js 24.2 or newer.
Status
The curated publishing API is implemented and verified against Terminus
0.67.0. See docs/design.md for the API boundary and security
model.
The server exposes ten tools:
get_display_context,list_screens,get_screen_image, andlist_playlistsfor Terminus discovery;search_screen_docsandread_screen_docfor agent-readable authoring and TRMNL Framework documentation;create_screenandupdate_screenfor complete HTML/CSS screens;save_playlistfor complete ordered playlist replacement;assign_playlistfor the single allowed device mutation.
It deliberately does not expose authentication, firmware endpoints, deletion, model mutation, raw device credentials, or a generic API proxy.
Installation
Register the server with your MCP host:
{
"mcpServers": {
"terminus": {
"command": "npx",
"args": ["-y", "terminus-mcp"],
"env": {
"TERMINUS_URL": "http://terminus.example:2300",
"TERMINUS_LOGIN": "[email protected]",
"TERMINUS_PASSWORD": "..."
}
}
}
}See Configuration for the environment variables and the note on credential handling.
Development
Development uses Vite+ (npm install -g vite-plus):
git clone https://github.com/gjermundgaraba/terminus-mcp.git
cd terminus-mcp
vp install
vp run readyRun the development server over stdio:
vp run devOr run its native Streamable HTTP endpoint:
MCP_HOST=0.0.0.0 MCP_PORT=8002 vp run dev:httpBuild and run the compiled server:
vp pack
vp run start
# or
MCP_HOST=0.0.0.0 MCP_PORT=8002 vp run start:httpStandard output is reserved for MCP messages. Diagnostics use standard error.
Configuration
The MCP host must provide:
TERMINUS_URL: Base URL of one Terminus instance.TERMINUS_LOGIN: Login email for the Terminus account.TERMINUS_PASSWORD: Login password for the Terminus account.
The HTTP entrypoint additionally accepts:
MCP_HOST: Listen address; defaults to127.0.0.1.MCP_PORT: Listen port; defaults to8002.MCP_ALLOWED_HOSTS: Optional comma-separated additionalHostandOriginhostnames.terminus-mcpand loopback names are allowed by default.
Credentials will never be accepted as MCP tool arguments, returned in tool results, or intentionally written to logs. Inject them with the MCP host's secret-management facility instead of committing them to its configuration.
For remote MCP clients, use http://<host>:8002/mcp. /healthz provides a
container health check. The HTTP endpoint has no application-level
authentication and must remain on an access-controlled internal network.
Verification
vp run ready runs formatting, linting, strict type checks, protocol-level
tests through the official MCP client, and a production build.
To verify against a configured Terminus instance:
vp run verify:liveThe live check exercises all ten tools. It creates a temporary screen and playlist, assigns the device's existing playlist back to itself, and deletes the temporary objects before exiting.
