Skip to main content
Glama
vakandi

mcp-macos-popup

by vakandi
README.md
# mcp-macos-popup

MCP server for native macOS popup notifications, with multi-screen support.

It shows dark glassy popup cards on macOS and lets an AI agent target a specific display. On multi-monitor setups, it can list every screen and return the screen that currently has focus.

## Tools

- `show_popup` — quick notification popup
- `show_docs` — larger Markdown popup
- `dismiss_all_popups` — close all popups
- `list_screens` — list connected displays
- `get_focused_screen` — return the focused display

`show_popup` and `show_docs` accept an optional `screen` argument: display id, index, label, `primary`, or `focused`.

## Install

```bash
npm install -g mcp-macos-popup
```

Or run directly:

```bash
npx mcp-macos-popup
```

Electron is installed automatically as a dependency.

## MCP configuration

```json
{
  "mcpServers": {
    "macos-popup": {
      "command": "mcp-macos-popup"
    }
  }
}
```

## Usage

```bash
mcp-cli call macos-popup show_popup '{"title":"Elia","message":"the answer","level":"info","duration":10}'
mcp-cli call macos-popup list_screens '{}'
mcp-cli call macos-popup get_focused_screen '{}'
```

## Multi-screen

If four displays are connected, call `list_screens` or `get_focused_screen` first, then pass the chosen display id as `screen`:

```bash
mcp-cli call macos-popup show_popup '{"title":"Elia","message":"hello","screen":"focused"}'
```

## Development

```bash
npm install
npm run daemon
```

TDQS

A3.9/5.0

Scored across 5 tools

Disambiguation4/5

show_popup vs show_docs are the closest pair, but descriptions clearly separate them by content type (quick notification vs markdown) and duration. list_screens and get_focused_screen overlap since list_screens already reports focus, making the focused-only tool somewhat redundant, but each still has a distinct intent.

Naming Consistency5/5

All five tools follow a clean snake_case verb_noun pattern (list_screens, get_focused_screen, dismiss_all_popups, show_popup, show_docs). No mixed conventions or camelCase deviations.

Tool Count5/5

Five tools is well-scoped for a popup-display server: enumerate screens, get the active screen, show a quick popup, show a rich popup, and dismiss all. Each earns its place with no filler.

Completeness4/5

Core lifecycle is covered: discover screens, target the focused one, show two popup styles, and clear them. Minor gaps exist—no individual popup dismissal (only dismiss_all_popups) and no way to list currently active popups.

Maintenance

ActivityMaintained
ResponsivenessNo issues