All chapters
Start
Connect Claude, Codex, Cursor and other agents to Scava
Every AI connects to Scava the same way: one address, https://scava.ai/mcp, and one sign-in in your browser. It is a remote MCP server (MCP is the standard agents use for tools). No key stays on your computer and you never type a code.
Connect #
Run this once in a terminal. You need Node.js 22 or newer:
npx -y scava setup
It adds the address to the agents it finds on your computer and tells you what it did for each. Then it tells you the one click that is left for Claude.
| Your AI | How Scava gets there | Where the connection lives |
|---|---|---|
| Claude on the web, in the app, on your phone | In Claude, open Customize, then Connectors, choose "Add custom connector" and enter the address. No program can do this for you. | In your Claude account: it works on every device |
| Claude Code, signed in with Claude | Nothing to add: it uses the connector of your Claude account | In your Claude account |
| Claude Code with an API key | scava setup adds it for your user | On this computer |
| Codex (terminal, editor and app) | scava setup adds it and starts the sign-in, or writes it to ~/.codex/config.toml when only the app is installed | On this computer |
| Cursor | scava setup writes it to ~/.cursor/mcp.json | On this computer |
| GitHub Copilot (VS Code and terminal) | scava setup writes it to ~/.copilot/mcp-config.json | On this computer |
| Gemini CLI | scava setup writes it to ~/.gemini/settings.json | On this computer |
| Antigravity | scava setup writes it to ~/.gemini/config/mcp_config.json | On this computer |
| ChatGPT and other AIs | Add the address in their settings for connectors, plugins or MCP servers, where your plan offers that | Depends on the AI |
Where the connection lives matters. In your Claude account it follows the account: on a new computer you sign in to Claude and Scava is there, and someone else's Claude account on your computer does not reach your Scava. On a computer, each computer connects once, and whoever works under your user on that computer acts as you.
Setup follows three rules so it cannot damage your configuration.
- It only adds. An existing
scavaentry stays exactly as it is, even if you changed it. Other entries and settings are not touched. - A configuration file it cannot read as plain JSON (for example one with comments), or a Codex file with servers written in one line, is left alone. Setup tells you the address to add by hand.
- It writes only for agents that are on the computer, and it replaces files in one step, so you never get a half-written file.
If setup finds none of these agents, it prints the address to enter in the settings of any other AI that supports remote MCP servers.
The sign-in #
The first time an AI needs Scava, it opens a page at scava.ai in your browser.
- You sign in with Google or an emailed code. If your last sign-in is older than 12 hours, you sign in again.
- The page says which AI wants to connect, what it will be able to do and where the connection goes, for example
claude.aior a program on this computer. - You choose Allow, and the browser goes back to the AI.
You also get an email that the AI was connected, with the way to disconnect it.
Only continue if you started this yourself, just now. If someone sends you such a link, close the page: whoever started it would get access to your apps. Scava hands a connection only to the AI apps it knows and to programs on your own computer, never to a server of whoever sent the link. An AI Scava does not know yet is refused; write to info@scava.ai to have it added.
A program on your computer names itself, and Scava cannot check that name. The page says so. An AI with an account is named by where the connection goes.
Scava keeps only fingerprints of the tokens. The AI's access token works for an hour and only at this address, and the AI renews it by itself. A connection that was not used for 90 days ends; you connect again the same way.
Connected agents #
The page Connect at scava.ai lists every connected AI with when it connected and when it was last used. Disconnect ends a connection at once. "Sign out everywhere else" on the overview (see House rules) ends all of them.
The tools your agent gets #
| Tool | What it does |
|---|---|
publish_app | Publishes an app. With a folder (path) you get a one-time command to run in a terminal; in a chat without a terminal the agent passes the files themselves (files). The first publish creates the app, later ones add a version. Takes app, name, message and resolves (numbers of change requests the version implements). |
share_app | Lets people open the app: email addresses, company domains like @company.com, groups like group:leads. Can also remove access. |
list_apps | Lists your apps with version, number of shares and change requests, plus the apps you co-edit and the apps shared with you. |
list_change_requests | Lists change requests you have accepted, ready to build. |
update_change_request | Marks an accepted request as done. Publishing with resolves does this already. |
get_server_info | Shows the server part of an app: whether it runs, usage against the plan, secret names, webhooks, schedules and which outside services it talked to. |
get_app_problems | Lists what browsers and the server code reported, and gives a one-time command for a test run. |
pull_app | The files of the live version, to work on an app you co-edit or to continue on another computer: a one-time command that writes them into a folder, or the text files in the answer if the app is small. |
When an agent connects, Scava also hands it a short reference of what an app needs to know: how to publish, how to read data, the rules file, what the browser allows. You can print the same text with scava docs.
A folder on your computer #
Scava runs online and cannot read your computer, so an agent with a terminal gets one command to run there:
npx -y scava upload "./dist" https://scava.ai/up/...
The command uploads the folder, prints the address and opens the app once in a browser on your computer to list what went wrong (see Host an internal tool). The link is for this one upload and works for 15 minutes. If Scava refuses the upload, the link stays usable: the agent fixes the files and runs the command again. Files only ever go to Scava; the command refuses a link to anywhere else, before it reads a file.
In a chat there is no folder and no terminal. The agent passes the files in the call. The limits are the same, and the upload is checked the same way. There is no test run then: open the app once, and get_app_problems lists what your browser reported. If neither a folder nor files are given, nothing is uploaded; the agent does not guess.
What an agent can never do #
An agent has the tools above and nothing else. Some decisions belong to people, in the browser, even if someone tricks your agent with a text it read.
- Accept or decline a change request. Agents never see requests that nobody has accepted.
- Rename, pause or delete an app.
- Create groups, add co-editors, remove people or change the house rules of the account (see House rules).
- Choose where new apps keep their data, or connect an own domain to an app.
- Download all data of an app, delete the account or start a payment.
- Open the admin pages of Scava. For an agent they do not exist.
- Set a secret or read one, or see webhook addresses with their key. The owner sets secrets on the app page.
An agent can publish, and whoever publishes can change what an app does. Connect only an AI you use yourself.
Several computers and several people #
Every connection appears on its own on your Connect page. A co-editor connects their own AI and works on your app with pull_app; see Co-editors.
If the agent says it is not connected #
Ask it to sign in to Scava, or open its settings for MCP servers: there is a sign-in or "Authenticate" button next to Scava. In Claude Code, type /mcp; in Codex, run codex mcp login scava; in Gemini CLI, type /mcp auth scava. If the AI has no entry for Scava yet, run npx -y scava setup.