Skip to main content

Choose The Right Integration Surface

Lamina supports three developer entry points: The HTTP API is the canonical contract. The CLI and MCP server are thin wrappers around that same /v1 surface.

Install From npm

If you want to run the MCP server without a global install:
If you prefer a global MCP binary:

Authenticate Once

lamina login opens your browser for an OAuth approval flow — pick a workspace, click Approve, and the CLI receives the token on a loopback callback.
For CI / scripted callers, pass a workspace API key non-interactively:
Either path stores credentials at ~/.lamina/config.json (mode 0600). OAuth tokens auto-refresh near expiry — you stay logged in for up to 30 days without re-prompting. Inspect the active identity at any time:
Or skip local storage entirely and use the environment:
The CLI and MCP server resolve auth in this order:
  1. LAMINA_API_KEY environment variable
  2. saved CLI credentials at ~/.lamina/config.json (OAuth tokens or API key)
Sign out:

Inspect Apps

List available apps:
Inspect one app’s parameter contract:

Upload A Local File

Pass a path; the CLI streams the bytes to Lamina’s CDN via a pre-signed URL and prints the resulting URL you can pass to lamina run --input ...:

Run An App

You can run with a JSON file:
Or inline values:
The CLI fetches the app schema first and validates:
  • unknown parameter names
  • missing required inputs
  • invalid option labels
  • invalid url values

Where The SDK Fits

The shared Lamina client is published as @uselamina/sdk and powers both the CLI and MCP server. If you are integrating from your own backend, use @uselamina/sdk or call the /v1 HTTP API directly. The client wraps:
  • GET /v1/apps
  • GET /v1/apps/{appId}
  • GET /v1/apps/{appId}/workflow
  • POST /v1/apps/{appId}/runs
  • GET /v1/runs/{runId}
  • GET /v1/webhooks/signing-key

Next Steps