Agents & MCP
Your agent already knows the feature. Give it a camera.
DemoTake runs a Model Context Protocol server on your Mac. Any MCP client can list windows, rehearse a flow, record scenes, assert outcomes, edit by intent and export—using explicit handles, not hidden session state.
Connect
Two ways in: HTTP or stdio.
Streamable HTTP on http://127.0.0.1:47823/mcp, or the bundled demotake-mcp bridge for stdio-only clients. The server only accepts loopback connections.
claude mcp add --transport http demotake http://127.0.0.1:47823/mcp{
"mcpServers": {
"demotake": { "url": "http://127.0.0.1:47823/mcp" }
}
}[mcp_servers.demotake]
command = "/Applications/DemoTake.app/Contents/MacOS/demotake-mcp"{
"mcpServers": {
"demotake": { "command": "/Applications/DemoTake.app/Contents/MacOS/demotake-mcp" }
}
}DemoTake must be running for agents to connect. Settings → Agents shows the live endpoint, the bridge path on your Mac and every connected client.
Which edition does your agent need?
Both Mac editions run the same MCP server for recording, scenes, assertions, editing and export. Only DemoTake Agent can also operate your app for the agent.
DemoTake Agent
Operates your appApp control is DemoTake Agent only. Your agent asks DemoTake to press buttons and fill fields through Accessibility, in the background, and gets a verified take back.
DemoTake Studio
BYO computer-use agentThe App Sandbox keeps Studio from operating other apps. Pair it with an agent that has its own computer-use tools: the agent drives your app, Studio records and edits. Why?
Recording a web app instead? DemoTake Web records in a cloud browser, driven by hand or by DemoTake's hosted agent, with no local MCP setup. Compare editions
The simple path
Ask for the demo in plain words.
Agents that want a video call one tool. Agents that want control use the primitives. Either way the result is an editable take, not a flat MP4.
“Show that login works, create a project and export it. Make a clean 45-second review video, hide the credentials, use a calm pointer and remove waits longer than a second. Give me 16:9 and 9:16.”
{
"goal": "Sign in, create a project, export it",
"target": { "app": "com.example.invoices" },
"purpose": "review",
"style": { "pointer": "calm", "max_wait": 1.0 },
"outputs": ["16:9", "9:16", "reviewer_pack"]
}
// → take handle, scene list, assertion results, export jobsTool surface
Primitives for agents that want the wheel.
Every stateful call takes an explicit project, take or recording handle, in line with the stateless MCP core. Interaction tools only appear in DemoTake Agent; DemoTake Studio lists everything else.
Targets
targets_listtargets_inspecttargets_capabilities
Takes
take_createtake_rehearsetake_start_scenetake_checkpointtake_retry_scene
Capture
capture_startcapture_pausecapture_resumecapture_stopcapture_status
Observe
observe_stateobserve_snapshotobserve_wait_for
Interaction
DemoTake Agent onlyui_perform
Verify
assert_addassert_check
Edit
edit_applyedit_commandtimeline_get
Export
export_renderexport_statustake_manifest
Events
events_poll
One call
goal + target + style + outputs → a finished take
demo_create
tools/list returns from the version you have installed, including full JSON Schemas for every argument.Can this run unobtrusively?
The agent asks. DemoTake tells the truth.
targets_capabilities reports how a flow can run on this Mac, so nobody is surprised when the pointer moves.
Background capture
background_capture_onlyDemoTake records the window; your agent drives with its own computer-use tools. This is how DemoTake Studio works. You can usually keep working until that tool takes focus.
Semantic background
background_semanticDemoTake Agent presses buttons and fills fields through Accessibility where the app supports it. The viewer's cursor is rendered later, so your real pointer stays put.
Foreground control
foreground_requiredDemoTake Agent only. Real mouse and keyboard events, off by default; when enabled, DemoTake shows a clear indicator that the agent has the mouse.
Realtime feedback
Structured events, not a 60 fps firehose.
Video stays local. Agents get small, typed events as the take progresses and request a snapshot only when they need to look.
Poll with a cursor, or subscribe over the server's event stream.
Failed assertions and stuck scenes surface immediately, so the agent retries one scene.
human_input_requiredhands control back to you for credentials, 2FA and anything the agent shouldn't own.
Event types
scene_startedtarget_changedaction_performedclassificationassertion_passedassertion_failedcheckpoint_createdhuman_input_requiredscene_retriedrender_progress