computermcp

Computer MCP / Install / Claude Desktop

Install Computer MCP for Claude Desktop

Three steps, about two minutes. Claude Desktop drives your real Mac with password fields blacked out before any screenshot is written, and a consent gate on every write.

The whole thing, in three steps

  1. Register the server with Claude Desktop.
  2. Grant two macOS permissions. This is the step only you can do. Nothing works until it is done.
  3. Restart Claude Desktop and verify by asking the agent to call computer_permissions.

Start in read-only. Set CMCP_MODE=readonly for the first run and the fourteen write tools are not even listed to the model. It can look at your screen and it cannot touch anything. You see the whole tool list before you grant anything.

Step 1: Add the server to Claude Desktop

Claude Desktop keeps its MCP servers in one file. On macOS it is here:

~/Library/Application Support/Claude/claude_desktop_config.json

Open it from the app instead of hunting for it: Settings → Developer → Edit Config. Add the server inside mcpServers, creating that key if the file does not have one yet:

{
  "mcpServers": {
    "computer": {
      "command": "npx",
      "args": ["-y", "@agent360/computer-mcp@latest"]
    }
  }
}

Claude Desktop only reads this file at launch. Quit it properly with Cmd+Q and open it again: closing the window is not enough, and a server that will not appear is almost always this.

Step 1b: pick the mode before the first run

CMCP_MODEWhat the agent can doUse it when
readonlyOnly the 9 read tools are listed. The write tools do not exist as far as the model is concerned.Evaluating, or the agent only needs to look. Start here.
askThe default. One dialog grants the session. Password managers and terminals ask every single time regardless.Normal use.
allowWrites proceed without asking, still logged. Dangerous apps still ask, and that is not configurable.Long unattended runs you have already decided to trust.

To start read-only:

{
  "mcpServers": {
    "computer": {
      "command": "npx",
      "args": ["-y", "@agent360/computer-mcp@latest"],
      "env": { "CMCP_MODE": "readonly" }
    }
  }
}

What you get today, honestly. npx currently serves 0.1.0, which has 12 tools. The code in the repository has 25: menu bar access, window control, moving windows between screens, pasting, opening and quitting apps, waiting for something to appear, writing into a field behind another window, and asking you for a password without the model ever seeing it. Those ship with 0.2.0, which is built and tested but not published yet.

Everything else on this page works with what you install today. If you want all of them now, build from source: about seventeen seconds, and nothing to download.

Step 2: grant two macOS permissions

This is the step only a human can do. No agent, script or installer can click it for you, by design: these are the permissions that let software see and drive your screen.

Open System Settings → Privacy & Security and add the app to both:

1. Accessibility  ·  2. Screen Recording

Which app do you add? Whichever one the dialog names when it appears. macOS decides for itself which program a permission belongs to, and it is not always the one you would expect: if you started things from a terminal window it is usually the terminal, and if Claude Desktop started it, it may be Claude Desktop itself. No dialog at all? Start with the app you launched from, and check again.

Something we have not tested, and would rather say so. We have not tried this on a fresh Mac with the permissions wiped, so we cannot promise which of the two it lands on in your setup. We also do not know what happens when you update: the small helper program gets rebuilt each time, and macOS may see the new build as a different program and ask you again. If that happens to you, telling us is genuinely useful - issue #4 is where we are collecting it.

Step 3: restart and verify

Run codex mcp list. The server should appear. Then start Claude Desktop and ask it to call computer_permissions. It reports each permission separately, so a partial grant shows up as a partial grant rather than as a mysterious failure later.

Then ask for one screenshot. An image that comes back with both permissions granted is the real end-to-end proof that the install worked.

Now what: things worth actually saying

What it deliberately will not do

No shell execution, no arbitrary file access, no URL fetching. Each would be a few lines of code. A computer-control server with a shell inside it is remote access under a friendlier name. If you want a shell, install a shell MCP server: then you have chosen it, and the choice is visible in your config.

Other clients

Same server, same three steps: Claude Code · Codex · Cursor · GitHub Copilot · VS Code. Any other MCP client reads the same JSON block shown for Cursor. There is also an AI-assisted install guide written for an agent that is setting this up on your behalf.

Other clients

Same server, same three steps: GitHub Copilot · VS Code · Claude Code · Codex · Cursor. There is also an AI-assisted install guide written for an agent setting this up on your behalf.

FAQ

Does Computer MCP need an API key or an account?

No. There is no account, no key, and no model inside the server. It has no network calls of its own: the only thing that talks to a model is the MCP client you already use. You can verify that with a single grep for fetch, http or net in the source.

Which app do I grant the macOS permissions to?

Whichever app the system dialog names. macOS attributes Accessibility and Screen Recording to the responsible process, and which process that is depends on how the server was launched: from a terminal it is usually the terminal, launched by an MCP client over npx it may be the client. If no dialog appears, start with the app that launched the client and call computer_permissions again. We have not yet measured this from a machine with permissions reset, and we would rather say so than guess.

Can the agent see my passwords?

Not through a screenshot. Secure text fields and the windows of listed password managers are painted opaque black on the bitmap while it is still in memory, before any PNG is written to disk. computer_inspect never returns the value of a secure field, and computer_set_value refuses to write into one. The honest limit: only what macOS itself marks as secure is covered. A password sitting in a plain text editor, or a token in a terminal buffer, is not marked and will not be hidden.

Does it take over my screen while it works?

It does not have to. computer_press fires an element's own accessibility action instead of simulating a click, so it works on a window behind another one and never moves your pointer. computer_set_value types into a field the same way. computer_wait_for waits for an element to appear instead of taking screenshots in a loop. Plain clicking and typing do use the real cursor and keyboard, because macOS offers no other route for those.

What happens if I walk away and never answer a consent dialog?

It is refused. A dialog that times out is a refusal and never an approval, and the refusal is written to the log like any other outcome. CMCP_ASK_TIMEOUT sets the wait in seconds, default 60.

Can several agents use it at the same time?

Yes. Each MCP client starts its own server process, and every line in the audit log carries a per-server session mark so you can tell afterwards which agent did what. Set CMCP_CLIENT to give a session a readable name.

Is there a Windows or Linux build?

No, and there is no plan for one. The three guarantees are built on macOS APIs: the Accessibility API for what an element is, and ScreenCaptureKit for the screenshot. A port would be a different product with different guarantees, not the same one recompiled.

Related

All 25 tools What it can and cannot reach When not to use it Uninstall Threat model