OpenAra
An open-source local MCP server for macOS that provides desktop control tools (click, type, scroll, etc.) callable from any MCP-aware client.
README
<div align="center"> <h1>OpenAra</h1> <p><em>Open-source Computer Use, packaged as a local MCP server.</em></p>
<p> <a href="https://www.reddit.com/r/Aradotso/"><img src="https://img.shields.io/badge/Join-Community-FF4500?style=for-the-badge&logo=reddit&logoColor=white" alt="Join r/Aradotso" /></a> <a href="https://github.com/Aradotso/OpenAra/releases/latest"><img src="https://img.shields.io/badge/Download-for%20macOS-000000?style=for-the-badge&logo=apple&logoColor=white" alt="Download for macOS" /></a> <a href="https://deepwiki.com/Aradotso/OpenAra"><img src="https://img.shields.io/badge/Ask-DeepWiki-007ec6?style=for-the-badge&logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAAAsVBMVEVHcEwmWMYZy38Akt0gwZoSaFIbYssUmr4gwJkBlN4WbNE4acofwZkBj9k4aMkBk94WgM0bsIM4aMkewJc2ZMM3Z8cbvIwYpHsewJYAftgBkt0fvpgBkt0cv44cv5wzYckAjtsCk90pasUboXsgwJkfwpYfwJg4aMoct44yXswAkd0BkN84Z8cBktwduZIjcO85lM4hwZo5acoBleA6a88iyaABmOQ8b9QhxZ0CnOoizaOW4DOvAAAAMHRSTlMAKCfW%2FAgWA%2F7%2FDfvMc9j7MU%2Frj3XBcRW%2FJMbe7kUxjI%2FlUzzz6tPQkJ%2BjVmW1oeulmmslAAAByUlEQVQ4y32Tia6jIBSGUVFcqliXtlq73rm3d50ERNC%2B%2F4PNQetoptMeE0PgC%2F9%2FFhCaBSH9Hz2J%2BONgPDl2DolSUWY%2FPL8oEQRCfPxHpFc3Ah5wHoiI6I05NXgjAOgQF3Jn1Dlo4XMPDDes09UE2d%2BREvl3lijBg4CrHNmrbcM2u9u5nwsRcAFfFHFY5sZ607Yua3GqpQiKE6G9cZHZThblZ4T2mLnMxde3ATASMUj72o0Pbs1fADDcLHqAjEDugJ3lC%2BztMGYTADcoLaFyH%2B02DP9%2BWS4ahrXE4laALFKcq8vZfscNY8312mxfr27bLJZjnsYhSDIHmUxLu9h9N%2Fep%2B7pazwoZQw%2B1Nwi33epu7c2p8RooeqCdAHMGoOJIq3CUwIMEniRIaHVe3ZVnO2Vgsh1MstEkQUXVUc%2BjXfk3zbemxS6%2BpQmlPtUeALJ8VKj4JHvAelBqFFdSS3h1SPzQKr%2F%2BaRa0%2B0cCIWtJLauG5U%2FfbgyG01uiNqQhyzA8ddKj1OvK28AsZyN3DKE4X6AEWrU1jJx9N7RFpdPxpHU%2FtMOQG9SjfTp3Yz8KgRVKpfx88Dqhpseq606h%2F%2Bzxfh6LJ8eEDKWbxx9XEDwqzP1SVgAAAABJRU5ErkJggg==&logoColor=white" alt="Ask DeepWiki" /></a> <a href="https://www.npmjs.com/package/@openara/cli"><img src="https://img.shields.io/npm/v/@openara/cli?style=for-the-badge&logo=npm&logoColor=white&label=npm&color=CB3837" alt="npm @openara/cli" /></a> </p>
<img src="./assets/brand/openara-header.png" alt="OpenAra" width="260" /> </div>
Install
npm i -g @openara/cli && openara
Add to Claude Code / Claude Desktop
openara install-claude-mcp
Writes mcpServers.openara into both ~/.claude.json (Claude Code) and ~/Library/Application Support/Claude/claude_desktop_config.json (Claude Desktop).
Add to Cursor
openara install-cursor-mcp
Writes mcpServers.openara into ~/.cursor/mcp.json.
Add to Codex CLI
openara install-codex-mcp
Writes [mcp_servers.openara] into ~/.codex/config.toml.
Add to Codex App
openara install-codex-plugin
Installs OpenAra as a Codex plugin (manifest under plugins/openara/).
Add to Gemini CLI
openara install-gemini-mcp # current project (./.gemini/settings.json)
openara install-gemini-mcp --scope user # global (~/.gemini/settings.json)
Add to OpenCode
openara install-opencode-mcp
Writes mcpServers.openara into ~/.config/opencode/opencode.json.
What it gives you
- A local Computer Use MCP server. Nine well-tested desktop-control tools (
list_apps,get_app_state,click,type_text,press_key,set_value,scroll,drag,perform_secondary_action) callable from any MCP-aware client. - Native macOS Swift runtime — built on Accessibility + AppKit, no Electron, no Python.
- Accessibility-first execution. Tries to drive UI through semantic AX paths before falling back to coordinate-level HID input — you keep using your computer while the agent works.
- One-line installers for Claude Code, Claude Desktop, Cursor, Codex CLI, Codex App (plugin), Gemini CLI, and OpenCode.
- Visible cursor overlay when the agent does need to move a pointer, so you can see what it's about to do.
Manual MCP config
If your agent doesn't have an installer above, or you want to see exactly what's being written, here are the raw configs.
Claude Code
Add to your project's .claude.json (or ~/.claude.json for global):
{
"mcpServers": {
"openara": {
"command": "openara",
"args": ["mcp"]
}
}
}
Claude Desktop
Add to ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"openara": {
"command": "openara",
"args": ["mcp"]
}
}
}
Cursor
Add to ~/.cursor/mcp.json (or <project>/.cursor/mcp.json for project-scoped):
{
"mcpServers": {
"openara": {
"command": "openara",
"args": ["mcp"]
}
}
}
Codex CLI
Add to ~/.codex/config.toml:
[mcp_servers.openara]
command = "openara"
args = ["mcp"]
Codex App (plugin)
OpenAra ships as a Codex plugin under plugins/openara/. From a packaged release run openara install-codex-plugin. From source, point Codex App's local plugin marketplace at this repo's .agents/plugins/marketplace.json.
Gemini CLI
Add to ./.gemini/settings.json for the current project, or ~/.gemini/settings.json for global use:
{
"mcpServers": {
"openara": {
"command": "openara",
"args": ["mcp"]
}
}
}
OpenCode
Add to ~/.config/opencode/opencode.json:
{
"mcpServers": {
"openara": {
"command": "openara",
"args": ["mcp"]
}
}
}
macOS permissions
OpenAra needs Accessibility and Screen Recording to read window state and drive UI. The first run launches an onboarding window that takes you through granting both. To re-check at any time:
openara doctor
CLI reference
openara # first-run onboarding / no-op once granted
openara mcp # stdio MCP server
openara call list_apps # one tool, prints MCP-style JSON
openara call get_app_state --args '{"app":"TextEdit"}'
openara call --calls '[{"tool":"get_app_state","args":{"app":"TextEdit"}}]'
openara call --calls-file examples/textedit-overlay-seq.json --sleep 0.5
openara doctor # permissions check
openara install-claude-mcp # write Claude Code + Claude Desktop config
openara install-cursor-mcp # write Cursor config
openara install-codex-mcp # write Codex CLI config
openara install-codex-plugin # install as Codex plugin
openara install-gemini-mcp [--scope user] # write Gemini CLI config
openara install-opencode-mcp # write OpenCode config
openara -h
Build from source
For contributors, or while the npm package is still being prepared:
git clone https://github.com/Aradotso/OpenAra.git
cd OpenAra
# Build everything (kit + apps + smoke suite)
swift build -c release
# Run the binary directly
.build/release/OpenAra -h
You can also run through Swift Package Manager during development. Anywhere this README says openara <command>, substitute swift run OpenAra <command> from inside the repo:
swift run OpenAra -h
swift run OpenAra mcp # start the stdio MCP server
swift run OpenAra call list_apps # call a single tool
swift run OpenAra doctor # check macOS permissions
swift run OpenAra install-claude-mcp # write Claude Code config
License
MIT — forked from iFurySt/open-codex-computer-use.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.