Skip to content
DocsConnect your agent
Docs / Agents / Connect your agent

Connect your agent

DemoTake runs a local MCP server on your Mac. Point Claude Code, Codex, Cursor or any MCP client at it with one line, and your agent can plan, record, verify and export demos.

2 minutesDemoTake Agent and StudioClaude Code · Codex · Cursor

Your coding agent already knows what it just built. Connected to DemoTake, it can record that feature scene by scene, check that each step worked and export a finished video, without you touching the recorder.

DemoTake talks to agents over MCP. The server runs inside the app, listens only on your Mac (127.0.0.1) and requires an access token on every request, so other machines and random local processes can't use it.

The server starts with the app. Settings › Agents shows it running, with its endpoint and token. You don't need to copy either for the setups below.

Paste one line for your client (below). It runs demotake-mcp, a small bridge inside the app that finds the endpoint and token by itself.

Click Check Connection in Settings › Agents. DemoTake connects the way an agent does and lists its tools.

Tell your agent what to record. It calls the tools; you watch the take come together.

The bridge

Every Mac edition ships a stdio bridge next to the app's executable:

DemoTake Agent
/Applications/DemoTake.app/Contents/MacOS/demotake-mcp
DemoTake Studio
"/Applications/DemoTake Studio.app/Contents/MacOS/demotake-mcp"

Your client starts the bridge; the bridge forwards messages to DemoTake's server. It reads the endpoint and token from DemoTake's own files (~/Library/Application Support/DemoTake/mcp-endpoint.json and mcp-token, or the App Store edition's container), so no secret ends up in your client's config.

The bridge reconnects on its own. If DemoTake restarts, moves to another port or gets a new token, the bridge finds the new values and retries for about 30 seconds, so your agent's session keeps working. It never sends a tool call twice: if the connection dropped while a call was running, the agent gets an error and decides whether to repeat it. Event notifications resume after a restart too.

If DemoTake isn't running, the bridge opens it in the background and waits about 10 seconds for the server. It opens the app at most once a minute. It opens the edition it ships inside: the bridge in DemoTake Studio opens DemoTake Studio, the one in DemoTake Agent opens DemoTake Agent. If that app isn't installed, it opens whichever edition is.

Claude Code

Run this once in a terminal:

Terminal
claude mcp add demotake -- /Applications/DemoTake.app/Contents/MacOS/demotake-mcp

Settings › Agents › Claude Code (terminal) also has a ready-made command that connects over HTTP with your token filled in, if you prefer that.

Codex

In DemoTake Agent, open Settings › Agents and click Add to Codex…. DemoTake shows exactly what it will write to ~/.codex/config.toml before writing it. Only the demotake entry is added or updated; the rest of the file stays as it is, and the previous file is saved as config.toml.demotake-backup. Restart Codex to pick it up.

To do it by hand (and in DemoTake Studio), add this table to ~/.codex/config.toml:

~/.codex/config.toml
[mcp_servers.demotake]
command = "/Applications/DemoTake.app/Contents/MacOS/demotake-mcp"

Cursor

Add DemoTake to .cursor/mcp.json in your project:

.cursor/mcp.json
{
  "mcpServers": {
    "demotake": {
      "command": "/Applications/DemoTake.app/Contents/MacOS/demotake-mcp"
    }
  }
}

Any MCP client

Clients that start a local command use the bridge path as the command, with no arguments. Clients that speak Streamable HTTP connect straight to the server:

Streamable HTTP
POST http://127.0.0.1:47823/mcp
Authorization: Bearer <access token from Settings › Agents>

Copy the endpoint and the token from Settings › Agents (the Access token row has Reveal and a copy button). Treat the token like a password: anything that has it can drive DemoTake.

DemoTake › Settings › Agents
Local MCP server
Endpointhttp://127.0.0.1:47823/mcp
Access token••••••••••••••••••••••••
Last clientClaude Code
App control toolsEnabled (DemoTake Agent)
Connected to Claude CodeCheck Connection
CodexAdd to Codex…

The server is loopback only (127.0.0.1) and requires an access token.

The Connect Your Agent section below these rows has copyable setup for Claude Code, Codex, Cursor and any MCP client.

Both editions on one Mac

DemoTake Agent and DemoTake Studio can be installed side by side. Both prefer port 47823; when both run, the second one binds the next free port (47824, and so on) and writes its own discovery file. Each app's Settings › Agents shows its own endpoint. The bridge prefers the edition it ships inside and uses the token that edition wrote, falling back to the other one if only that one is running. Pass --port 47824 (or set DEMOTAKE_MCP_PORT) to pin one.

What your agent can do in each edition

Both editions give agents the whole recorder and editor: plan takes, capture, check assertions, edit, export and read the proof manifest. The difference is who operates the app being recorded. Your agent can ask with targets_capabilities, which returns one of three execution modes:

Mode What it means Where
background_semantic DemoTake operates the app through Accessibility without touching your mouse. You can usually keep working. DemoTake Agent, with Accessibility allowed
background_capture_only DemoTake records the window, even when it's covered; your agent operates the app with its own tools and reports each step with take_log_event. DemoTake Studio, or any app DemoTake can't operate
foreground_required The action needs the real mouse and keyboard, so the agent takes them while it runs. DemoTake Agent, only when allowed

In background_capture_only mode DemoTake doesn't draw its own pointer by default, because the tool your agent drives the app with usually draws one. Two cursors in one video look wrong. Your agent can turn it on with capture_start {pointer: "on"}.

Real mouse and keyboard input only happens when the tool call passes allow_foreground: true or you turn on Settings › Capture › Allow foreground control. A banner shows while an agent is in control. DemoTake Studio never takes the mouse or keyboard: its app-control tools (pointer_click, keyboard_type and the rest) aren't listed at all.

Note:

DemoTake Agent needs Accessibility permission to observe and operate apps, and every edition needs Screen Recording to record. If an agent's call needs a permission that's off, DemoTake brings up a Permission Needed window for you and tells the agent it's waiting. See Install and permissions.

Your first prompt

Start with something small and concrete. This is the prompt DemoTake suggests under Then Just Ask:

Record the feature we just built. Show that login works, create a project and export it. Make a clean 45-second video, hide the credentials, and give me 16:9 and 9:16.

A typical run looks like this:

  1. targets_list
  2. take_create
  3. take_rehearse
  4. capture_start
  5. take_start_sceneper scene
  6. assert_textprove it worked
  7. take_checkpointstable state
  8. capture_stop
  9. edit_command
  10. export_render
What your agent calls for the prompt above.

If a scene goes wrong, the agent retries that scene only. The others keep their footage.

Where to go next

Was this page helpful?