for AI agents
Give your agent a cloud.
Connect Claude Code, Cursor or your own agent in one line. It does the work; its key sets the limits.
claude mcp add --transport http opencloudport \ https://opencloudport.com/mcp \ --header "Authorization: Bearer <your key>"
Make the key on the API keys page after you sign up. It works like a password.
68 tools, one for each job.
Everything you can do in the dashboard, your agent can do too, in the same plain steps.
Apps and services
Make apps, plug in what they need, and give them their own domains.
- list_apps
- create_app
- get_app
- rename_app
- delete_app
- list_services
- add_service
- remove_service
- list_domains
- add_domain
- remove_domain
- get_platform_domain
- set_platform_domain
- clear_platform_domain
- set_app_slug
Code and settings
Ship code, roll back, set secrets, run it on a schedule, and read its logs.
- deploy
- deploy_from_sandbox
- list_deployments
- get_deployment
- rollback
- list_schedules
- set_schedules
- get_logs
- list_variables
- set_variable
- remove_variable
Data
Read and change data with SQL, take a copy of a database, and work with files.
- query_database
- execute_sql
- apply_migrations
- list_migrations
- export_database
- list_files
- read_file
- write_file
- delete_file
- get_file_url
Send from the app’s own address, or your own domain once it’s set up.
- send_email
Sandboxes
Install, build, run and preview code.
- create_sandbox
- update_sandbox
- list_sandboxes
- sandbox_exec
- sandbox_write_files
- sandbox_read_file
- sandbox_list_files
- copy_files_to_sandbox
- save_sandbox_files
- sandbox_start_process
- sandbox_process
- sandbox_stop_process
- sandbox_preview_url
- start_sandbox
- stop_sandbox
- delete_sandbox
Balance and prices
Check what’s left, what things cost, and what’s been used.
- get_balance
- get_prices
- get_usage
Keys for other agents
Hand a sub-agent its own key: one app, read-only if you like, with a spending limit.
- list_app_keys
- create_app_key
- revoke_app_key
Webhooks
Tell your own server when things happen: a deploy went live, an email bounced, the balance ran low.
- list_webhooks
- create_webhook
- delete_webhook
Pausing and limits
Pause an app, and cap what an app or each of your customers can spend in a month.
- pause_app
- resume_app
- get_app_spend
- set_app_spend_limit
- list_end_users
- set_end_user_spend_limit
A computer for your agent.
Each sandbox is a private Linux machine. Your agent installs, builds and runs code there, then hands you a live preview link.
- Six sizes, from Tiny for scripts to Huge for heavy builds.
- Falls asleep when idle, and costs nothing while stopped.
- Kept apart from your app and from other sandboxes.
$ pnpm create vite@latest shop --template react
Scaffolding project in /workspace/shop…
$ cd shop && pnpm install
Done in 9.4s
$ pnpm dev --host 0.0.0.0 --port 5173
Local: http://localhost:5173/
Preview: https://sbx…-5173.<preview domain>
Keys, limits and a log.
Let an agent work without handing it the keys to everything.
A key for each agent
Limit it to one app, or one database or bucket, and make it read-only if it only needs to look.
A spending limit
Decide what a key may spend. At its limit it can still read, but can’t change anything until you raise it.
Every change, written down
Each key keeps an activity log in plain words, marking what an agent did over MCP and what was refused.
Asks before deleting
Deleting tools are flagged as such, so agents like Claude Code check with you before they run.
Build your own agent.
The typed SDK reaches everything the MCP server does, and runs anywhere fetch does: Node, Bun, Deno, Workers or the browser.
import { OpenCloudPort } from '@opencloudport/sdk'
const ocp = new OpenCloudPort({ apiKey, baseUrl })
const app = ocp.app(appId)
const sandbox = await app.sandboxes.create({ size: 'standard-1' })
const box = app.sandbox(sandbox.id)
await box.writeFiles({ 'index.js': code })
const { stdout } = await box.exec('node index.js')Your agent is ready when you are.
Sign up, make a key, and paste one line into your agent.
Prepaid. You can’t spend more than you put in.
Yours. Your data stays put, even when a balance runs out.
In minutes. From an empty app to live, by asking.
opencloudport