npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@light-cloud/mcp-server

v1.6.2

Published

MCP server for Light Cloud Platform - Deploy and manage applications with Claude

Readme

Light Cloud MCP Server

An MCP (Model Context Protocol) server that enables Claude to deploy and manage applications on Light Cloud Platform.

No account yet? Start here

Ask Claude: "Sign me up for Light Cloud as [email protected]" (or "connect me to Light Cloud"). The connect tool creates the account — Free plan, no card, no password, no form — once you approve a short code at console.light-cloud.com/device from any device. Same tool signs an existing account in. Then: "deploy this project", "add a database", "put the workspace on Lite". Nothing needs the web console.

Features

  • Sign-up and sign-in from the terminal - connect with an email; a code approved on any device creates or signs in the account. No password.
  • Billing from the conversation - plans, included usage, a one-step upgrade through Stripe Checkout (monthly or annual)
  • Application management - Create, deploy, and delete applications
  • Environment management - Manage staging, production, and preview environments
  • GitHub integration - Deploy directly from GitHub repositories
  • Upload deployment - Deploy local projects without GitHub
  • Logs, metrics, rollbacks - runtime and build logs, environment metrics and activity, one-call rollback
  • Framework detection - the uploaded folder is read by the same detector the console uses for a repository
  • Password-protected sites - password on deploy gates the site at the edge from the first request
  • Console parity - settings, folders, stacks, database admin (schema, SQL, dump, import), invoices and usage alerts, workspace members, API keys (paid plans), git provider links, notifications, support
  • An off switch you control - Settings → Security → Agents & CLI in the console decides what agents may do; enforced on the backend

Installation

Claude Code

# Add the MCP server
claude mcp add light-cloud -- npx @light-cloud/mcp-server

Then inside Claude Code, allow all tools without repeated prompts:

/allowed add mcp__light-cloud__*

Claude Desktop (one-click extension)

Download light-cloud-<version>.mcpb from the latest release and open it — Claude Desktop shows an install dialog. The bundle carries the server and its dependencies; Node ships with Claude Desktop, so nothing else is needed. Settings (API endpoint, console URL) are editable in the extension's page.

Build it yourself: npm run bundle → release/light-cloud-<version>.mcpb (manifest.json in this repository is the generated manifest).

Claude Desktop (manual config)

Add to your claude_desktop_config.json:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "light-cloud": {
      "command": "npx",
      "args": ["@light-cloud/mcp-server"]
    }
  }
}

Usage

Once installed, just chat naturally with Claude:

You: Deploy my React app to Light Cloud
Claude: I'll help you deploy. First, let me check your authentication...
        [Opens browser for login]

You: Show me all my applications
Claude: [Lists your applications with status]

You: Check the logs for my-app
Claude: [Fetches and displays recent logs]

Available Tools

110 tools: everything the console can do, from a conversation. Console-only by design: the account password, two-factor settings, and the Agents & CLI switch (below). Full reference with a prompt for each tool: https://docs.light-cloud.com/deploy-with-ai/mcp-server#tool-reference

| Group | Tools | |-------|-------| | Account | connect, connect-status, login, logout, whoami, get-profile, update-profile, list-connected-devices, sign-out-device, get-agent-access | | Deploy | upload-and-deploy (with optional password), create-application, create-stack, wait-for-deployment, deploy-application, deploy-environment, rollback-deployment, set-password-protection, detect-local-framework, detect-framework, detect-local-git, list-repo-directories, read-project-config, write-project-config | | Apps & environments | list-applications, get-application, get-application-status, get-formatted-list, get-formatted-status, update-application, rename-application, move-application, delete-application, list-environments, get-environment, create-environment, update-environment, delete-environment, set-scaling, get-environment-metrics, get-environment-activity, get-environment-runtime, list-folders, create-folder, delete-folder | | Logs & deployments | get-environment-logs, list-deployments, get-deployment, get-build-logs | | Variables, domains | set-environment-variables, get-environment-variables, add-custom-domain, get-custom-domain-status, retry-custom-domain, remove-custom-domain | | Databases | list-databases, get-database, create-database, update-database, delete-database, get-database-connection-string, rotate-database-password, get-database-schema, query-database, get-database-metrics, dump-database, import-database | | Plan & billing | get-billing, list-plans, choose-plan, add-payment-method, payment-method-status, remove-payment-method, get-usage, get-usage-history, list-invoices, get-invoice, retry-invoice, get-outstanding-invoices, get-usage-alerts, set-usage-alerts, get-billing-details, set-billing-details | | Workspace & members | create-workspace, list-members, invite-member, remove-member, set-member-role, list-roles, list-api-keys, create-api-key (paid plans), revoke-api-key | | Git providers | get-github-installation-status, get-github-install-url, list-github-installations, list-repositories, list-branches, check-repo-access, connect-git-provider (GitLab / Bitbucket, one link), list-provider-repositories | | Other | list-notifications, mark-notifications-read, contact-support, ping, get-platform-config, get-cloudrun-config, and the low-level upload steps (package-source, request-upload-url, complete-upload, create-application-from-upload) |

