Browse the docs

Trigger on anything an MCP server knows

Run a macro when a pull request, an issue, a database row or any other MCP resource changes, with no code for the service.

MCP servers already say what they hold. Each thing is a resource with an address, and a server that supports it will tell its clients when one changes. Switchboard listens, so every MCP server becomes a source of triggers.

Set up #

  1. Add the server in Settings › Agents, under "Servers this Mac's macros may call". It can be a program on this Mac or a web address.

  2. In a macro, choose When > "An MCP resource changes". Pick the server. Its resources and templates are listed with their type; pick one, or type an address or a pattern such as github://repos/acme/*/pulls/*.

  3. The preview shows what the resource holds now. For JSON it shows a tree: click a key to put it in the filter.

  4. Write the filter if you only want some changes, for example json.state == "failed". Turn the macro on.

The first read is only a baseline. Change the resource and the macro runs.

Push or poll #

If the server says it can be subscribed to, the macro runs the moment the server reports the change. Many servers can't. For those Switchboard reads the resource every minute (you can set 15 seconds at the least) and compares. The trigger row tells you which one you have, and Settings › Agents & MCP shows each server's state: how many triggers listen, push or polling, the last event, and Reconnect.

When it goes quiet #

Connections die: a program crashes, a proxy drops a stream, the Mac sleeps. Switchboard reconnects with a growing pause, asks the server for a sign of life every minute, reconnects every server when the Mac wakes, and reads again after each reconnect so a change you missed still runs the macro once. If a listener is dead, "Last event" in Settings › Agents & MCP is where you will see it.

The filter #

A filter runs only on the change into true. A pull request that is failed and gets another commit while still failed does not run the macro again; it runs again after it has been green and fails once more. This is what you want for notifications.

Reading without a trigger #

Read an MCP resource reads one resource inside a macro, and An MCP resource says checks an expression over one as an Only if.

An MCP resource changes, Read an MCP resource, An MCP resource says