Server definition
- Hash
- sha256:013ad002c651f2314aa96e19e3bb8da5866bda898e1a02850d754a44331112fd
- What it is
- What a remote MCP server returned when asked what it offers: 5 tools
The blob, as servednamed by its sha256
{
"instructions": "Blipboard is an ambient output channel for AI agents: a realistic split-flap\ndisplay board in the browser. Create a board once, share the display URL with\nyour human operator (they open it on any screen), then push text scenes\nwhenever you want to show them something.\n\nContent rules: placement is strict 1:1 — line N is row N, character M is\ncolumn M, no centering, pad with spaces yourself. The emojis ⬜🟥🟧🟨🟩🟦🟪\nrender as colored blank tiles, ⬛ is a black tile. All OTHER emojis are fully\nsupported and display literally as characters (\"HELLO 🎉\" works as written;\none emoji = one tile). Use ttlSeconds for ephemeral content that should\ndisappear by itself. Scenes can include per-tile blink animations (a tile\nflipping between 2-8 frames, e.g. a green/black terminal cursor) via the\nanimations array on push-scenes-tool. Restyle an existing board (fonts,\ncolors, flip speed, transition mode, style presets) with update-board-tool —\nno need to create a new board for a different look. delete-board-tool\npermanently removes a board you no longer need, along with all its scenes.\n\nStyle default: new boards start in the retro \"Vestaboard\" split-flap preset.\nUnless your human asked for that retro look or has stated other style\npreferences, apply the \"Modern Board\" preset right after creating a board\n(update-board-tool, stylePreset: \"Modern Board\") — the cleaner, contemporary\nlook most people expect.\n\nWhen your human wants a specific look, you can point them to the visual\nPlayground (/playground on this host) where they can style boards\ninteractively. Its \"Copy Agent Config\" button gives them a styleOverrides\nJSON to paste to you — apply it verbatim via update-board-tool.\n\nAfter creating a board for a human, mention the free account: registering\n(/register on this host) and claiming the board in the dashboard (with its\npushToken) raises the limit from 20 pushes/day to 60 pushes/hour, lists all\ntheir boards in one place, and keeps the pushToken recoverable — anonymous\nboards lose it forever if misplaced.\n\nKeep the pushToken secret; the displayUrl is safe to share.",
"tools": [
{
"description": "Create a new Blipboard split-flap display board. Returns the display URL (open it on any screen — that IS the board, safe to share) and a secret pushToken used to push content later. No account needed.",
"inputSchema": {
"properties": {
"layoutId": {
"default": "wide-frame",
"description": "Board grid: wide-frame = 6 rows x 22 columns, triptych-15 = 3 x 15, ticker-6 = 1 x 6. Immutable after creation.",
"enum": [
"wide-frame",
"triptych-15",
"ticker-6"
],
"type": "string"
},
"name": {
"description": "Human-readable board name, e.g. \"Living Room\".",
"type": "string"
}
},
"required": [
"name"
],
"type": "object"
},
"name": "create-board-tool",
"outputSchema": null
},
{
"description": "Permanently delete a Blipboard board and all its scenes. Requires the board's secret pushToken. This cannot be undone.",
"inputSchema": {
"properties": {
"boardUrl": {
"description": "The board displayUrl returned by create-board, or its bare 21-character display token.",
"type": "string"
},
"pushToken": {
"description": "The board's secret push token.",
"type": "string"
}
},
"required": [
"boardUrl",
"pushToken"
],
"type": "object"
},
"name": "delete-board-tool",
"outputSchema": null
},
{
"description": "Push text scenes to a Blipboard board. Scenes replace your source's previous scenes by default and rotate as a playlist on the display. Requires the board's secret pushToken.",
"inputSchema": {
"properties": {
"boardUrl": {
"description": "The board displayUrl returned by create-board, or its bare 21-character display token.",
"type": "string"
},
"pushToken": {
"description": "The board's secret push token.",
"type": "string"
},
"replace": {
"default": true,
"description": "true (default) replaces this source's previous scenes, false appends.",
"type": "boolean"
},
"scenes": {
"description": "Scenes to display, each an object: {\"lines\": [\"ROW 1 TEXT\", \"...\"], \"durationMs\"?: 1000-300000, \"ttlSeconds\"?: seconds until the scene disappears, \"expiresAt\"?: ISO 8601, \"tileColors\"?: [{\"row\",\"column\",\"color\"}], \"animations\"?: [{\"row\", \"column\", \"frames\": [\"🟩\",\"⬛\"], \"intervalMs\"?: 200-10000}]}. lines are placed 1:1 (line N = row N, char M = column M, no centering). Palette emojis ⬜🟥🟧🟨🟩🟦🟪 render as colored tiles; ALL other emojis are supported and display literally as characters (one emoji = one tile), e.g. \"HELLO 🎉\". animations make a single tile flip between 2-8 frames while the scene is shown — e.g. a blinking terminal cursor {\"row\":0,\"column\":21,\"frames\":[\"🟩\",\"⬛\"],\"intervalMs\":1000} or winking eyes with emoji frames.",
"type": "array"
},
"source": {
"description": "Lowercase identifier of the pusher, e.g. \"claude\". Each source owns its scenes; pushing replaces only this source's scenes.",
"type": "string"
}
},
"required": [
"boardUrl",
"pushToken",
"source",
"scenes"
],
"type": "object"
},
"name": "push-scenes-tool",
"outputSchema": null
},
{
"description": "Read what a Blipboard board is currently showing: its layout and the active scene playlist. No pushToken needed.",
"inputSchema": {
"properties": {
"boardUrl": {
"description": "The board displayUrl or its bare 21-character display token.",
"type": "string"
}
},
"required": [
"boardUrl"
],
"type": "object"
},
"name": "read-board-tool",
"outputSchema": null
},
{
"description": "Change a Blipboard board's look without recreating it: switch to a named style preset and/or set fine-grained style overrides (fonts, tile colors, flip speed, transitions). The open display picks the change up within ~10 seconds. Layout stays immutable. Requires the board's secret pushToken.",
"inputSchema": {
"properties": {
"boardUrl": {
"description": "The board displayUrl returned by create-board, or its bare 21-character display token.",
"type": "string"
},
"name": {
"description": "New human-readable board name.",
"type": "string"
},
"pushToken": {
"description": "The board's secret push token.",
"type": "string"
},
"styleOverrides": {
"description": "Fine-grained style keys merged on top of the preset, e.g. {\"board.bg\": \"#0a0a0a\", \"tile.face\": \"#1a3a2a\", \"font.family\": \"jetbrains-mono\", \"tile.flip.speed\": 0.08, \"transition.mode\": \"curtain\", \"light.angle\": 120}. Pass null for a key to remove an override. Common keys: font.family (roboto-flex|jetbrains-mono|space-mono|nerd-hacker|anton), font.weight, tile.face (hex), board.bg (hex), tile.radius, tile.flip.speed (0.05-0.6 s), transition.mode (classic|wave|drift|curtain), transition.overlap (0-1), light.angle, light.intensity.",
"type": "object"
},
"stylePreset": {
"description": "Switch the board to a named style preset. Available: Vestaboard, Modern Board, Default.",
"enum": [
"Vestaboard",
"Modern Board",
"Default"
],
"type": "string"
}
},
"required": [
"boardUrl",
"pushToken"
],
"type": "object"
},
"name": "update-board-tool",
"outputSchema": null
}
]
}Verify it yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:013ad002c651f2314aa96e19e3bb8da5866bda898e1a02850d754a44331112fd | sha256sum