Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Description from the maker (original English)
PushToDisplay MCP server — send real-time updates to display boards on iOS and Android devices.
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
You need
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json
{
"mcpServers": {
"cli": {
"command": "npx",
"args": [
"-y",
"pushtodisplay"
]
}
}
}Run this in your terminal
claude mcp add cli -- npx -y pushtodisplayPaste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"cli": {
"command": "npx",
"args": [
"-y",
"pushtodisplay"
]
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
Paste into .vscode/mcp.json in your project
{
"servers": {
"cli": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"pushtodisplay"
]
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
This one runs on your computer, and ChatGPT can only connect to servers on the internet. Pick another app.
Your choice stays on this device in a cookie; no account needed.
These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
Runs on your computer; the tool list appears in your AI app after you install it.
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 6, 2026
The registry name was verified with the GitHub account pushtodisplay, which owns the repo
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
This one runs on your computer; there is no internet endpoint
Runs on your computer and uses local settings instead
Runs on your computer; we can only read tool lists from internet endpoints
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
The registry does not list a required key, though some servers ask you to sign in on first use.
It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).
The GitHub repo last changed –, and the latest version (0.1.14) reached the registry 5 months ago.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Node.js on your computer.
In the same category: Spec Driven Development, Remote Desktop Commander, debuff
Servers in the same category from other makers, sorted by stars.
Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Let coding agents play, test and tune your 2D web game: live state, explained errors, replays, fuzz.
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
Command-line interface and MCP server for Push To Display — send real-time updates to display boards from your terminal or AI agents.
Turn any screen into a live display board — get Push to Display on iOS and Android.
Run directly with npx (no install needed):
npx pushtodisplay --help
Or install globally:
npm install -g pushtodisplay
Requires Node.js 18+. See the PushToDisplay documentation for guides, use cases, and API details.
# Log in (opens browser)
pushtodisplay auth login
pushtodisplay send "Hello, Display!"
pushtodisplay send -b "Deploy completed"
pushtodisplay boards list
Log in with your Push To Display account — the same account you use in the mobile app.
pushtodisplay auth login
Opens your browser. Sign in and the CLI receives your credentials automatically.
For machines without a browser — SSH sessions, containers, or remote servers:
pushtodisplay auth login --device-code
The CLI prints a URL and a one-time code. Open the URL on any device, enter the code, and approve the login.
Credentials are stored in your OS keychain (macOS Keychain, Linux libsecret, Windows Credential Manager). Falls back to ~/.config/pushtodisplay/ if the keychain is unavailable.
# Check auth status
pushtodisplay auth status
pushtodisplay auth status --json
pushtodisplay auth logout
auth status reports effective auth: an expired access token is still reported as authenticated when a valid refresh token can renew it transparently (a will refresh automatically note is shown instead of the raw token expiry). It exits 0 when authenticated and 1 when not, so it is safe to gate scripts on it.
{
"authenticated": true, "method": "oauth", "accessTokenExpired": true, "canRefresh": true, "sessionExpiresAt": "2026-06-01T00:00:00.000Z" }
sendSend a display update to a board.
# Simple text
pushtodisplay send -b my-board-id "Deploy succeeded"
pushtodisplay send -b my-board-id "Status" --size large --weight bold --color "#00FF00"
pushtodisplay send -b my-board-id "Build:" "passing" --color "#22C55E"
pushtodisplay send -b my-board-id --panel 2 "Right panel content" pushtodisplay send -b my-board-id --panel 1 --full-panel --density compact --align-x center "Alert"
pushtodisplay send -b my-board-id \ --block '{"text": "API Health", "size": "large", "weight": "bold"}' \ --block '{"text": "Uptime: 99.97%", "color": "#22C55E"}'
echo '{"boardId":"my-board-id","blocks":[{"text":"From pipe"}]}' | pushtodisplay send --stdin
If no -b flag is provided, the server uses your default board.
| Flag | Values | Description |
|---|---|---|
-s, --size | small, medium, large | Text size |
-w, --weight | regular, semibold, bold | Font weight |
-c, --color | Hex color (#RRGGBB) | Text color |
--background | Hex color (#RRGGBB) | Background color |
| Flag | Values | Description |
|---|---|---|
-p, --panel | 1–4 | Target panel number |
--full-panel | — | Fill the entire panel area |
--density | compact, standard, spacious | Content spacing |
--align-x | start, center, end | Horizontal alignment |
--align-y | start, center, end | Vertical alignment |
| Flag | Description |
|---|---|
-b, --board | Board ID |
--block | Styled block as JSON (repeatable) |
--stdin | Read full JSON request from stdin |
boardspushtodisplay boards list # List all boards
pushtodisplay boards get # Get board details pushtodisplay boards create -n "Name" # Create a board pushtodisplay boards create -n "Dash" -l 4 # Create with a layout pushtodisplay boards delete # Delete a board
Create options:
| Flag | Description |
|---|---|
-n, --name | Board name (required) |
-d, --description | Board description |
-l, --layout | Layout ID |
devicespushtodisplay devices list # List active device-board streams
configpushtodisplay config # Show current configuration
pushtodisplay config show # Same as above
Add --json to any command for machine-readable output:
pushtodisplay boards list --json
pushtodisplay send -b my-board "test" --json
Configuration is resolved in order: environment variables → config file → defaults.
| Env var | Description | Default |
|---|---|---|
PTD_API_URL | API endpoint | https://api.pushtodisplay.com |
PTD_SERVICE_URL | Service endpoint | https://services.pushtodisplay.com |
PTD_IDP_URL | Identity provider | https://idp.pushtodisplay.com |
PTD_CONFIG_DIR | Config directory | ~/.config/pushtodisplay |
The CLI includes a built-in Model Context Protocol server, giving AI agents (Claude, Cursor, VS Code Copilot, and others) direct access to your display boards.
The MCP server inherits your CLI session — if you've run pushtodisplay auth login, it authenticates automatically.
claude mcp add pushtodisplay -- npx pushtodisplay mcp
Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": { "pushtodisplay": { "command": "npx", "args": ["pushtodisplay", "mcp"] } } }
Open Settings → MCP Servers → Add Server, or edit .cursor/mcp.json:
{
"mcpServers": { "pushtodisplay": { "command": "npx", "args": ["pushtodisplay", "mcp"] } } }
Add to .vscode/mcp.json:
{
"servers": { "pushtodisplay": { "command": "npx", "args": ["pushtodisplay", "mcp"] } } }
Any MCP client that supports stdio transport can use Push To Display. The server command is:
npx pushtodisplay mcp
| Tool | Description |
|---|---|
pushtodisplay_send_update | Send content to a board |
pushtodisplay_list_boards | List all boards |
pushtodisplay_get_board | Get details of a board |
pushtodisplay_create_board | Create a new board |
pushtodisplay_update_board | Update a board's name, description, or layout |
pushtodisplay_set_default_board | Set a board as your default |
pushtodisplay_delete_board | Delete a board permanently |
pushtodisplay_list_devices | List active device connections |
| Command | Description |
|---|---|
auth login | Log in (browser or device code) |
auth logout | Remove stored credentials |
auth status | Show current auth status |
send [text...] | Send a display update |
boards list | List your boards |
boards get | Get board details |
boards create | Create a new board |
boards delete | Delete a board |
devices list | List active device connections |
config | Show current configuration |
mcp | Start the MCP server |
For CI/CD pipelines and scripts where interactive login isn't available, you can authenticate with an API key. Create one from the mobile app or the web portal. API keys start with pt_.
# Via environment variable
export PTD_API_KEY=pt_your_key_here pushtodisplay send "From CI"
pushtodisplay auth login --api-key pt_your_key_here
Note: API key auth only supports the
sendcommand. Useauth loginfor full access to boards, devices, and config management.
_4-panel layout — regional status at a glance_
_Multi-panel with CI/CD pipeline and infrastructure logs_
_Incident timeline with color-coded severity_
MIT