Connect with OAuth
For clients that support remote HTTP MCP servers, addhttps://www.orgo.ai/mcp. Your client opens Orgo’s sign-in and consent page. Choose the workspace to authorize, then approve access. No API key is needed for this connection.
The hosted server supports the OAuth authorization-code flow with PKCE (S256), one-hour access tokens, and rotating refresh tokens. The grant is scoped to the selected workspace. It can create and manage computers, screens, and files in that workspace and read the workspace itself. Calls outside that surface, such as most Templates tools or creating and deleting workspaces, fail over an OAuth connection with This MCP connection can only manage computers in its workspace. Use an API key for those.
Manage or revoke connections under Connected apps in Settings → Credentials.
Clients that let you set request headers can also call https://www.orgo.ai/mcp with an API key in Authorization: Bearer $ORGO_API_KEY instead of OAuth. An API key reaches every tool its scope allows.
Install locally with an API key
~/.cursor/mcp.json for Cursor, .vscode/mcp.json for VS Code, ~/.codeium/windsurf/mcp_config.json for Windsurf, and ~/Library/Application Support/Claude/claude_desktop_config.json for Claude Desktop on macOS.
Try it
orgo_create_computer, then orgo_execute_bash, then orgo_get_screenshot. By default orgo_get_screenshot returns a link to the stored capture. Pass response_format: "base64" and the screenshot comes back as an image the model can see.
Tools
One tool per API operation, named after itsoperationId. createComputer becomes orgo_create_computer.
All 15 Templates tools
All 15 Templates tools
orgo_get_template_schema orgo_list_templates orgo_publish_template orgo_validate_template orgo_list_curated_templates orgo_list_curated_template_versions orgo_list_template_versions orgo_get_template orgo_delete_template orgo_build_template orgo_get_build_status orgo_cancel_build orgo_stream_build_events orgo_test_run_template orgo_stop_template_runORGO_TAGS="Workspaces,Computers" narrows the surface using the same words the API Reference uses. Set it when a client’s tool picker starts guessing.
Configuration
Nothing here is required.ORGO_API_KEY is the only variable most setups ever set.
Escape hatches
Escape hatches
Security
How it works
Tools come from the spec. Descriptions, types, enums, defaults and required fields are read straight out of it, soorgo_create_computer already knows ram is one of 4, 8, 16, 32 or 64 without anyone writing that down twice. Path, query and body parameters flatten into one argument list, so a call reads orgo_resize_computer({ id, mem_gb }) rather than nesting a body. Annotations follow the HTTP method: GET tools are read-only, and every write is marked destructive, because orgo_execute_bash cannot promise otherwise.
Responses are shaped to it too. Only the fields the spec declares survive, which keeps internal state the docs never promise out of the model’s context. A schema matching none of the keys in hand is treated as describing something else, so the payload passes through untouched instead of being emptied. Spec drift costs verbosity, never data. Set ORGO_RAW=1 to turn shaping off.
Failures retry only when that is provably safe. A 5xx or a dropped connection is retried with doubling backoff, but only for GET, PUT and DELETE requests. orgo_execute_bash and orgo_mouse_click get exactly one attempt, because running either twice is worse than failing once.
The spec is loaded fresh. In order, first one wins:
- Cache:
$XDG_CACHE_HOME/orgo-mcp/openapi.json, if fetched withinORGO_SPEC_MAX_AGE_MS. - Network:
ORGO_SPEC_URL, 5 second timeout, written back to the cache. - Stale cache: whatever was last fetched.
- Bundled snapshot: shipped in the npm package.
Troubleshooting
Run the server directly to see what it thinks. It prints one line to stderr, then waits for JSON-RPC on stdin:spawn npx ENOENT on Windows
spawn npx ENOENT on Windows
npm ships
npx.cmd, and Node’s spawn will not resolve a .cmd without a shell. Wrap it:HTTP 401: Invalid API key
HTTP 401: Invalid API key
Check the key on its own:If that works but the server does not, your client is not forwarding
env. Pass the key
inline with claude mcp add -e instead.The tools don't appear in my client
The tools don't appear in my client
Fully quit and relaunch. Most clients read MCP config only at startup, and Claude Desktop needs
a real quit rather than closing the window. Then check
ORGO_READ_ONLY and ORGO_TAGS, which
reduce the tool list by design. Claude Desktop logs to
~/Library/Logs/Claude/mcp-server-orgo.log on macOS.Next steps
API Reference
The same operations, with full request and response schemas.
CLI
Drive the same computers from your own terminal.
Claude Code skill
Teach Claude when to reach for a computer in the first place.