Skip to main content
For agents · MCP · CLI · curl

Built for agents.

instanode.dev is the only PaaS where the unit of value is one HTTP call.

Drop-in integrations

Pick your agent runtime. Three commands or less.

Claude Code

claude mcp add instanode -- npx -y instanode-mcp

One-line install. Works across all Claude Code projects.

Cursor

cursor mcp add instanode -- npx -y instanode-mcp

Adds the MCP server to Cursor's agent runtime.

MCP server config

{
  "mcpServers": {
    "instanode": {
      "command": "npx",
      "args": [
        "-y",
        "instanode-mcp"
      ]
    }
  }
}

Drop into ~/.config/mcp/mcp.json (or any MCP host).

instanode CLI

curl -fsSL https://raw.githubusercontent.com/InstaNode-dev/cli/master/install.sh | sh

Single binary. Same agent flow, from your shell.

Why agents like us

Three properties that make agent code deterministic.

01 · zero-auth first call

No auth wall on first call. /db/new returns a connection string in <2s. Anonymous fingerprint-rate-limited.

02 · self-describing api

Self-describing. /openapi.json + /llms.txt + every response has the next-best agent action embedded in the `note` field.

03 · idempotent claim

Idempotent claim. The same JWT can be claimed exactly once — atomically. Your agent's logic is deterministic.

04 · safe retries on every create

Every create endpoint deduplicates retries. Pass an Idempotency-Key header for true exactly-once across a 24h window, or just retry safely — the server fingerprints (scope + route + canonical body) and replays for 120s. The response header X-Idempotent-Replay: true tells you when you hit the cache.

05 · in-place app updates

Pushing v2 of an app? Re-call POST /deploy/new with the same name + redeploy=true (multipart form field). Same app_id, same URL, no extra slot. Without the flag, each call mints a new deployment — by design, so retries are safe.

One call. Real Postgres.

Below is what hits the wire — request and response. No mocks.

requestcurl · http/2
curl -X POST https://api.instanode.dev/db/new \
  -H 'Content-Type: application/json' \
  -d '{"name":"prod-db"}'
response200 · 1.4s · application/json
{
  "ok": true,
  "token": "res_2RtL9k4mP",
  "connection_url": "postgres://u_3jX:••••@shared-1.instanode.dev:5432/db_2rtL9k4mp",
  "tier": "anonymous",
  "env": "development",
  "limits": { "storage_mb": 10, "connections": 2 },
  "upgrade_url": "https://instanode.dev/start?t=eyJhbGciOi...",
  "upgrade_jwt": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
  "note": "Resource expires in 24h. Claim with the link above to keep it."
}

Read the OpenAPI spec.

Every endpoint, every shape, every note field. Wired for agent consumption.

https://api.instanode.dev/openapi.json