Command Palette

Search for a command to run...

Home / Servers

pbscope

Updated 1mo ago

by pwrdrvr

PbScope

macOS pasteboard diagnostics. PbScope watches NSPasteboard.general, records every clipboard generation as an event (who wrote it, which flavor UTIs were declared, what they weigh once materialized), and exposes the whole history to AI agents over an HTTP MCP server — so you can run one instance on the machine that copies and another on the machine that pastes, and let an agent compare what each side saw.

Built by PwrDrvr to diagnose clipboard-transfer problems in PwrSnap (uncompressed-TIFF size bloat over Universal Clipboard / Splashtop, flavors dying between copy and paste), but it is PwrSnap-agnostic: it observes the system pasteboard.

Why observing the clipboard is tricky (and how PbScope handles it)

Many pasteboard flavors are promised, not rendered — the source app only produces the bytes when a paste target asks. Reading a flavor is therefore a side-effectful act: it resolves promises and can trigger Universal Clipboard network transfers, changing the very behavior you're debugging.

PbScope is passive by default: it polls changeCount (~150ms) and enumerates each item's declared UTIs, which does not materialize data. Sizes, hashes, and previews appear only when you:

  • click a flavor chip (fetch that one flavor),
  • enable Auto-fetch contents (materialize every flavor of each new event),
  • run Paste test (read every flavor the way a real paste target would), or
  • call the side-effect-marked MCP tools.

Every fetch is recorded on the event, so you can tell afterward whether observation perturbed the experiment.

Attribution

NSPasteboard does not record which app wrote it. PbScope badges events using presence-only markers in the declared flavor set:

  • PwrSnap — any com.pwrdrvr.* UTI present
  • Universal Clipboardcom.apple.is-remote-clipboard
  • concealed / transient — the org.nspasteboard.* conventions

Install / run

Requires macOS, Node ≥ 24 (.nvmrc), pnpm, and Xcode command line tools (swiftc).

pnpm install        # also compiles the Swift helper (build/native/pasteboard-monitor)
pnpm dev            # run the app

Package a distributable zip (ad-hoc signed; right-click → Open on the target machine, or xattr -dr com.apple.quarantine PbScope.app):

pnpm package

Closing the window quits the app (and its MCP server) — the server only runs while PbScope is visibly running in the Dock.

MCP server

Streamable HTTP, stateless, no auth — intended for localhost and trusted private networks only.

  • Default: http://127.0.0.1:4577/mcp
  • Health check: GET /healthz
  • LAN mode (for the remote-machine workflow): launch with --lan or PBSCOPE_HOST=0.0.0.0; change the port with PBSCOPE_PORT.

Connect from Claude Code:

claude mcp add --transport http pbscope-local http://127.0.0.1:4577/mcp
claude mcp add --transport http pbscope-remote http://192.168.1.50:4577/mcp

Tools

ToolSide effectsWhat it does
pb_statusnoneHelper liveness, current changeCount, event count, auto-fetch state
pb_list_eventsnoneEvent history: declared UTIs per item, markers, superseded flag, recorded fetches (sinceSeq, limit, pwrsnapOnly)
pb_get_eventnoneFull detail for one event by seq
pb_fetch_flavormaterializesdata(forType:) for one flavor of the current pasteboard → byteLength, sha256, duration (optional inline base64)
pb_paste_testmaterializesRead every declared flavor like a paste target; per-flavor size/duration plus NSImage(pasteboard:) decodability

A typical two-machine session

Related servers

n8n

Updated today

by n8n-io

Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.

204,501

mcp-server-fetch

OfficialUpdated 14d ago

by modelcontextprotocol

A Model Context Protocol server providing tools to fetch and convert web content for usage by LLMs

90,371

@modelcontextprotocol/server-everything

OfficialUpdated 14d ago

by modelcontextprotocol

MCP server that exercises all the features of the MCP protocol

90,371

mcp-server-git

OfficialUpdated 14d ago

by modelcontextprotocol

A Model Context Protocol server providing tools to read, search, and manipulate Git repositories programmatically via LLMs

90,371