Sai is Simular's computer-use agent. Give it a task in plain English and it does the work on a Windows cloud computer — opening apps, clicking, typing — then returns the result. Coding agents (Claude Code, Codex, Cursor) use it through the
@simular-ai/sai-mcpMCP server. The free plan includes a cloud computer.
sapi_ and are shown once.sapi_YOUR_KEY with the key. Node.js 22.12 or newer is required.Use Sai to open Notepad on my cloud computer, type "Hello from Sai", and tell me the window title.claude mcp add sai -e SAI_API_KEY=sapi_YOUR_KEY -- npx -y @simular-ai/sai-mcp
Optional: install the Sai skill, which teaches Claude Code the task loop.
npx -y @simular-ai/sai-mcp init-claude
codex mcp add sai --env SAI_API_KEY=sapi_YOUR_KEY -- npx -y @simular-ai/sai-mcp
Add this to ~/.cursor/mcp.json (or .cursor/mcp.json in a project), then restart Cursor. The same block works for any stdio MCP client.
{
"mcpServers": {
"sai": {
"command": "npx",
"args": [
"-y",
"@simular-ai/sai-mcp"
],
"env": {
"SAI_API_KEY": "sapi_YOUR_KEY"
}
}
}
}
SAI_API_KEY as shown above.sai_machines, sai_models, sai_task_start, sai_task_wait, sai_task_approve, sai_task_abort, sai_upload.sai_task_start returns a session_id. Call sai_task_wait with it, passing back the cursor, while status is running. idle means text holds Sai's answer.needs_approval, decide with sai_task_approve. When the approval is link-only (sign-ins, credentials, phone checks), give approval_url to the user and keep waiting.The raw request behind every task. It streams events until finish.
curl -N https://api.simular.ai/v1/agents/message \
-H "Authorization: Bearer $SAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{"message": "Open Notepad, type Hello from the Sai API, and save it to the desktop as hello.txt"}'