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
| Name | Type | Required | Description |
|---|---|---|---|
action | string one of "list", "look", "locate" | yes | What 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_spaces | boolean | no | list: windows on every Space / desktop too (default: this one). |
window_id | integer | no | look: a window's id from list. locate: only search this window. |
title | string | no | look: a window by its title instead (an exact match wins over a substring). |
owner | string | no | look: the app that owns the titled window. |
rect | integer[] | no | look: [x, y, width, height] in global screen points. |
display | integer | no | look: a display's id from list. |
dialog | string one of "settings", "about", "confirm", "export", "video_export", "audio_export", "share" | no | look: 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. |
id | string | no | look, dialog share: the item to share (default the current item). |
path | string | no | look, dialog share: or its path or name. |
folder_id | integer | no | look, dialog share: a folder (an id from library_find folders) instead of an item. |
demo | boolean | no | look, dialog share of a folder: placeholder people and links (default true). |
name | string | no | locate: 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.