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

Email

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.
sandbox · Medium · /workspace

$ 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>

Commands an agent runs in its sandbox, through the sandbox_exec and sandbox_start_process tools.

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.