Returning paths and metadata instead of image bytes means the client reads only the screenshots it decides it needs, which keeps a stack of a dozen captures from flooding a context window. Deletion being a separate explicit step follows from the same instinct: retrieval never destroys, so an assistant re-reading the stack cannot quietly consume it. Everything stays on loopback and on disk, which is the right posture for something whose contents are pictures of whatever you had open.
An always-on local server that receives captures from a companion browser extension, writes them to a folder on disk, and serves them to an MCP client. It listens only on the loopback address, so images never leave the machine. Capture and retrieval are decoupled by the folder itself, which is why the same stack is reachable over two different transports.
- Pending captures listed as a JSON manifest — a stable two-digit number, the absolute path, dimensions and metadata, with no image bytes and no deletion; pass specific numbers to list only those — `get_screenshots`
- Captures deleted explicitly: name numbers to remove some, or omit them to clear the stack, after which numbering restarts — `clear_screenshots`
- A count of pending captures without retrieving anything — `count_screenshots`
- A separation worth relying on: two of the three tools are read-only, and only the clear tool destroys anything
- Each capture stored as an image file plus a twin JSON holding url, title, timestamp and dimensions, so the context of a screenshot survives alongside it
- Two transports over the same on-disk stack: register the HTTP endpoint if the server is running, or let the client spawn the stdio front-end
The companion browser extension, which does the capturing — this server alone does nothing. Node.js 18 or higher, and an MCP client speaking either streamable HTTP or stdio. Install with `npm i -g snapstack-server`, then `snapstack enable` registers it as a background service that starts on login, restarts on crash and updates itself on launch; running `snapstack` alone reports service and server health and checks for updates. On Windows use an Administrator terminal, or the global install and service registration may be rejected. Published as `snapstack-server` (1.2.3), MIT licensed.
One command — npm i -g snapstack-server
