Skip to main content

LightNow Local Proxy

PyPI

The LightNow Local Proxy lets local MCP clients use one LightNow-managed MCP entry instead of storing every MCP server configuration and secret in every client.

It runs on your machine, uses your LightNow CLI login session, resolves the MCP servers enabled for your selected LightNow profile, and forwards tool/resource requests to local stdio or reachable Streamable HTTP MCP servers.

Install

Requirements:

pipx install lightnow-cli
lightnow login

Install the proxy with Homebrew:

brew tap lightnow-ai/tap
brew install lightnow-proxy

Or install it with pipx:

pipx install lightnow-proxy

Or install it with uv:

uv tool install lightnow-proxy

The Python package installs the lightnow-proxy command used by MCP clients.

For repository-local development:

uv tool install --from . lightnow-proxy

Configure a Client

Use the LightNow CLI. It writes the client MCP entry and the per-client Local Proxy config.

lightnow sync --client codex --local-proxy
lightnow sync --client claude-desktop --local-proxy
lightnow sync --client cursor --local-proxy
lightnow sync --client vscode --local-proxy
lightnow sync --client antigravity --local-proxy

Restart the MCP client after syncing.

Multiple accounts and organizations

Use a distinct --connection alias for every account, organization or profile that should appear in the same MCP client:

lightnow login
lightnow sync --client codex --local-proxy \
  --connection lightnow-personal --profile default

# Sign in with the organization account before creating this connection.
lightnow login
lightnow sync --client codex --local-proxy \
  --connection lightnow-acme --tenant <tenant-id> --profile engineering

Each generated proxy config has a stable connection ID and points to one named CLI session under ~/.lightnow/sessions/. It also records the expected issuer and subject. The proxy refuses Registry requests when those values do not match, so a later CLI login cannot silently switch an existing connection. No access or refresh token is written to the proxy YAML.

Check the local setup:

lightnow config-status --client codex

Check whether the proxy can resolve the selected profile and reach its upstream MCP servers:

lightnow-proxy --health
lightnow-proxy --health --json

By default this reads ~/.lightnow/lightnow-proxy/default.yaml, which is written when the default profile is synced into Local Proxy mode. For a client-specific config, pass the generated path explicitly:

lightnow-proxy --config ~/.lightnow/lightnow-proxy/codex.yaml --health
lightnow-proxy --config ~/.lightnow/lightnow-proxy/codex.yaml --health --json

Named connections use separate files such as ~/.lightnow/lightnow-proxy/codex-lightnow-acme.yaml. The JSON health report shows their non-secret connection alias, ID, account label, scope, profile and identity-binding status. Legacy configs that use cli_config_path remain readable, but are restricted to the configured authentication issuer.

When telemetry is enabled, active health checks are sent to the LightNow Control Plane as metadata-only proxy health events. The proxy also sends device presence immediately at startup and every two minutes. The Control Plane can then show which devices, clients and profiles are active, healthy, degraded, or failing without storing secrets, tool arguments, response bodies, network addresses, hardware identifiers, or local paths.

Vault providers configured for runtime resolution are resolved on this host, after Registry API has returned a provider reference without credentials or a secret value. HashiCorp Vault Proxy auto-auth on 127.0.0.1:8200 is the default. Provider-specific loopback listeners can be mapped under runtime_secrets.providers in the generated YAML; LightNow CLI preserves these non-secret mappings on subsequent syncs. The optional OS-keyring path is available with lightnow-proxy[keyring]. Resolution failures are fail-closed and plaintext values are never added to the tool-schema cache.

More Documentation

Detailed setup guides, examples, diagrams, supported client paths, telemetry behavior and troubleshooting live in the LightNow docs:

Local Development

For contributors working on this repository:

uv venv
uv pip install -e .[dev]
make test

Run the proxy with the example config:

uv run lightnow-proxy --config config.example.yaml

Run the proxy as a stdio MCP server:

uv run lightnow-proxy --config config.example.yaml --transport stdio

Run a local health check against the example config:

uv run lightnow-proxy --config config.example.yaml --health

Download files

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

Source Distribution

lightnow_proxy-1.4.1.tar.gz (54.6 kB view details)

Uploaded Source

Built Distribution

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

lightnow_proxy-1.4.1-py3-none-any.whl (38.9 kB view details)

Uploaded Python 3

File details

Details for the file lightnow_proxy-1.4.1.tar.gz.

File metadata

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

File hashes

Hashes for lightnow_proxy-1.4.1.tar.gz
Algorithm Hash digest
SHA256 acbe670bfc4527dbb7ad754a6c2c3c2ee5e5dace51bf7d98854f873d2b9c5474
MD5 49fd03e102be4190b3a63c240b44c5e2
BLAKE2b-256 b16d559e0d3aa63130128abc79306783a3e698e00822918a6059a9040d79b7c0

See more details on using hashes here.

Provenance

The following attestation bundles were made for lightnow_proxy-1.4.1.tar.gz:

Publisher: release.yml on lightnow-ai/lightnow-proxy

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

File details

Details for the file lightnow_proxy-1.4.1-py3-none-any.whl.

File metadata

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

File hashes

Hashes for lightnow_proxy-1.4.1-py3-none-any.whl
Algorithm Hash digest
SHA256 5a1379203441954e47e53cf2f27e5f4e240c4035740b785b64b4e97c6802ac2d
MD5 7fecf538c909c0d2c5759646f5af6271
BLAKE2b-256 ae95a4bc0c5d44c002c2e12b3ae387f38695cde7c513101c7130ee69265ed323

See more details on using hashes here.

Provenance

The following attestation bundles were made for lightnow_proxy-1.4.1-py3-none-any.whl:

Publisher: release.yml on lightnow-ai/lightnow-proxy

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

Release history Release notifications | RSS feed

1.9.1

2 files

1.9.0

2 files

1.8.0

2 files

1.7.1

2 files

1.7.0

2 files

1.6.0

2 files

1.5.0

2 files

1.4.2

2 files

This release

1.4.1 This release

2 files

1.4.0

2 files

1.3.0

2 files

1.2.0

2 files

1.1.0

2 files

1.0.1

2 files

1.0.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page