Skip to main content

CLI for luplo cloud — manage access keys, login, and configure the luplo MCP backend.

Project description

luplo-cloud

CLI (lps) for the hosted luplo cloud. Log in, manage access keys, and wire the luplo MCP server into your editor.

Install

uv tool install luplo luplo-cloud
# or:  pipx install luplo-cloud
# or:  pip install luplo luplo-cloud

Auth model

Two ways the CLI authenticates, used in different scenarios:

Token How obtained Where it lives Used by
OAuth (browser) lps login OS keyring Desktop / interactive
API key (lupk_…) Issued in the web app LUPLO_CLOUD_API_KEY env Servers / CI / IaC

lps mcp-config picks the API key when LUPLO_CLOUD_API_KEY is set, otherwise falls back to the OAuth token in the keyring. API keys are scoped to a single organization (and optionally a subset of projects) at issuance — least privilege by default.

Quickstart — Desktop (interactive)

lps login                                # browser opens, OAuth → tokens → keyring
lps mcp-config | tee ~/.claude.json      # or paste into Claude Desktop config

Default Claude config locations:

  • macOS Claude Desktop: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Linux Claude Desktop: ~/.config/Claude/claude_desktop_config.json
  • Claude Code: ~/.claude.json (global), or run claude mcp add ... (project)

Quickstart — Server / CI (headless)

No browser, no keyring backend required.

# 1) Issue a key in the web app:
#    https://app.luplo.io/settings/api-keys → "+ New API key"
#    Pick org, scope (all projects or specific), expiry (≤ 365 days).
#    The raw lupk_... is shown ONCE — copy it now.

# 2) Inject the key on the server (e.g. /etc/environment, systemd EnvironmentFile,
#    or your secret manager).
export LUPLO_CLOUD_API_KEY=lupk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

# 3) Smoke test.
lps whoami                               # prints email + actor_id

# 4a) Emit a Claude config that uses the key as bearer.
lps mcp-config | tee ~/.claude.json

# 4b) Or wire MCP directly via Claude Code (no config file edit).
claude mcp add --scope user --transport http luplo \
  https://api.luplo.io/mcp \
  --header "Authorization: Bearer $LUPLO_CLOUD_API_KEY"

Configuration

Env var Default Purpose
LUPLO_CLOUD_API_KEY (unset) Headless bearer (lupk_...)
LUPLO_CLOUD_SERVER_URL https://api.luplo.io API base — override for staging
LUPLO_CLOUD_APP_URL https://app.luplo.io Web app base — override for staging

Commands

  • lps login — browser-based OAuth, tokens stored in OS keyring
  • lps logout — revoke the local refresh token + clear keyring
  • lps whoami — print the email and actor_id of the authenticated principal
  • lps mcp-config — emit a mcpServers JSON entry; bearer is the API key if LUPLO_CLOUD_API_KEY is set, otherwise the OAuth token

License

MIT — see LICENSE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

luplo_cloud-0.3.0.tar.gz (36.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

luplo_cloud-0.3.0-py3-none-any.whl (12.5 kB view details)

Uploaded Python 3

File details

Details for the file luplo_cloud-0.3.0.tar.gz.

File metadata

  • Download URL: luplo_cloud-0.3.0.tar.gz
  • Upload date:
  • Size: 36.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for luplo_cloud-0.3.0.tar.gz
Algorithm Hash digest
SHA256 4ef29a9a304290808f2d6b52634426dd94c9e1906a0304fd0ee83a12803c4019
MD5 b3ac20e686dd186a781c002f11eeb987
BLAKE2b-256 8136e3cf3e5b48ddba94736d140de6bf25bc24a0ecfc162912bf6813983b9495

See more details on using hashes here.

Provenance

The following attestation bundles were made for luplo_cloud-0.3.0.tar.gz:

Publisher: release.yml on luplo-io/luplo-cloud

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file luplo_cloud-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: luplo_cloud-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 12.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for luplo_cloud-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 337ad336a0448fb87491c3464dd7252c1b9d980cd5fc067bf8aee6eb9e683198
MD5 6529b54a18aeab219ae885cff2d9d3bc
BLAKE2b-256 d2dd0a7fd6674f343a9e1d8f7825ad8568387b716a292106b9312e2d079db39a

See more details on using hashes here.

Provenance

The following attestation bundles were made for luplo_cloud-0.3.0-py3-none-any.whl:

Publisher: release.yml on luplo-io/luplo-cloud

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page