ASI Developers

ASI Cloud developers

Automate your cloud, or let your AI agent run it.

Manage VMs, S3 storage, firewall rules and AI Inference with the REST API, or connect Claude Code, OpenCode, Cursor or VS Code through the MCP server. Hosted in New Zealand.

List your VMs and this month's cost
curl https://cloud.asi.nz/api/v1/vm-data/costs?current_only=true \
  -H "Authorization: Bearer $ASI_CLOUD_TOKEN"
REST API
https://cloud.asi.nz/api/v1
MCP server
https://cloud.asi.nz/mcp
Authorization header
Bearer <your-token>
Rate limit
60 requests a minute per token

Quick start

Up and running in three steps

One organisation API token works for the REST API and the MCP server. It can do everything your account can, so keep it out of code and shared files.

1

Create a token

Sign in to the ASI Cloud portal and open API Tokens. Copy the token straight away: it is shown once.

2

Make your first call

Keep the token in an environment variable and call the API:

Terminal
export ASI_CLOUD_TOKEN='your-api-token'
curl https://cloud.asi.nz/api/v1/vm-data/costs?current_only=true \
  -H "Authorization: Bearer $ASI_CLOUD_TOKEN"
3

Connect an AI agent

Add the MCP server to your coding agent and ask in plain language, for example "What's running, and what does it cost this month?"

Set up MCP

What you can do

Everything in the portal, from code

The REST API and the MCP server cover the same products, with the same rules and limits as the portal.

AreaReadChange
Virtual machinesVMs with this month's cost, live state and IP addresses, snapshots, templates, regionsDeploy, power on and off, rename, resize, delete, snapshots
Operations run in the background: poll their operation_id.
SSH keysKeys with fingerprintsUpload a public key, delete
Generating a key pair is REST only, so private keys never pass through an AI chat.
Firewall rulesPort forwards and their public address, per regionAdd a port forward with optional source IPs and expiry, delete
S3 storageBuckets, permissions and IP allowlistsCreate, rotate key, set permissions or allowlist, delete, empty and delete
Secret keys are shown once and never stored.
AI InferenceStatus, models and prices, keysTurn on or off, create, revoke and delete keys
BillingBilling records and summaries, prices, organisationsRead only

MCP server

Connect your AI agent

A remote MCP server at https://cloud.asi.nz/mcp gives your agent 43 tools that call the same API with your organisation token.

Run once in a terminal where your token is set:

Terminal
export ASI_CLOUD_TOKEN='your-api-token'
claude mcp add --transport http asi-cloud https://cloud.asi.nz/mcp \
  --header "Authorization: Bearer $ASI_CLOUD_TOKEN"

Claude Code saves the server, with the token, in its own configuration. Check it with claude mcp list.

What your agent can do

Read tools answer questions. The others act on your account, and a well-configured client asks you first.

18 read only 11 make changes 14 destructive

Check your client's permissions

  • Allowing every tool of this server also allows deleting VMs and buckets and turning on paid services.
  • Deploying VMs, creating buckets and turning on AI Inference cost money but are not marked destructive, so some clients run them without asking.
  • Secrets returned by a tool appear in the conversation and in your AI provider's logs.

Coming later

Claude.ai and ChatGPT connectors need OAuth sign-in, which is on the way. Staff admin tokens are refused.

All 43 MCP tools

Virtual machines

list_vms Read only The VMs that exist now, with specs, power state and this month's estimated cost (month-to-date and full-month estimate, NZD excluding GST), as on the portal's VM list.
get_vm_state Read only Live power state and IP addresses of a VM, read from the hypervisor now.
list_vm_snapshots Read only Snapshots of a VM (at most 3 per VM), with their snapshot ids.
list_regions Read only Regions (deployment presets) that accept new VMs.
list_vm_templates Read only Templates a VM can be deployed from, with default specs.
get_operation_status Read only Progress of an asynchronous VM operation (deploy, delete, power, rename, resize, snapshot) by the operation_id it returned.
deploy_vm Changes Create a new VM from a template (list_vm_templates).
power_on_vm Changes Start a powered-off VM.
power_off_vm Destructive Shut a VM down: whatever runs on it stops.
rename_vm Changes Change a VM's name.
resize_vm Changes Change a powered-off VM's vCPUs, memory or disk (disk can only grow).
delete_vm Destructive Permanently delete a powered-off VM and its disks.
create_vm_snapshot Changes Take a snapshot of a VM (at most 3 per VM).
delete_vm_snapshot Destructive Permanently delete a snapshot.
restore_vm_snapshot Destructive Roll a powered-off VM back to a snapshot.

