imageLABSCO SUMMARY
Captures without stealing focus, which is why it fits a loop.
A screenshot tool that raises the window it photographs cannot be used while you work; this one can, which is the difference between a party trick and something an agent can call repeatedly while you keep typing. The other decision worth making up front is where the analysis runs: leaving the provider list empty gives you capture with no analysis at all, a local Ollama model keeps the pixels on your machine, and a cloud entry sends your screen to a third party.
What it is
A macOS-only MCP server for screenshots and screen analysis. Captures go through Apple's ScreenCaptureKit, which means they happen without raising or focusing the target window — your workflow is not interrupted to take the picture.
What you get
- Screen capture with flexible targeting through one tool: the whole display, a named app, a window matched by title, the frontmost window, or a process by PID —
image - A
questionon the same call, so a capture and its analysis happen in one round trip rather than two - Discovery for that targeting: list running applications, list one app's windows by name or PID, or check server status including whether the Swift CLI is present and screen-recording permission has been granted —
list - Analysis of an image already on disk, with a question and an optional provider and model override for that call —
analyze - Your choice of vision backend through
PEEPIT_AI_PROVIDERS: a list ofprovider/modelentries tried in order, mixing local Ollama models and cloud ones so a private capture never has to leave the machine - Sane file handling rather than giant inline payloads: screen captures are always written to disk, multiple captures get distinguishing filenames instead of overwriting, and long names are trimmed to the macOS byte limit with non-Latin characters intact
- Browser helper filtering, so asking for a browser window returns the real window instead of a renderer helper process
Requirements
macOS 14.0+ and Node.js 20.0+. Screen Recording permission for whichever app runs the server — your terminal, Claude Desktop, VS Code or Cursor — granted in System Settings and followed by a restart of that app; Accessibility permission is optional but makes window targeting more reliable. The package is @mantisware/peepit-mcp and the documented launch is npx -y @mantisware/peepit-mcp. AI analysis is off until PEEPIT_AI_PROVIDERS is set, and cloud providers need their own key — OPENAI_API_KEY for OpenAI. Local analysis needs Ollama running with a vision model pulled. Optional variables cover the log level and file, the default save path, the Ollama base URL, the CLI timeout and a custom CLI path.
Setup effort
One command — npx -y @mantisware/peepit-mcp
USE CASES
Debugging a UI without describing it
Capture the app window and ask what is wrong in the same call, so the model reasons about the actual rendering instead of your account of it.
Capturing the right window when several are open
List the app's windows first, then target the one you want by title or PID rather than guessing which is frontmost.
Keeping screen content off the internet
Point the provider list at a local Ollama vision model, so captures are analysed on the same machine that took them.
Working out why capture is failing
Check server status for the Swift CLI and the screen-recording permission before digging through logs.
3 tools
Listed in project docs. Your client may show a different list.
listanalyzeBEFORE YOU INSTALL
What to know first
Tools you get
3 tools named in the project's documentation.
Requires
- npx on PATH
- Node.js 20.0+
Where it runs
Both documented clients run the server on your machine.
INSTALLATION
Connect your client
Server setup
npx -y @mantisware/peepit-mcpMCP Clients
Cursor, Claude Desktop
{
"mcpServers": {
"peepit": {
"command": "npx",
"args": [
"-y",
"@mantisware/peepit-mcp"
],
"env": {
"PEEPIT_AI_PROVIDERS": "openai/gpt-4o,ollama/llava:latest"
}
}
}
}