Skip to main content
Glama
lintility

Vestaboard MCP Server

by lintility

Vestaboard MCP Server

A Model Context Protocol server for controlling Vestaboard displays via both cloud and local APIs.

Features

  • Cloud API Support: Send messages, read current display, manage transitions

  • Local API Support: Direct control of devices on your network

  • Message Formatting: Convert text to character codes automatically

  • Animation Effects: Animate message display with multiple strategies

  • Environment Configuration: Use .env files for API credentials (minimal deps)

  • Type Safe: Full Python type hints with mypy support

Related MCP server: pixoo-mcp-server

Installation

Prerequisites

  • Python 3.10+

  • A Vestaboard device

Setup

# Clone and install
git clone https://github.com/lintility/vestaboard-mcp.git
cd vestaboard-mcp
pip install -e .

# Configure credentials
cp src/.env.example .env

Edit .env with your API credentials:

Usage

Run the Server

python -m src.server

Configure with Claude

Add to ~/.config/claude/mcp.json:

{
  "mcpServers": {
    "vestaboard": {
      "command": "python",
      "args": ["-m", "src.server"],
      "cwd": "/path/to/vestaboard-mcp",
      "env": {
        "VESTABOARD_CLOUD_TOKEN": "your_token",
        "VESTABOARD_LOCAL_API_KEY": "your_local_key"
      }
    }
  }
}

Available Tools

Cloud API

  • cloud_read_message: Get current display

  • cloud_send_message: Send text or character codes

  • cloud_format_message: Convert text to character codes

  • cloud_get_transition: Get transition settings

  • cloud_set_transition: Set animation effects (wave, drift, curtain, classic)

Local API

  • local_enable_api: Activate local API (one-time setup)

  • local_send_message: Send message with optional animation

  • local_read_message: Read current display

Project Structure

vestaboard-mcp/
├── src/
│   ├── server.py           # MCP server implementation
│   ├── vestaboard.py       # API client classes
│   └── .env.example        # Configuration template
├── tests/
│   └── test_server.py      # Test suite
├── pyproject.toml          # Dependencies and config
└── README.md               # This file

Development

# Run tests
pytest tests/

# Format code
black src/ tests/

# Lint
ruff check src/ tests/

# Type check
mypy src/

Dependencies

Core:

  • mcp>=0.1.0 - Model Context Protocol SDK

  • httpx>=0.24.0 - Async HTTP client

  • python-dotenv>=1.0.0 - Environment configuration

Dev:

  • pytest>=7.4.0 - Testing

  • pytest-asyncio>=0.21.0 - Async test support

  • black>=23.0.0 - Code formatting

  • ruff>=0.0.275 - Linting

  • mypy>=1.0.0 - Type checking

API Documentation

Resources

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables comprehensive interaction with SmartThings devices, locations, scenes, and automation rules through the SmartThings API. It features intelligent two-level caching and supports multiple transport options including HTTP, SSE, and STDIO.
    1
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Enables programmatic control of Divoom Pixoo LED matrices to display layered pixel art, animations, and hardware-rendered scrolling text. Users can compose complex visual scenes, push images, and manage device settings like brightness and channels through an LLM.
    7
    215 npm
    9
    Apache 2.0
  • A
    license
    C
    quality
    C
    maintenance
    Enables complete control over ProPresenter presentations through the ProPresenter API, supporting 231 endpoints for managing presentations, announcements, audio, media, playlists, and more.
    100
    23 npm
    12
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to display messages on a Vestaboard via text or board mode with color and symbol support.
    11
    -