Skip to content
DemoTake

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.

Claude CodeClaude DesktopCodexCursorAny MCP client

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 Code
claude mcp add --transport http demotake http://127.0.0.1:47823/mcp
.cursor/mcp.json
{
  "mcpServers": {
    "demotake": { "url": "http://127.0.0.1:47823/mcp" }
  }
}
~/.codex/config.toml
[mcp_servers.demotake]
command = "/Applications/DemoTake.app/Contents/MacOS/demotake-mcp"
claude_desktop_config.json
{
  "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 app

App 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 agent

The 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.”

tools/call · demo_create
{
  "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 jobs

Tool 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_list
  • targets_inspect
  • targets_capabilities

Takes

  • take_create
  • take_rehearse
  • take_start_scene
  • take_checkpoint
  • take_retry_scene

Capture

  • capture_start
  • capture_pause
  • capture_resume
  • capture_stop
  • capture_status

Observe

  • observe_state
  • observe_snapshot
  • observe_wait_for

Interaction

DemoTake Agent only
  • ui_perform

Verify

  • assert_add
  • assert_check

Edit

  • edit_apply
  • edit_command
  • timeline_get

Export

  • export_render
  • export_status
  • take_manifest

Events

  • events_poll

One call

goal + target + style + outputs → a finished take

  • demo_create
This is the tool surface in DemoTake 1.0. The authoritative contract is whatever 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_only

DemoTake 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_semantic

DemoTake 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_required

DemoTake 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_required hands control back to you for credentials, 2FA and anything the agent shouldn't own.

Event types

  • scene_started
  • target_changed
  • action_performed
  • classification
  • assertion_passed
  • assertion_failed
  • checkpoint_created
  • human_input_required
  • scene_retried
  • render_progress