Auten MCP agent
Computer-use MCP server: give Claude Code, Codex, Cursor or any MCP client hands on a real screen: your computer (Mac/Windows/Linux) and your Android phone (beta).
Files of Auten MCP
auten-ai/
Show the full text286 lines
Auten MCP server
Computer use for the AI agent you already have.
Claude Code, Codex, Cursor, Gemini CLI or any MCP client can click, type and read the screen
on your Mac, Windows or Linux computer — and your Android phone (beta) — in real apps that have no API.
Website | Setup for every client | Pricing | [email protected]

Illustration: the first run is driven by your AI, the next runs replay from memory.
Auten is the hands, your AI is the brain. A small runner on your computer does the clicking, typing and screen reading. Your agent talks to it over MCP (stdio or SSE). Auten does not ship its own model and never needs your AI key; your agent keeps using the plan you already pay for.
What makes it different from a plain mouse and keyboard bridge:
- Reads the UI, not just pixels. It uses the accessibility tree, so your agent gets a numbered
list of real buttons and fields (
list_elementsthenclick_at(3)) instead of guessing coordinates. OCR and real screenshots are there when an app has no accessibility info. - Learns a task once, replays it without AI. After your agent finishes a task, Auten can save it as a skill. The next run replays in seconds, with no tokens spent, and fixes itself when the app's layout changes.
- Passwords stay on your machine.
fill_logintypes a stored secret into a field without the agent ever seeing the value.
What you can ask your agent
Plain requests in the client you already use. The agent decides the steps, Auten does the clicks.
- "Open the supplier portal, download this month's invoices and put them in ~/Invoices."
- "Go through the new leads in the CRM and fill in the missing company names from their emails."
- "Export the report from that desktop app as CSV. It has no API, so use the File menu."
- "On my Android phone, open Instagram and reply to the latest DM with this text." (phone is beta, over USB)
- "That worked. Save it as a skill called
export-report." Next time: "Runexport-report." It replays without AI.
Quick start
1. Install the runner (one command, no admin rights):
# macOS and Linux
curl -fsSL https://auten.ai/install | bash
# Windows (PowerShell)
irm https://auten.ai/install.ps1 | iex
The first run asks you to connect a free key (30 minutes every month, no card).
2. Add Auten to your agent. For Claude Code, Auten can do it by itself:
auten connect
or add it with the Claude Code CLI and check with /mcp:
claude mcp add -s user auten -- auten mcp-bridge
3. Ask in plain words. For example: "Open Figma, export the Hero frame as PNG to my Desktop" or "Go through the unread invoices in my mail and fill them into the accounting app".
Or run it through npx
Any client that can start an npm package can use the launcher instead. It starts the installed runner, and if Auten is not installed yet it tells your agent the one-line install command.
{
"mcpServers": {
"auten": { "command": "npx", "args": ["-y", "@autenai/mcp"] }
}
}
claude mcp add -s user auten -- npx -y @autenai/mcp
Client setup
Every client starts the same stdio command: auten mcp-bridge (or npx -y @autenai/mcp). If your app says it cannot find
auten, use the full path from which auten (usually ~/.local/bin/auten).
OpenAI Codex
codex mcp add auten -- auten mcp-bridge
or in ~/.codex/config.toml:
[mcp_servers.auten]
command = "auten"
args = ["mcp-bridge"]
Cursor
~/.cursor/mcp.json (or .cursor/mcp.json in a project):
{
"mcpServers": {
"auten": { "command": "auten", "args": ["mcp-bridge"] }
}
}
Gemini CLI
gemini mcp add --scope user auten auten mcp-bridge
or the same mcpServers entry in ~/.gemini/settings.json.
Claude Desktop
Settings, Developer, Edit Config
(~/Library/Application Support/Claude/claude_desktop_config.json on macOS,
%APPDATA%\Claude\claude_desktop_config.json on Windows):
{
"mcpServers": {
"auten": { "command": "auten", "args": ["mcp-bridge"] }
}
}
Restart Claude Desktop.
VS Code (GitHub Copilot agent mode)
Run MCP: Open User Configuration and add:
{
"servers": {
"auten": { "type": "stdio", "command": "auten", "args": ["mcp-bridge"] }
}
}
Windsurf
~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"auten": { "command": "auten", "args": ["mcp-bridge"] }
}
}
Zed
~/.config/zed/settings.json:
{
"context_servers": {
"auten": { "command": "auten", "args": ["mcp-bridge"] }
}
}
Cline
MCP Servers, Configure (cline_mcp_settings.json):
{
"mcpServers": {
"auten": { "command": "auten", "args": ["mcp-bridge"] }
}
}
Remote (SSE) instead of stdio
For clients that connect over the network, keep the runner online on the computer it should control:
auten --runner-only
Then use your personal MCP URL from your account page. It contains your key, so keep it private.
claude mcp add --transport sse auten <your-url>
No agent? Give the auten CLI your own key (Anthropic, OpenAI, Google, DeepSeek or any
OpenAI-compatible provider) with auten key add, then run auten "open my calendar and tell me what is next".
Tools
| Group | Tools |
|---|---|
| See the screen | list_elements, read_text, screenshot, screenshot_labeled, vision, screen_info |
| Act | click_at, click, fill, type, paste_text, press_keys, scroll, drag, move_mouse, act_on_matching, menu_select |
| Apps and windows | open_app, open_url, focus_window, browser_tabs, save_file, upload_file, clipboard_read |
| Secrets | list_logins, fill_login, get_profile |
| Learned skills | list_skills, run_skill, skills, show_skill, start_recording, stop_recording, start_fixing, stop_fixing |
| Coordination | ask_user, focus_app, release, gui_status, wait, opened_items, browser_cleanup |
Platforms
macOS (Apple Silicon and Intel), Windows 10/11, Linux (X11), plus an Android phone over USB (beta).
Pricing
| Plan | Runtime | Price |
|---|---|---|
| Free | 30 min every month | €0, no card |
| Starter | 10 h every month | €9/month (early access) |
| Pro | Unlimited | €29/month (early access) |
You bring your own AI, so the price is for Auten only. Details on auten.ai/pricing.
Privacy and safety
- The runner only acts when your MCP client calls a tool. Nothing runs in the background on its own.
- Stored passwords live in the system keychain (macOS, Windows) or a private local vault (Linux) and never reach our servers or the model. A secret that shows up on screen is replaced with a placeholder before your agent sees it.
- Your activity history and learned skills are written to your own computer, not ours. See the privacy policy.
About this repository
This repository holds the public docs, client configs and the @autenai/mcp npm launcher
(bin/auten-mcp.js), all under the MIT LICENSE. The runner itself is distributed
separately through the installers above, under the Auten terms of service. Questions, bugs and feature requests are
welcome as issues or at [email protected].
Auten is made by MB Icecode, Lithuania.
| 1 | <p align="center"> |
| 2 | <a href="https://auten.ai/mcp"><img src="assets/banner.png" alt="Auten: computer use MCP server" width="720" /></a> |
| 3 | </p> |
| 4 | |
| 5 | <h1 align="center">Auten MCP server</h1> |
| 6 | |
| 7 | <p align="center"> |
| 8 | <b>Computer use for the AI agent you already have.</b><br /> |
| 9 | Claude Code, Codex, Cursor, Gemini CLI or any MCP client can click, type and read the screen |
| 10 | on your Mac, Windows or Linux computer — and your Android phone (beta) — in real apps that have no API. |
| 11 | </p> |
| 12 | |
| 13 | <p align="center"> |
| 14 | <a href="https://www.npmjs.com/package/@autenai/mcp"><img src="https://img.shields.io/npm/v/@autenai/mcp?color=00997A&label=npm" alt="npm" /></a> |
| 15 | </p> |
| 16 | |
| 17 | <p align="center"> |
| 18 | <a href="https://auten.ai/mcp">Website</a> | |
| 19 | <a href="https://auten.ai/connect">Setup for every client</a> | |
| 20 | <a href="https://auten.ai/pricing">Pricing</a> | |
| 21 | <a href="mailto:[email protected]">[email protected]</a> |
| 22 | </p> |
| 23 | |
| 24 | <p align="center"> |
| 25 | <img src="assets/demo.gif" alt="Animation: Claude Code asks Auten to reply on Instagram; Auten opens the app, finds the chat and sends. The next run replays the same task from memory in seconds, with no tokens." width="720" /><br /> |
| 26 | <sub>Illustration: the first run is driven by your AI, the next runs replay from memory.</sub> |
| 27 | </p> |
| 28 | |
| 29 | |
| 30 | |
| 31 | Auten is the hands, your AI is the brain. A small runner on your computer does the clicking, |
| 32 | typing and screen reading. Your agent talks to it over MCP (stdio or SSE). Auten does not ship |
| 33 | its own model and never needs your AI key; your agent keeps using the plan you already pay for. |
| 34 | |
| 35 | What makes it different from a plain mouse and keyboard bridge: |
| 36 | |
| 37 | **Reads the UI, not just pixels.** It uses the accessibility tree, so your agent gets a numbered |
| 38 | list of real buttons and fields (`list_elements` then `click_at(3)`) instead of guessing |
| 39 | coordinates. OCR and real screenshots are there when an app has no accessibility info. |
| 40 | **Learns a task once, replays it without AI.** After your agent finishes a task, Auten can save |
| 41 | it as a skill. The next run replays in seconds, with no tokens spent, and fixes itself when the |
| 42 | app's layout changes. |
| 43 | **Passwords stay on your machine.** `fill_login` types a stored secret into a field without the |
| 44 | agent ever seeing the value. |
| 45 | |
| 46 | ## What you can ask your agent |
| 47 | |
| 48 | Plain requests in the client you already use. The agent decides the steps, Auten does the clicks. |
| 49 | |
| 50 | "Open the supplier portal, download this month's invoices and put them in ~/Invoices." |
| 51 | "Go through the new leads in the CRM and fill in the missing company names from their emails." |
| 52 | "Export the report from that desktop app as CSV. It has no API, so use the File menu." |
| 53 | "On my Android phone, open Instagram and reply to the latest DM with this text." (phone is beta, over USB) |
| 54 | "That worked. Save it as a skill called `export-report`." Next time: "Run `export-report`." It replays without AI. |
| 55 | |
| 56 | ## Quick start |
| 57 | |
| 58 | **1. Install the runner** (one command, no admin rights): |
| 59 | |
| 60 | |
| 61 | # macOS and Linux |
| 62 | curl -fsSL https://auten.ai/install | bash |
| 63 | |
| 64 | |
| 65 | |
| 66 | # Windows (PowerShell) |
| 67 | irm https://auten.ai/install.ps1 | iex |
| 68 | |
| 69 | |
| 70 | The first run asks you to connect a free key (30 minutes every month, no card). |
| 71 | |
| 72 | **2. Add Auten to your agent.** For Claude Code, Auten can do it by itself: |
| 73 | |
| 74 | |
| 75 | auten connect |
| 76 | |
| 77 | |
| 78 | or add it with the Claude Code CLI and check with `/mcp`: |
| 79 | |
| 80 | |
| 81 | claude mcp add -s user auten -- auten mcp-bridge |
| 82 | |
| 83 | |
| 84 | **3. Ask in plain words.** For example: *"Open Figma, export the Hero frame as PNG to my Desktop"* |
| 85 | or *"Go through the unread invoices in my mail and fill them into the accounting app"*. |
| 86 | |
| 87 | ### Or run it through npx |
| 88 | |
| 89 | Any client that can start an npm package can use the launcher instead. It starts the installed |
| 90 | runner, and if Auten is not installed yet it tells your agent the one-line install command. |
| 91 | |
| 92 | |
| 93 | { |
| 94 | "mcpServers": { |
| 95 | "auten": { "command": "npx", "args": ["-y", "@autenai/mcp"] } |
| 96 | } |
| 97 | } |
| 98 | |
| 99 | |
| 100 | |
| 101 | claude mcp add -s user auten -- npx -y @autenai/mcp |
| 102 | |
| 103 | |
| 104 | ## Client setup |
| 105 | |
| 106 | Every client starts the same stdio command: `auten mcp-bridge` (or `npx -y @autenai/mcp`). If your app says it cannot find |
| 107 | `auten`, use the full path from `which auten` (usually `~/.local/bin/auten`). |
| 108 | |
| 109 | <details> |
| 110 | <summary><b>OpenAI Codex</b></summary> |
| 111 | |
| 112 | |
| 113 | codex mcp add auten -- auten mcp-bridge |
| 114 | |
| 115 | |
| 116 | or in `~/.codex/config.toml`: |
| 117 | |
| 118 | |
| 119 | [mcp_servers.auten] |
| 120 | command = "auten" |
| 121 | args = ["mcp-bridge"] |
| 122 | |
| 123 | </details> |
| 124 | |
| 125 | <details> |
| 126 | <summary><b>Cursor</b></summary> |
| 127 | |
| 128 | `~/.cursor/mcp.json` (or `.cursor/mcp.json` in a project): |
| 129 | |
| 130 | |
| 131 | { |
| 132 | "mcpServers": { |
| 133 | "auten": { "command": "auten", "args": ["mcp-bridge"] } |
| 134 | } |
| 135 | } |
| 136 | |
| 137 | </details> |
| 138 | |
| 139 | <details> |
| 140 | <summary><b>Gemini CLI</b></summary> |
| 141 | |
| 142 | |
| 143 | gemini mcp add --scope user auten auten mcp-bridge |
| 144 | |
| 145 | |
| 146 | or the same `mcpServers` entry in `~/.gemini/settings.json`. |
| 147 | </details> |
| 148 | |
| 149 | <details> |
| 150 | <summary><b>Claude Desktop</b></summary> |
| 151 | |
| 152 | Settings, Developer, Edit Config |
| 153 | (`~/Library/Application Support/Claude/claude_desktop_config.json` on macOS, |
| 154 | `%APPDATA%\Claude\claude_desktop_config.json` on Windows): |
| 155 | |
| 156 | |
| 157 | { |
| 158 | "mcpServers": { |
| 159 | "auten": { "command": "auten", "args": ["mcp-bridge"] } |
| 160 | } |
| 161 | } |
| 162 | |
| 163 | |
| 164 | Restart Claude Desktop. |
| 165 | </details> |
| 166 | |
| 167 | <details> |
| 168 | <summary><b>VS Code (GitHub Copilot agent mode)</b></summary> |
| 169 | |
| 170 | Run `MCP: Open User Configuration` and add: |
| 171 | |
| 172 | |
| 173 | { |
| 174 | "servers": { |
| 175 | "auten": { "type": "stdio", "command": "auten", "args": ["mcp-bridge"] } |
| 176 | } |
| 177 | } |
| 178 | |
| 179 | </details> |
| 180 | |
| 181 | <details> |
| 182 | <summary><b>Windsurf</b></summary> |
| 183 | |
| 184 | `~/.codeium/windsurf/mcp_config.json`: |
| 185 | |
| 186 | |
| 187 | { |
| 188 | "mcpServers": { |
| 189 | "auten": { "command": "auten", "args": ["mcp-bridge"] } |
| 190 | } |
| 191 | } |
| 192 | |
| 193 | </details> |
| 194 | |
| 195 | <details> |
| 196 | <summary><b>Zed</b></summary> |
| 197 | |
| 198 | `~/.config/zed/settings.json`: |
| 199 | |
| 200 | |
| 201 | { |
| 202 | "context_servers": { |
| 203 | "auten": { "command": "auten", "args": ["mcp-bridge"] } |
| 204 | } |
| 205 | } |
| 206 | |
| 207 | </details> |
| 208 | |
| 209 | <details> |
| 210 | <summary><b>Cline</b></summary> |
| 211 | |
| 212 | MCP Servers, Configure (`cline_mcp_settings.json`): |
| 213 | |
| 214 | |
| 215 | { |
| 216 | "mcpServers": { |
| 217 | "auten": { "command": "auten", "args": ["mcp-bridge"] } |
| 218 | } |
| 219 | } |
| 220 | |
| 221 | </details> |
| 222 | |
| 223 | <details> |
| 224 | <summary><b>Remote (SSE) instead of stdio</b></summary> |
| 225 | |
| 226 | For clients that connect over the network, keep the runner online on the computer it should |
| 227 | control: |
| 228 | |
| 229 | |
| 230 | auten --runner-only |
| 231 | |
| 232 | |
| 233 | Then use your personal MCP URL from your [account page]. It contains |
| 234 | your key, so keep it private. |
| 235 | |
| 236 | |
| 237 | claude mcp add --transport sse auten <your-url> |
| 238 | |
| 239 | </details> |
| 240 | |
| 241 | No agent? Give the auten CLI your own key (Anthropic, OpenAI, Google, DeepSeek or any |
| 242 | OpenAI-compatible provider) with `auten key add`, then run `auten "open my calendar and tell me what is next"`. |
| 243 | |
| 244 | ## Tools |
| 245 | |
| 246 | | Group | Tools | |
| 247 | |---|---| |
| 248 | | See the screen | `list_elements`, `read_text`, `screenshot`, `screenshot_labeled`, `vision`, `screen_info` | |
| 249 | | Act | `click_at`, `click`, `fill`, `type`, `paste_text`, `press_keys`, `scroll`, `drag`, `move_mouse`, `act_on_matching`, `menu_select` | |
| 250 | | Apps and windows | `open_app`, `open_url`, `focus_window`, `browser_tabs`, `save_file`, `upload_file`, `clipboard_read` | |
| 251 | | Secrets | `list_logins`, `fill_login`, `get_profile` | |
| 252 | | Learned skills | `list_skills`, `run_skill`, `skills`, `show_skill`, `start_recording`, `stop_recording`, `start_fixing`, `stop_fixing` | |
| 253 | | Coordination | `ask_user`, `focus_app`, `release`, `gui_status`, `wait`, `opened_items`, `browser_cleanup` | |
| 254 | |
| 255 | ## Platforms |
| 256 | |
| 257 | macOS (Apple Silicon and Intel), Windows 10/11, Linux (X11), plus an Android phone over USB (beta). |
| 258 | |
| 259 | ## Pricing |
| 260 | |
| 261 | | Plan | Runtime | Price | |
| 262 | |---|---|---| |
| 263 | | Free | 30 min every month | €0, no card | |
| 264 | | Starter | 10 h every month | €9/month (early access) | |
| 265 | | Pro | Unlimited | €29/month (early access) | |
| 266 | |
| 267 | You bring your own AI, so the price is for Auten only. Details on [auten.ai/pricing]. |
| 268 | |
| 269 | ## Privacy and safety |
| 270 | |
| 271 | The runner only acts when your MCP client calls a tool. Nothing runs in the background on its own. |
| 272 | Stored passwords live in the system keychain (macOS, Windows) or a private local vault (Linux) |
| 273 | and never reach our servers or the model. A secret that shows up on screen is replaced with a |
| 274 | placeholder before your agent sees it. |
| 275 | Your activity history and learned skills are written to your own computer, not ours. |
| 276 | See the [privacy policy]. |
| 277 | |
| 278 | ## About this repository |
| 279 | |
| 280 | This repository holds the public docs, client configs and the `@autenai/mcp` npm launcher |
| 281 | (`bin/auten-mcp.js`), all under the MIT [LICENSE]. The runner itself is distributed |
| 282 | separately through the installers above, under the [Auten terms of service]. Questions, bugs and feature requests are |
| 283 | welcome as [issues] or at [email protected]. |
| 284 | |
| 285 | Auten is made by [MB Icecode], Lithuania. |
| 286 |
Discussion
Alternatives
Browse more free AI agents or everything in Development.
