MCP Server
Connect Solari to Claude, Cursor, Windsurf or any other MCP client and your agent gets a real browser it can drive, plus sandboxes and GUI desktops it can run code in. No wrapper code to write.
The Solari MCP server exposes 37 tools over the Model Context Protocol. There are two ways to connect: a hosted endpoint (no install, works everywhere including Claude on web and mobile) or a local server via npx.
Hosted connector
Point your client at our endpoint and authenticate with your Solari API key. Nothing to install or keep running.
https://mcp.getsolari.com/mcpnpx server below is still there if you need to run it yourself (e.g. an air-gapped environment), but it is no longer the fallback for a flaky hosted path.Claude
In Claude, open Settings → Connectors → Add custom connector, paste the URL above, and set an Authorization header of Bearer slr_live_…. Connectors are shared across Chat, Code and Cowork, so you only add it once.
Prefer configuration as a file? Claude Desktop and Claude Code both read this shape:
{
"mcpServers": {
"solari": {
"type": "http",
"url": "https://mcp.getsolari.com/mcp",
"headers": { "Authorization": "Bearer slr_live_…" }
}
}
}Local server via npx
Runs on your machine and talks to Solari over the network. Requires Node 18 or newer.
{
"mcpServers": {
"solari": {
"command": "npx",
"args": ["-y", "@solarisdk/mcp"],
"env": { "SOLARI_API_KEY": "slr_live_…" }
}
}
}For Claude Desktop that file lives at ~/Library/Application Support/Claude/claude_desktop_config.json on macOS (%APPDATA%\Claude\ on Windows) — or use Developer → Edit Config. Quit and reopen the app afterwards; configuration is read at startup.
Get an API key
Create one from the API Keys tab at console.getsolari.com. The same slr_live_… key works for browsers, sandboxes and desktops. You'll see it once, so copy it then.
Check it worked
Ask your agent to do something that needs a browser. It should call solari_browser_create first, then navigate.
Open example.com in a Solari browser and tell me the page heading.In Claude, the tools appear under the tool (hammer) icon once the connector is loaded.
Tools
Browser
A Solari cloud browser session, driven over CDP. Start with solari_browser_create; it returns a sessionId the other tools take.
mode to "stealth" and captcha to on. The REST POST /sessions endpoint defaults both to false. Both are plan-gated and billable (captcha solving costs money per solve) — an agent calling this tool with {} silently opts into the more expensive configuration. Pass mode: "fast" and/or captcha: false to opt out.| Tool | What it does |
|---|---|
solari_browser_create | Start a session. Options: mode (default "stealth"), proxy, captcha (default on), recording, profileId |
solari_browser_navigate | Go to a URL; returns final URL, title and status |
solari_browser_read_page | Page text, links, or HTML |
solari_browser_screenshot | JPEG of the current page |
solari_browser_click / solari_browser_type / solari_browser_key | Interact by CSS selector or coordinates |
solari_browser_evaluate | Run a JavaScript expression in the page |
solari_browser_replay_url | Replay URL for a session created with recording: true |
solari_browser_login / solari_browser_await_login | Hand off to a human for a login the agent can't complete itself, then wait for it to finish |
solari_browser_autologin_status / solari_browser_autologin_site | Check whether a saved profile can log in to a site automatically, and trigger that automatic login |
solari_browser_save_profile / solari_browser_profiles | Save the session's cookies/storage as a profile, or list saved profiles |
solari_browser_close | Release the session |
Sandboxes and desktops
solari_sandbox_create gives you a headless microVM; solari_desktop_create gives you a GUI one and returns a streamUrl you can watch over noVNC. The GUI tools (screenshot, click, type, open) require a desktop.
| Tool | What it does |
|---|---|
solari_sandbox_create / solari_desktop_create | Create a VM; returns a sessionId |
solari_exec / solari_run_command_bg | Run a shell command, blocking or in the background |
solari_run_code | Run code (Python by default), including charts |
solari_read_file / solari_write_file / solari_list_files | Guest filesystem |
solari_get_preview_url | Public URL for a port inside the VM (e.g. a dev server) |
solari_screenshot / solari_click / solari_type / solari_key / solari_open_app / solari_mouse_move / solari_mouse_down / solari_mouse_up / solari_drag | Control the desktop GUI; the mouse tools give fine-grained control (press, move, release, or a single drag gesture) for interactions solari_click can't express |
solari_list / solari_connect / solari_kill | List VMs, re-attach to one by id (resuming it if paused), or destroy it |
Sessions and cost
Every *_create call starts a billable session, exactly as it would through the SDK — see Plans & Pricing. Two things worth knowing:
- Browser sessions are released when the agent calls
solari_browser_close, and the server also releases anything still open when a conversation goes idle or it shuts down. - Sandboxes and desktops idle-pause rather than being destroyed, so their state survives;
solari_connectre-attaches and resumes. Usesolari_killwhen you're done with one.
Your plan's concurrency limits apply, so an agent that opens sessions without closing them will eventually see a concurrency error.
Environment variables
For the local server:
| Variable | Default | Purpose |
|---|---|---|
SOLARI_API_KEY | — | Required. Your API key |
SOLARI_BASE_URL | https://api.getsolari.com | Sandbox and desktop API |
SOLARI_BROWSER_URL | SOLARI_BASE_URL | Browser API, when it differs |
claude mcp add --transport http solari https://mcp.getsolari.com/mcp \\ --header "Authorization: Bearer $SOLARI_API_KEY".