Prompt: deploy-from-scratch — asks the two things a folder cannot answer (workspace, public or password-protected), then deploys and hands back the URL.

Turning agents off

Settings → Security → Agents & CLI in the console decides what this server, the CLI and the VS Code extension may do on an account: a master switch, then groups (deploy, delete, settings, databases, billing, workspace, API keys). Reads are always allowed. The backend enforces it from the session's own client claim, fixed when the session was issued, so a header cannot get around it — and the switch can only be changed from the console. A refusal comes back as AGENT_ACCESS_DISABLED or AGENT_ACTION_BLOCKED with the place to change it; the server's instructions tell the assistant not to retry.

Authentication

Two ways in; both store credentials in ~/.lightcloud/credentials.json.

connect (default, works anywhere). Ask Claude to connect with your email. The tool prints an 8-character code and the address console.light-cloud.com/device; open it on any device, sign in if you already have an account (or follow the link in the email we sent if you do not — approving creates the account), type the code, approve. Claude calls connect-status until the approval lands. No password is typed into Claude, ever.

login (browser on this machine). Opens the console's sign-in page with a loopback callback, as before.

Plans and upgrading

Every workspace starts on Free: $1 of usage a month, unlimited static sites, 3 server apps, no card. When Free's $1 is used up, server apps and deploys pause until the next cycle and static sites keep serving; a free workspace is never billed. Paid plans (Lite, Starter, Pro, Business; list-plans has prices and limits) include usage worth their price, extra usage goes on the next invoice, and a usage limit can be chosen at checkout. Annual billing is two months free.

Upgrading is one step. choose-plan (with interval: "year" for annual billing) charges a saved card, or returns a Stripe Checkout link that takes the card and the first payment together. The assistant hands over the link ("Open this link to add a card; the plan switches as soon as Stripe confirms") and payment-method-status waits until the plan has switched. add-payment-method only saves or replaces a card. No card number passes through the server.

Refusals an agent can act on

Write tools that hit a plan limit come back with a code and a Next step: line. A plan refusal (PLAN_ENTITLEMENT) names the plan that includes what was refused and its price, for example Next step: call the choose-plan tool with plan_id lite (Lite, $5/month) once the user agrees; the assistant asks the user before upgrading, since choose-plan takes payment. Others: PAYMENT_METHOD_REQUIRED → add-payment-method, POOL_EXHAUSTED → choose-plan (Free's included usage is used up), ORGANISATION_SUSPENDED → add-payment-method. The deploy-from-scratch prompt walks the whole path: connect, billing check, detect, create, database + environment variables, deploy.

Some refusals are answered by talking to the user instead:

| Code | When | What the agent does | |------|------|---------------------| | DOMAIN_NOT_POINTING_HERE | add-custom-domain would replace a domain that serves visitors with one whose DNS points elsewhere | Tells the user which record to add. Repeats with force: true only if the user says to switch anyway | | USE_DOMAIN_ROUTES | update-application / update-environment was given a different custom domain | Uses add-custom-domain or remove-custom-domain | | PAYMENT_FAILED | choose-plan charged the saved card and it was declined; the plan is unchanged | Tells the user; add-payment-method with plan_id saves a different card and switches once it is saved |

Custom domains come with the paid plans. On Free add-custom-domain is refused with PLAN_ENTITLEMENT, naming the plan that includes them. A domain already on a Free workspace goes on hold 14 days after the owner is emailed (the site keeps its light-cloud.io address), and a database left on Free stops then too, with its data kept; a paid plan brings both back. Downgrading to Free with a database is refused with DATABASES_ON_FREE until it is deleted. Pages on Free carry a small "by Light Cloud" link, added at the edge; list-plans says which plans show it.

Configuration

No configuration is needed. The server talks to Light Cloud at these addresses by default:

| Variable | Default | |---|---| | LIGHT_CLOUD_API_URL | https://api.light-cloud.com | | LIGHT_CLOUD_CONSOLE_URL | https://console.light-cloud.com |

Set them only if you were given a different endpoint.

Development

# Clone the repository
git clone https://github.com/light-cloud-com/mcp-server.git
cd mcp-server

# Install dependencies
npm install

# Run in development mode
npm run dev

# Build for production
npm run build

Testing

Test the server manually:

npm run build
node dist/index.js

Then send JSON-RPC messages via stdin.

License

MIT - see LICENSE

Links

Submitting to the Anthropic directory

What the Software Directory policy asks for and where it is:

  • Bundle: the .mcpb on the latest release; source in this repository.
  • Tool annotations (title, readOnlyHint, destructiveHint) on every tool; descriptions match behaviour; no hidden instructions.
  • Privacy policy: https://www.light-cloud.com/legal/privacy-policy · support: https://www.light-cloud.com/contact · docs: https://docs.light-cloud.com/deploy-with-ai/mcp-server
  • Example prompts: "Connect me to Light Cloud as [email protected]", "Deploy this project to Light Cloud", "Add a Postgres database and set DATABASE_URL on production", "Why did the last deployment fail? Check the logs".
  • Test account with sample data: provided on the submission form.