SSH keys

list_ssh_keys Read only SSH keys on the account (name, type, fingerprint, public key).
upload_ssh_key Changes Add the user's own OpenSSH public key (one line: ssh-ed25519, ssh-rsa or ecdsa-sha2-nistp256/384/521), for example the contents of ~/.ssh/id_ed25519.pub.
delete_ssh_key Destructive Remove an SSH key from the account.

Firewall rules

list_firewall_rules Read only Port-forwarding rules from the region's public IP to VMs, plus the region's public IP and subnet.
add_firewall_rule Changes Forward a port on the region's public IP to a VM.
delete_firewall_rule Destructive Remove a port forward: traffic to that port stops at once.

S3 storage

list_s3_buckets Read only S3 buckets with their access key id, permissions, IP allowlist and endpoint (path-style addressing).
create_s3_bucket Changes Create a bucket with its own access key.
rotate_s3_key Destructive Issue a new access key for a bucket.
set_s3_permissions Destructive Replace what the bucket's key may do.
set_s3_allowlist Destructive Replace the public IPv4 /32s the bucket's key works from (at most 20); an empty list removes the restriction.
delete_s3_bucket Destructive Delete a bucket that is already empty.
empty_and_delete_s3_bucket Destructive Permanently delete every object in a bucket, then the bucket.

AI Inference

get_ai_inference_status Read only Whether AI Inference is on, whether it can be turned on (and why not), the base URLs for OpenAI- and Anthropic-compatible clients, rate limits, and the models with prices (NZD per million tokens, excluding GST).
list_ai_inference_keys Read only AI Inference API keys (name, prefix, status, expiry, last used, updated hourly).
enable_ai_inference Changes Turn on pay-per-token AI Inference.
disable_ai_inference Destructive Turn off AI Inference: every API key stops working within seconds, including keys the user may be using right now.
create_ai_inference_key Changes Create an API key for the AI Inference endpoints (base URLs in get_ai_inference_status).
revoke_ai_inference_key Destructive Revoke a key: anything using it stops within seconds.
delete_ai_inference_key Destructive Remove a revoked or expired key from the list (revoke it first).

Product pricing

search_products Read only Search ASI's product catalogue by keyword (product name, model, brand) or by manufacturer part number.
price_products Read only ASI's current sell price and stock for up to 50 manufacturer part numbers, the codes that go on a purchase order (for example SMT1500IC or MG8J4X/A), not product names.

Account and billing

list_organisations Read only The organisations this token can read: its own and, for a white-label parent, its direct child organisations.
get_billing_summary Read only Totals of the latest daily billing run, by resource type.
list_billing_records Read only Billing lines (one per resource per daily run).
list_prices Read only The organisation's prices per resource type (NZD excluding GST).
list_support_tickets Read only Support tickets with ASI (subject, description, status, priority, category), most recently updated first.
create_support_ticket Changes Open a support ticket with ASI's support team, who reply to the account's email.

Reference

Docs, specs and agent skills

REST API

API reference

Every endpoint with its parameters, responses and errors. Try calls in the browser with your token.

For AI agents

API skill

A Markdown guide that teaches an agent to use the REST API correctly. Use it where MCP is not available.

Public, no token

Product pricing

Look up the IT products ASI sells and quote indicative NZD prices by part number. 20 requests a minute per IP address.

Good to know

Things that trip people up

Your VM list

Use GET /vm-data/costs?current_only=true. Each row's id works with every VM operation. GET /vm-data is a cursor-paged history of hourly snapshots, so one VM appears many times, and a page greater than 1 returns 422.

Costs and invoices

VM costs are estimates in NZD excluding GST. GET /billings/summary is the latest daily billing run, not the invoice: a month has many runs, and the largest batch_id carries the month's figures.

Secrets are shown once

S3 secret keys, AI Inference keys and generated SSH private keys come back in one response and are never stored. If one is lost, rotate or replace it.

Public pages, private API

These docs are public. Every cloud call under /api/v1 and the MCP server need a bearer token. Product pricing under /api/v1/products does not, and neither does the product pricing MCP server at https://cloud.asi.nz/mcp/products; adding an organisation token raises their limit from 20 to 60 lookups a minute.

Product search

Quote by part number with POST /price. Search returns at most 25 rows a page (per_page up to 25), and meta.total includes rows that have no sell price.

Limits

60 requests a minute per token and per_page up to 100. One VM deployment and one new SSH key per minute. S3 endpoints accept connections from New Zealand IP addresses only.