blipboard

Ambient split-flap display board agents push text to; humans watch it on any screen.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
100%
Naming quality
66%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Findings (5)

  • LOWTool 'create-board-tool' doesn't follow camelCase/snake_casein create-board-tool
  • LOWTool 'push-scenes-tool' doesn't follow camelCase/snake_casein push-scenes-tool
  • LOWTool 'read-board-tool' doesn't follow camelCase/snake_casein read-board-tool
  • LOWTool 'update-board-tool' doesn't follow camelCase/snake_casein update-board-tool
  • LOWTool 'delete-board-tool' doesn't follow camelCase/snake_casein delete-board-tool

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,186Tokens (tool definitions)
~2.0 KBTypical response size
Moderate attention impact (0.93% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "blipboard": {
      "url": "https://blip-board.app/mcp"
    }
  }
}

Remote endpoints

https://blip-board.app/mcpstreamable-http

What it can do

Tool inventory

Tools (5)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟡create-board-tool(name, layoutId)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "name": {
      "description": "Human-readable board name, e.g. \"Living Room\".",
      "type": "string"
    },
    "layoutId": {
      "description": "Board grid: wide-frame = 6 rows x 22 columns, triptych-15 = 3 x 15, ticker-6 = 1 x 6. Immutable after creation.",
      "default": "wide-frame",
      "enum": [
        "wide-frame",
        "triptych-15",
        "ticker-6"
      ],
      "type": "string"
    }
  },
  "required": [
    "name"
  ]
}
⚪push-scenes-tool(boardUrl, pushToken, source, scenes, replace)

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.

Input Schema

{
  "type": "object",
  "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"
    },
    "source": {
      "description": "Lowercase identifier of the pusher, e.g. \"claude\". Each source owns its scenes; pushing replaces only this source's scenes.",
      "type": "string"
    },
    "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"
    },
    "replace": {
      "description": "true (default) replaces this source's previous scenes, false appends.",
      "default": true,
      "type": "boolean"
    }
  },
  "required": [
    "boardUrl",
    "pushToken",
    "source",
    "scenes"
  ]
}
🟢read-board-tool(boardUrl)

Read what a Blipboard board is currently showing: its layout and the active scene playlist. No pushToken needed.

Input Schema

{
  "type": "object",
  "properties": {
    "boardUrl": {
      "description": "The board displayUrl or its bare 21-character display token.",
      "type": "string"
    }
  },
  "required": [
    "boardUrl"
  ]
}
🟡update-board-tool(boardUrl, pushToken, name, stylePreset, styleOverrides)

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.

Input Schema

{
  "type": "object",
  "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"
    },
    "name": {
      "description": "New human-readable board name.",
      "type": "string"
    },
    "stylePreset": {
      "description": "Switch the board to a named style preset. Available: Vestaboard, Modern Board, Default.",
      "enum": [
        "Vestaboard",
        "Modern Board",
        "Default"
      ],
      "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"
    }
  },
  "required": [
    "boardUrl",
    "pushToken"
  ]
}
🔴delete-board-tool(boardUrl, pushToken)

Permanently delete a Blipboard board and all its scenes. Requires the board's secret pushToken. This cannot be undone.

Input Schema

{
  "type": "object",
  "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"
  ]
}

Recommended Prompts

retrieve_data
Get details about [item] from blipboard
Expected tools: read-board-tool
fetch_info
Fetch [information type] using blipboard
Expected tools: read-board-tool

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded5 tools
verifiedversion not recorded5 tools