Cua Local
FreeNot checkedProvides a local MCP bridge for AI assistants to control a Mac by observing screen state and performing actions like mouse movement, clicking, typing, and openi
About
Provides a local MCP bridge for AI assistants to control a Mac by observing screen state and performing actions like mouse movement, clicking, typing, and opening URLs.
README
Use ChatGPT with MCP to control your local Mac, similar to Computer Use.
cua-local is a small local bridge that lets ChatGPT, or another MCP-compatible AI client, observe and operate your own Mac in a controlled loop:
observe -> act -> observe
It can expose basic tools for reading app/screen state, moving the mouse, clicking, typing, scrolling, dragging, pressing keys, and opening URLs. Everything runs locally on macOS, while the AI assistant connects through MCP.
How it works
cua-local uses native macOS capabilities:
- AppleScript / Apple Events for app control
- System Events for keyboard input
screencapturefor screen observation- Swift + CGEvent for mouse movement, clicks, scroll, and drag
In other words: it gives ChatGPT a local Computer Use-like control layer for your Mac through MCP. It is inspired by the Computer Use idea, but it is not an official Computer Use client and not a full desktop automation product.
Quick start
Requirements:
macOS
Node.js >= 20
Xcode Command Line Tools
Run:
npm run doctor
npm run check
npm run smoke
npm run demo
npm run doctor prints a ready-to-copy MCP config for the current checkout.
Does it require DevSpace?
No. cua-local itself is just a local MCP server and can run on its own.
DevSpace is only one possible bridge when you want to call this local MCP server from ChatGPT. If your AI client can launch local MCP servers directly, you do not need DevSpace. If the client runs in the cloud and cannot directly reach your Mac, you need some bridge such as DevSpace, a tunnel, or another remote MCP connection layer.
Typical setups:
Local MCP client -> cua-local -> your Mac
ChatGPT -> DevSpace/tunnel/bridge -> cua-local -> your Mac
MCP config
Use absolute paths on the target machine:
{
"mcpServers": {
"computer-use-local": {
"command": "node",
"args": ["/ABSOLUTE/PATH/TO/cua-local/cua-local.mjs"],
"cwd": "/ABSOLUTE/PATH/TO/cua-local"
}
}
}
Scripts
npm run start # start MCP server over stdio
npm run doctor # check dependencies and macOS permissions
npm run check # syntax-check project scripts
npm run smoke # lightweight core validation
npm run demo # safe observe -> move pointer -> observe sample
Tools
list_appsget_app_stateget_screen_statehealth_checkopen_urltype_textpress_keymove_mouseclickscrolldragset_value
Safety
This tool can operate the local computer. Only connect it to MCP hosts you trust.
click blocks common high-risk labels such as Buy, Purchase, Pay, Delete, Remove, Send, Submit, Publish, Share, Update, and Install unless confirm_risk_action=true is explicitly provided.
Do not expose this server to the public internet.
Local files not to commit
cua-local.mcp.json
.env
traces/
/tmp/cua-local-*
~/.cua-local/
Limitations
- Native app support is partial and app-specific.
- Chrome webpage DOM exposure is limited by macOS Accessibility.
- Multi-display screenshot stitching still needs hardening.
- Trace writing is opt-in via
CUA_LOCAL_TRACE=1orCUA_LOCAL_TRACE_DIR=....
License
MIT. See LICENSE.
Install Cua Local in Claude Desktop, Claude Code & Cursor
unyly install cua-localInstalls into Claude Desktop, Claude Code, Cursor & VS Code — handles npx, uvx and build-from-source repos for you.
First time? Get the CLI: curl -fsSL https://unyly.org/install | sh
Or configure manually
Run in your terminal:
claude mcp add cua-local -- npx -y github:uxnew/cua-localFAQ
Is Cua Local MCP free?
Yes, Cua Local MCP is free — one-click install via Unyly at no cost.
Does Cua Local need an API key?
No, Cua Local runs without API keys or environment variables.
Is Cua Local hosted or self-hosted?
Self-hosted: the server runs locally on your machine via the install command above.
How do I install Cua Local in Claude Desktop, Claude Code or Cursor?
Open Cua Local on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.
Related MCPs
Fetch
Web content fetching and conversion for efficient LLM usage.
AWS KB Retrieval
Retrieval from AWS Knowledge Base using Bedrock Agent Runtime.
by modelcontextprotocolSpring AI MCP Server
Provides auto-configuration for setting up an MCP server in Spring Boot applications.
llm-analysis-assistant
A very streamlined mcp client that supports calling and monitoring stdio/sse/streamableHttp, and can also view request responses through the /logs page. It also
by xuzexin-hzCompare Cua Local with
Not sure what to pick?
Find your stack in 60 seconds
Author?
Embed badge for your README
Browse similar
All ai MCPs
