@simular-ai/sai-mcp 0.2.3 → 0.3.0-rc.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +41 -9
- package/SKILL.md +1 -1
- package/dist/server.js +699 -6050
- package/package.json +7 -5
package/README.md
CHANGED
|
@@ -26,7 +26,7 @@ Use Sai when:
|
|
|
26
26
|
consoles, legacy web apps.
|
|
27
27
|
- The task needs a real browser session with someone's accounts. Sign-ins,
|
|
28
28
|
passwords and phone checks go to the human as an approval link.
|
|
29
|
-
- The work happens in a desktop app, on Windows or
|
|
29
|
+
- The work happens in a desktop app, on Windows, macOS or Linux.
|
|
30
30
|
- It is a one-off, and a script would cost more to write and keep working than
|
|
31
31
|
the task itself.
|
|
32
32
|
- You need to see what a real user sees: testing a sign-up flow, reproducing a
|
|
@@ -87,8 +87,6 @@ Or in `~/.codex/config.toml`:
|
|
|
87
87
|
[mcp_servers.sai]
|
|
88
88
|
command = "npx"
|
|
89
89
|
args = ["-y", "@simular-ai/sai-mcp"]
|
|
90
|
-
# sai_task_wait holds for up to 110 s; Codex's default tool timeout is 60 s.
|
|
91
|
-
tool_timeout_sec = 120
|
|
92
90
|
|
|
93
91
|
[mcp_servers.sai.env]
|
|
94
92
|
SAI_API_KEY = "sapi_YOUR_KEY"
|
|
@@ -133,7 +131,8 @@ Ask your agent something like:
|
|
|
133
131
|
A task keeps running on the computer between calls. When Sai asks for
|
|
134
132
|
something only you can do, such as signing in to an account, your agent gives
|
|
135
133
|
you a link to finish it and keeps waiting. Sai remembers earlier tasks on the
|
|
136
|
-
same computer; `new_session: true` starts fresh.
|
|
134
|
+
same computer; `new_session: true` starts fresh. `autonomous: true` on `sai_task_start`
|
|
135
|
+
runs that task without permission requests, for work you want done unattended.
|
|
137
136
|
|
|
138
137
|
There is no screenshot tool: Sai sees the screen itself and reports in text.
|
|
139
138
|
|
|
@@ -156,11 +155,13 @@ the view says so and offers **Watch here**.
|
|
|
156
155
|
|
|
157
156
|
## Environment
|
|
158
157
|
|
|
159
|
-
| Variable | Required | Meaning
|
|
160
|
-
| ---------------- | -------- |
|
|
161
|
-
| `SAI_API_KEY` | yes | Your Sai API key (`sapi_…`).
|
|
162
|
-
| `SAI_PUSH` | no | `1` turns on Claude Code channels (below). Leave it unset otherwise.
|
|
163
|
-
| `SAI_LOCAL_VIEW` | no | `0` turns off the local `watch_url` page.
|
|
158
|
+
| Variable | Required | Meaning |
|
|
159
|
+
| ---------------- | -------- | ------------------------------------------------------------------------- |
|
|
160
|
+
| `SAI_API_KEY` | yes | Your Sai API key (`sapi_…`). |
|
|
161
|
+
| `SAI_PUSH` | no | `1` turns on Claude Code channels (below). Leave it unset otherwise. |
|
|
162
|
+
| `SAI_LOCAL_VIEW` | no | `0` turns off the local `watch_url` page. |
|
|
163
|
+
| `SAI_CONTROL` | no | `0` leaves out the direct control tools (below), which are on by default. |
|
|
164
|
+
| `SAI_OSWORLD` | no | `1` adds the OSWorld tools (below); keeps the direct control tools on. |
|
|
164
165
|
|
|
165
166
|
## Claude Code channels (research preview)
|
|
166
167
|
|
|
@@ -177,6 +178,37 @@ claude --dangerously-load-development-channels server:sai
|
|
|
177
178
|
Only set `SAI_PUSH=1` together with that flag. Without it, pushed results are
|
|
178
179
|
dropped and your agent is told not to poll.
|
|
179
180
|
|
|
181
|
+
## Direct control (research preview)
|
|
182
|
+
|
|
183
|
+
Your agent can also drive the computer itself instead of
|
|
184
|
+
handing Sai a task: `sai_control_open`, then `sai_control_exec` blocks of Simulang
|
|
185
|
+
(JavaScript) that run on the computer, then `sai_control_close`. Each block
|
|
186
|
+
returns its value and console output, plus a screenshot as an image your
|
|
187
|
+
agent's own model sees. The Simulang reference is the MCP resource
|
|
188
|
+
`sai://simulang/reference`. Any account can use it; model calls the code makes
|
|
189
|
+
(`callLLM`, `ground`, `stateSatisfies`) are billed to your account as usual. Set
|
|
190
|
+
`SAI_CONTROL=0` to leave these tools out.
|
|
191
|
+
Docs: [Direct control](https://platform.simular.ai/documentation/concepts/direct-control).
|
|
192
|
+
|
|
193
|
+
```bash
|
|
194
|
+
claude mcp add sai -e SAI_API_KEY=sapi_YOUR_KEY -- npx -y @simular-ai/sai-mcp
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
## OSWorld (research preview)
|
|
198
|
+
|
|
199
|
+
With `SAI_OSWORLD=1`, your agent can run OSWorld V2.1 tasks: `osworld_start`
|
|
200
|
+
sets a task up on a fresh cloud computer and returns its instruction, your agent
|
|
201
|
+
does the task through direct control of that computer, and `osworld_submit` grades
|
|
202
|
+
it (with `outcome: "fail"` when the agent concludes the task cannot be done; some
|
|
203
|
+
tasks are infeasible on purpose). `osworld_ask_user` answers questions for tasks that have a user, and
|
|
204
|
+
`osworld_abandon` ends an attempt without grading so you can start it again.
|
|
205
|
+
Setup and grading run on Simular's side; your agent only sees the instruction
|
|
206
|
+
and the computer. Needs Benchmarks access on your account.
|
|
207
|
+
|
|
208
|
+
```bash
|
|
209
|
+
claude mcp add sai -e SAI_API_KEY=sapi_YOUR_KEY -e SAI_OSWORLD=1 -- npx -y @simular-ai/sai-mcp
|
|
210
|
+
```
|
|
211
|
+
|
|
180
212
|
## Support
|
|
181
213
|
|
|
182
214
|
[support@simular.ai](mailto:support@simular.ai)
|
package/SKILL.md
CHANGED
|
@@ -39,7 +39,7 @@ A free account's first task of the day can stay in `running` for about two minut
|
|
|
39
39
|
|
|
40
40
|
## Rate limits and errors
|
|
41
41
|
|
|
42
|
-
- `429` on any call: wait 60 seconds and retry once. If it happens again, tell the user the account's hourly limit is reached (
|
|
42
|
+
- `429` on any call: wait 60 seconds and retry once. If it happens again, tell the user the account's hourly limit is reached (600 messages per hour on a paid plan, 60 on free; 1200 polls per hour) and stop. Never poll with `wait=0` in a loop.
|
|
43
43
|
- `400` on start with a `machines` array: several computers exist. Pick the one the user named, or ask with AskUserQuestion.
|
|
44
44
|
- `400 {"error":"unknown_model"}` or `403 {"error":"model_not_allowed_for_plan"}` on start: drop `model` or pick one from the `allowedModels` list in the reply.
|
|
45
45
|
- `403` on start: the `machineId` is not on this account. Call `GET /v1/agents/machines` and use one of the returned ids.
|