Skip to content

screen

Capture and recordingInteract

What is on screen, without saving anything: the windows and displays, a picture of a window, rect, display or SuperCapture dialog, and where a SuperCapture control is. Every position is in global screen points (points on macOS), the space input and capture take. To place a control on a window's picture, subtract the window's x and y and multiply by the picture's pixels per point.

Needs the Interact level or above; hidden from a read-only client.

Parameters

NameTypeRequiredDescription
actionstring one of "list", "look", "locate"yesWhat to do. list: The windows on screen (id, owner, title, a browser window's address, frame) and the displays (id, name, frame, scale in pixels per point, main), in global screen points. (all_spaces) look: A picture of the screen, not saved: a window (window_id, or title and owner), a rect, a display, one of SuperCapture's dialogs shown for the picture and closed (dialog), or with none of these SuperCapture's main window. The screen's own pixels. (window_id, title, owner, rect, display, dialog, id, path, folder_id, demo) locate: Where a control of SuperCapture's is on screen, and the text it shows: by its x:Name, the accessibility name a list row carries (a recorder source, the video editor's rail), or an open menu item's label; dropdowns, flyouts and context menus open over the windows included. Without name, every visible named control. (name, window_id)
all_spacesbooleannolist: windows on every Space / desktop too (default: this one).
window_idintegernolook: a window's id from list. locate: only search this window.
titlestringnolook: a window by its title instead (an exact match wins over a substring).
ownerstringnolook: the app that owns the titled window.
rectinteger[]nolook: [x, y, width, height] in global screen points.
displayintegernolook: a display's id from list.
dialogstring one of "settings", "about", "confirm", "export", "video_export", "audio_export", "share"nolook: show one of SuperCapture's dialogs, take its picture, close it. confirm and share are in-app dialogs (the whole window is taken); the rest are taken alone.
idstringnolook, dialog share: the item to share (default the current item).
pathstringnolook, dialog share: or its path or name.
folder_idintegernolook, dialog share: a folder (an id from library_find folders) instead of an item.
demobooleannolook, dialog share of a folder: placeholder people and links (default true).
namestringnolocate: the control, e.g. 'GallerySearchBox', a row's accessibility name, e.g. 'Captions', or an open menu item's label, e.g. 'Duplicate' (a trailing '…' is optional).

Example

A JSON-RPC call to POST http://localhost:21516/mcp with the bearer token, filling in the required parameters:

{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "screen",
"arguments": {
"action": "list"
}
}
}

See the MCP server overview for how to connect a client and where the token lives.