
Read the current message displayed on the Vestaboard. Returns the raw character-code layout and decoded human-readable text.
Send a text message to the Vestaboard. The API auto-formats text to fit the 6x22 grid. Rate limited to 1 message per 15 seconds.
Send a character-code layout to the Vestaboard. Provide a 2D array of integer codes (6 rows x 22 columns). Rate limited to 1 message per 15 seconds.
Get the current transition animation style used when the Vestaboard updates its display.
Set the transition animation style for the Vestaboard. Options: classic, wave, drift, curtain. Speed: fast, gentle.
Validate Vestaboard API token by reading the current board. Returns {success, message}.

In an mcp.json file, add the configuration below, and restart Cursor.
Learn more in the official documentation ↗
1{
2 "mcpServers": {
3 "agent-handler": {
4 "url": "https://ah-api-develop.merge.dev/api/v1/tool-packs/{TOOL_PACK_ID}/registered-users/{REGISTERED_USER_ID}/mcp",
5 "headers": {
6 "Authorization": "Bearer yMt*****"
7 }
8 }
9 }
10}
11Open your Claude Desktop configuration file and add the server configuration below. You'll also need to restart the application for the changes to take effect.
Make sure Claude is using the Node v20+.
Learn more in the official documentation ↗
1{
2 "mcpServers": {
3 "agent-handler": {
4 "command": "npx",
5 "args": [
6 "-y",
7 "mcp-remote@latest",
8 "https://ah-api-develop.merge.dev/api/v1/tool-packs/{TOOL_PACK_ID}/registered-users/{REGISTERED_USER_ID}/mcp",
9 "--header",
10 "Authorization: Bearer ${AUTH_TOKEN}"
11 ],
12 "env": {
13 "AUTH_TOKEN": "yMt*****"
14 }
15 }
16 }
17}Open your Windsurf MCP configuration file and add the server configuration below.
Click on the refresh button in the top right of the Manage MCP server page or in the top right of the chat box in the box icon.
Learn more in the official documentation ↗
1{
2 "mcpServers": {
3 "agent-handler": {
4 "command": "npx",
5 "args": [
6 "-y",
7 "mcp-remote@latest",
8 "https://ah-api.merge.dev/api/v1/tool-packs/<tool-pack-id>/registered-users/<registered-user-id>/mcp",
9 "--header",
10 "Authorization: Bearer ${AUTH_TOKEN}"
11 ],
12 "env": {
13 "AUTH_TOKEN": "<ah-production-access-key>"
14 }
15 }
16 }
17 }In Command Palette (Cmd+Shift+P on macOS, Ctrl+Shift+P on Windows), run "MCP: Open User Configuration".
You can then add the configuration below and press "start" right under servers. Enter the auth token when prompted.
Learn more in the official documentation ↗
1{
2 "inputs": [
3 {
4 "type": "promptString",
5 "id": "agent-handler-auth",
6 "description": "Agent Handler AUTH_TOKEN", // "yMt*****" when prompt
7 "password": true
8 }
9 ],
10 "servers": {
11 "agent-handler": {
12 "type": "stdio",
13 "command": "npx",
14 "args": [
15 "-y",
16 "mcp-remote@latest",
17 "https://ah-api-develop.merge.dev/api/v1/tool-packs/{TOOL_PACK_ID}/registered-users/{REGISTERED_USER_ID}/mcp",
18 "--header",
19 "Authorization: Bearer ${input:agent-handler-auth}"
20 ]
21 }
22 }
23}It's an MCP server that gives your agents direct control over Vestaboard displays via tools. Your agents can invoke these tools to send messages to a board, read the current display, manage transition animations, and more.
Vestaboard doesn't offer an MCP server purpose built for Vestaboard, but you can use one from a third-party platform, like Merge Agent Handler.
The use cases naturally depend on the agent you've built, but here are a few common ones:
Here are some of the most commonly used tools:
send_message: sends a text message to a Vestaboard display. Use this when an agent needs to push a notification, announcement, or update to a physical board in response to an event in another systemread_message: returns the current message shown on a Vestaboard. Call this when an agent needs to check what's currently displayed before deciding whether to overwrite it with new contentsend_character_message: sends a message using character codes, enabling precise control over layout, spacing, and visual formatting. Helpful when an agent needs to display structured content that goes beyond plain textget_transition: returns the current transition animation style set on the Vestaboard. Use this when an agent needs to check the board's display configuration before making changes or logging its stateset_transition: updates the transition animation style to classic, wave, drift, or curtain. Useful when an agent needs to change how messages animate onto the board to match the tone of a specific announcement or event typeVestaboard doesn't have an official MCP server, so if you're choosing between a community implementation and a managed platform, here's how Merge Agent Handler stands out:
You can take the following steps:
1. Create or log into your Merge Agent Handler account and navigate to Tool Packs (collections of connector tools scoped to a specific use case).
2. Create a new Tool Pack, then find and enable the Vestaboard connector. For most agents, send_message is the core tool needed, while read_message, send_character_message, and set_transition are useful for agents that need to check state or control display formatting.
3. Add a Registered User inside the Tool Pack. This is the identity context under which your agent operates. Merge generates a unique MCP URL scoped to this user once it's created.
4. From the Registered User detail page, authenticate Vestaboard by entering your API credentials. Merge stores and manages those credentials going forward.
5. Copy the MCP URL from the Tool Pack detail page and generate an API key from Settings. You'll need both to connect your agent.
6. Add the MCP server to your agent or IDE using the MCP URL and API key. Your Vestaboard tools are now accessible through that endpoint.
Whether you're an engineer experimenting with agents or a product manager looking to add tools, you can get started for free now