Auten MCP server
OfficialBeta support for driving an Android phone connected over USB, giving the agent the same computer-use capabilities (reading the UI, clicking, typing and taking screenshots) on the device.
Controls apps on Linux (X11) that have no API, letting the agent enumerate accessibility elements, click, type, scroll and drag, read text or screenshots, manage windows, apps and files, with stored logins kept in a private local vault.
Controls native apps on macOS (Apple Silicon and Intel) that have no API: the agent can list accessibility elements and click/type on them, read on-screen text, take screenshots, manage windows, apps and files, and fill stored passwords kept in the macOS keychain without ever seeing the secret value.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Auten MCP serverOpen Figma and export the Hero frame as PNG to my Desktop"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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.
Related MCP server: native-devtools-mcp
Quick start
1. Install the runner (one command; no admin rights on macOS and Windows, on Linux it asks for sudo once to apt-install the accessibility and input tools):
# macOS and Linux
curl -fsSL https://auten.ai/install | bash# Windows (PowerShell)
irm https://auten.ai/install.ps1 | iexThe 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 connector add it with the Claude Code CLI and check with /mcp:
claude mcp add -s user auten -- auten mcp-bridge3. 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". More prompts for computer and phone (beta) tasks: examples/prompts.md.
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. The "Add to Cursor" and "VS Code" buttons at the top add exactly this entry.
{
"mcpServers": {
"auten": { "command": "npx", "args": ["-y", "@autenai/mcp"] }
}
}claude mcp add -s user auten -- npx -y @autenai/mcpOn Windows, if the client reports spawn npx ENOENT: npx is npx.cmd there, and some clients start
servers without a shell. Use "command": "cmd", "args": ["/c", "npx", "-y", "@autenai/mcp"]
(Claude Code: claude mcp add -s user auten -- cmd /c npx -y @autenai/mcp), or the direct
auten mcp-bridge entry below.
Or as a Claude Code plugin
This repository is also a plugin marketplace. Inside Claude Code:
/plugin marketplace add auten-ai/auten-mcp
/plugin install auten@autenThe plugin adds the same npx launcher entry, nothing else (no hooks or commands). See plugin/README.md.
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).
codex mcp add auten -- auten mcp-bridgeor in ~/.codex/config.toml:
[mcp_servers.auten]
command = "auten"
args = ["mcp-bridge"]~/.cursor/mcp.json (or .cursor/mcp.json in a project):
{
"mcpServers": {
"auten": { "command": "auten", "args": ["mcp-bridge"] }
}
}gemini mcp add --scope user auten auten mcp-bridgeor the same mcpServers entry in ~/.gemini/settings.json.
copilot mcp add auten -- auten mcp-bridgeor in ~/.copilot/mcp-config.json:
{
"mcpServers": {
"auten": { "type": "local", "command": "auten", "args": ["mcp-bridge"], "tools": ["*"] }
}
}Inside a session, /mcp add opens the same form (type STDIO, command auten mcp-bridge).
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.
Run MCP: Open User Configuration and add:
{
"servers": {
"auten": { "type": "stdio", "command": "auten", "args": ["mcp-bridge"] }
}
}~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"auten": { "command": "auten", "args": ["mcp-bridge"] }
}
}~/.config/zed/settings.json:
{
"context_servers": {
"auten": { "command": "auten", "args": ["mcp-bridge"] }
}
}Ask Cline to set Auten up from llms-install.md, or add it yourself in
MCP Servers, Configure (cline_mcp_settings.json):
{
"mcpServers": {
"auten": { "command": "auten", "args": ["mcp-bridge"] }
}
}For clients that connect over the network, keep the runner online on the computer it should control:
auten --runner-onlyThen 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 |
|
Act |
|
Apps and windows |
|
Secrets |
|
Learned skills |
|
Coordination |
|
Platforms
macOS (Apple Silicon and Intel), Windows 10/11, Linux (X11), plus an Android phone over USB (beta).
Linux: installer stops at the "deps" step? It needs sudo once for the accessibility (AT-SPI) and input tools.
On a fresh or minimal box (empty apt lists, no python3-venv) install them first, then run the installer again:
sudo apt-get update
sudo apt-get install -y python3-venv python3-pyatspi python3-gi xdotool wmctrl scrot xclip libglib2.0-bin tesseract-ocr libsecret-toolsAuten drives a real X11 desktop session, so a headless container without a display won't work. Still stuck? Paste the last lines in Discussions.
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.
Each saved login is pinned to the site or app where it was first used. On any other origin
fill_loginrefuses and types nothing; only you can re-pin it (auten vault unpin <name>).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 hello@auten.ai.
Auten is made by MB Icecode, Lithuania.
Available Tools
1 toolinstall_autenA
Auten (computer use for your AI agent) is not installed on this machine yet. Call this to get the one-line install command for this OS and the next steps.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It usefully implies this is an informational tool that returns a command rather than performing an install, and states the precondition. However it never confirms there are no side effects, permissions, or state changes, which matters for an install-related tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the both the identification of Auten and the precondition before the call to action. The parenthetical definition earns its place; nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, no-output-schema, no-annotation tool, the description covers purpose, precondition, output nature (install command plus next steps) and likely next actions. Only the absence of any statement about side effects or return shape keeps it from being fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline is 4. Nothing in the schema needs explanation and the description correctly implies no inputs are required.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a clear action (return the one-line install command for this OS plus next steps) and identifies the resource (Auten, defined as computer use for your AI agent). It is specific about what the caller receives, though with no siblings there is nothing to differentiate against.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly frames the trigger condition: Auten 'is not installed on this machine yet,' so call this instead of trying to use it. Clear context for invocation, though there are no alternatives or exclusions to route between.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
v0.1.5- First observed
install_auten
TDQS
Scored across 1 tool
The server contains a single tool, so there are no overlapping purposes or selection ambiguity. An agent can trivially identify when to use it.
With only one tool, it follows a clean snake_case verb-noun pattern (install_auten). No inconsistencies are possible.
The server's stated purpose is to handle Auten installation, yet it provides only a single tool with no other operations. One trivial tool is too thin for a server surface, though narrowly scoped.
Only an installation command helper is exposed; there are no tools to verify installation, run Auten, or manage it post-install. This leaves significant gaps for the stated computer-use purpose.
Maintenance
Related MCP Connectors
- PomeradoOAuthai.pomerado
MCPs that do tasks on any website. Search flights, book, shop, check accounts and fill in forms.
Hosted MCP server and REST API that lets AI agents use apps with no API, signed in as you.
Persistent memory, knowledge graph, task management and more for AI agents via MCP.
An agent-first office suite Claude & ChatGPT read and write over one MCP URL.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceAn MCP server that gives any AI assistant eyes and hands on your desktop — screenshots, clicking, typing, OCR, window management, accessibility-tree queries, workflow recording.5Apache 2.0
- AlicenseNot gradedqualityAmaintenanceGives AI agents and MCP clients direct control over native desktop apps, Chrome/Electron browsers, and Android devices with screenshots, OCR, accessibility-based element lookup, input simulation, window management, CDP, and ADB in one local server.138MIT
- AlicenseAqualityAmaintenanceVerified control of the whole desktop for agents on Windows and Linux: apps with no API, windows, shell, browser. MCP server + CLI + REST API.3927MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to access and act on web, desktop, and mobile interfaces via semantic accessibility trees, using MCP tools for querying, navigating, and executing deterministic UI actions without relying on screenshots or pixel coordinates.11 npmApache 2.0