1. Conduid
  2. Cloud
  3. server
MCP server · Cloud

server

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

Unclaimed cloud
39Low

Scored 5 months ago · breakdown

About server

server is an MCP server published by git+light-cloud-com in the Cloud category: mCP server for Light Cloud Platform - Deploy and manage applications with Claude.

Install

Install
npx @light-cloud/mcp-server
Claude Code
claude mcp add server-gitlight -- npx -y @light-cloud/mcp-server
npx
npx -y @light-cloud/mcp-server

This server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.

Tools (100)

add-custom-domainAttach a custom domain to an environment. Returns the DNS records to create; then poll get-custom-domain-status.

Parameters not published.

add-payment-methodSave a card for a workspace

Parameters not published.

check-repo-accessCheck if an organization has access to specific GitHub accounts

Parameters not published.

choose-planPut a workspace on a plan. Free plan: immediate, no card. Paid plan: charges the card on file for the first month;

Parameters not published.

complete-uploadMark an upload as complete with optional detection metadata

Parameters not published.

connectSIGN UP or sign in to Light Cloud with an email — the only account step needed. An email with no account gets one

Parameters not published.

connect-git-providerA link that connects a GitLab or Bitbucket account to a workspace. Give it to the user to open; once approved, create-application works with that provider

Parameters not published.

connect-statusWait for a pending `connect` sign-in to be approved (up to ~45 seconds per call).

Parameters not published.

contact-supportSend a message to Light Cloud support from the signed-in account.

Parameters not published.

create-api-keyCreate an API key for CI and other machines (lc login --api-key, or LIGHT_CLOUD_API_KEY). Paid plans only — a refusal names choose-plan as the next step. The secret is returned once; hand it to the user, never write it into files.

Parameters not published.

Show all 100 tools
create-applicationCreate a new application from a GitHub, GitLab or Bitbucket repository

Parameters not published.

create-application-from-uploadCreate a new application from an uploaded source archive

Parameters not published.

create-databaseCreate a managed database. Default: a PostgreSQL database on the shared pool (tier shared-dev, included in every plan).

Parameters not published.

create-environmentCreate a new environment for an application

Parameters not published.

create-folderCreate a folder (project) in a workspace, optionally inside another folder.

Parameters not published.

create-stackCreate an app from a stack template (for example the Open SaaS / Wasp stack): a repository is created for the user, the app is set up from it and deployed. Stacks are listed by get-platform-config when enabled for the workspace.

Parameters not published.

create-workspaceCreate a new workspace (organisation) owned by the signed-in user, on the free plan.

Parameters not published.

delete-applicationDelete an application and all its environments

Parameters not published.

delete-databaseDelete a database and all its data. Irreversible; confirm with the user first.

Parameters not published.

delete-environmentDelete an environment

Parameters not published.

delete-folderDelete an empty folder (project).

Parameters not published.

deploy-applicationTrigger a new deployment. Without environment_id the production environment is rebuilt; with it, that environment is deployed instead.

Parameters not published.

deploy-environmentTrigger a new deployment for a specific environment

Parameters not published.

detect-frameworkAuto-detect framework and configuration from a GitHub repository

Parameters not published.

detect-local-frameworkDetect framework and configuration from a local project directory

Parameters not published.

detect-local-gitDetect Git repository information from a local project directory

Parameters not published.

dump-databaseDownload a compressed SQL dump of a database to a local file (gzip). Returns the path written.

Parameters not published.

get-agent-accessWhat this account lets agents (the CLI, MCP servers, VS Code) do — the switch under Settings → Security → Agents & CLI. Read-only here; it is changed in the console.

Parameters not published.

get-applicationGet details of a specific application

Parameters not published.

get-application-statusGet the current status of an application

Parameters not published.

get-billingPlan, card on file and usage pool for a workspace. Call before creating resources: it says whether a card or a plan change is needed.

Parameters not published.

get-billing-detailsThe billing address and tax ids on the workspace

Parameters not published.

get-build-logsThe build log of one deployment (the step that turns source into a running app). For runtime logs use get-environment-logs.

Parameters not published.

get-cloudrun-configGet Cloud Run configuration options

Parameters not published.

get-custom-domain-statusWhether an environment

Parameters not published.

get-databaseDetails and status of a database (provisioning state, engine, tier, host)

Parameters not published.

get-database-connection-stringThe connection string for a ready database. Treat it as a secret: put it in an environment variable (set-environment-variables), do not print it into files.

Parameters not published.

get-database-metricsConnections, CPU, memory, storage and query load for a database over a time range.

Parameters not published.

get-database-schemaSchemas, tables, columns and row counts of a database.

Parameters not published.

get-deploymentGet details of a specific deployment

Parameters not published.

get-environmentGet details of a specific environment

Parameters not published.

get-environment-activityWho changed what on an environment, newest first: deploys, settings, scaling, domains, password gate.

Parameters not published.

get-environment-logsGet runtime logs for a backend (container) environment, newest first

Parameters not published.

get-environment-metricsRequests, latency, errors, instances, CPU and memory for an environment over a time range.

Parameters not published.

get-environment-runtimeWhat is running right now for an environment: the live deployment, instances, region, size.

Parameters not published.

get-environment-variablesThe environment variable names set on an environment (values are shown masked).

Parameters not published.

get-formatted-listGet formatted list of all applications with markdown tables and emojis

Parameters not published.

get-formatted-statusGet application status with enhanced formatting (markdown tables, emojis)

Parameters not published.

get-github-install-urlGet the URL to install the Light Cloud GitHub App

Parameters not published.

get-github-installation-statusCheck whether the Light Cloud GitHub App is installed for a repository within an organization (and can read that repository)

Parameters not published.

get-invoiceOne invoice with its lines.

Parameters not published.

get-outstanding-invoicesUnpaid invoices across the workspaces you own — what is blocking a suspended workspace.

Parameters not published.

get-platform-configGet Light Cloud platform configuration

Parameters not published.

get-profileGet the current user profile and list of organizations

Parameters not published.

get-spending-limitThe workspace

Parameters not published.

get-usageUsage against the workspace

Parameters not published.

get-usage-historyUsage over previous billing cycles.

Parameters not published.

import-databaseLoad a SQL dump (.sql or .sql.gz) from a local file into a database. Existing data is not cleared first.

Parameters not published.

invite-memberInvite someone to a workspace by email with a role (see list-roles). They get an email; the seat is active once they sign in.

Parameters not published.

list-api-keysAPI keys of a workspace (name, role, prefix, created, last used). Secrets are never shown again after creation.

Parameters not published.

list-applicationsList all applications in an organization

Parameters not published.

list-branchesList branches in a GitHub repository

Parameters not published.

list-connected-devicesEvery signed-in session on the account: browsers, the CLI, MCP servers, VS Code.

Parameters not published.

list-databasesList the databases in a workspace

Parameters not published.

list-deploymentsList deployments for an environment

Parameters not published.

list-environmentsList all environments for an application

Parameters not published.

list-foldersFolders (projects) in a workspace, used to group apps and databases.

Parameters not published.

list-github-installationsList all GitHub App installations

Parameters not published.

list-invoicesInvoices for a workspace, newest first, with status and totals.

Parameters not published.

list-membersMembers of a workspace with their roles and status.

Parameters not published.

list-notificationsThe account

Parameters not published.

list-plansThe plans a workspace can be on, with prices and what each includes (sizes, always-on, database tiers).

Parameters not published.

list-provider-repositoriesRepositories a workspace can reach through its connected GitLab or Bitbucket account. GitHub uses list-repositories.

Parameters not published.

list-repo-directoriesFolders inside a repository branch, for picking a monorepo root before create-application.

Parameters not published.

list-repositoriesList GitHub repositories accessible to an organization

Parameters not published.

list-rolesRoles available in a workspace and what each may do.

Parameters not published.

loginSign in to Light Cloud through a browser on THIS machine (loopback callback). Prefer `connect` — it works without a local browser and also creates the account for a new email.

Parameters not published.

logoutSign out of Light Cloud

Parameters not published.

mark-notifications-readMark one notification read, or all of them when no id is given.

Parameters not published.

move-applicationMove an application into a folder (project), or to the workspace root with no folder.

Parameters not published.

package-sourcePackage a local project directory into a zip archive for upload

Parameters not published.

payment-method-statusWait for the card from add-payment-method to be saved (up to ~45 seconds per call; call again while it reports open).

Parameters not published.

pingHealth check - returns pong

Parameters not published.

query-databaseRun SQL against a database. Read-only unless allow_writes is true; results are capped by the platform. Never print secrets from the results into files.

Parameters not published.

read-project-configRead .lightcloud config file from a project directory

Parameters not published.

remove-custom-domainDetach an environment

Parameters not published.

remove-memberRemove a member from a workspace.

Parameters not published.

remove-payment-methodRemove the card on file. Refused while the workspace is on a paid plan or has unpaid invoices.

Parameters not published.

rename-applicationRename an application. The light-cloud.io URL keeps the original slug.

Parameters not published.

request-upload-urlRequest a signed URL to upload source code

Parameters not published.

retry-custom-domainRetry certificate issuance for an environment

Parameters not published.

retry-invoiceCharge the card on file again for a failed invoice.

Parameters not published.

revoke-api-keyRevoke an API key. Anything using it stops at once.

Parameters not published.

rollback-deploymentPut an earlier deployment back live, without rebuilding. Pick the deployment id from list-deployments.

Parameters not published.

rotate-database-passwordGenerate a new admin password for a database. Apps using the old one must get the new connection string (get-database-connection-string, then set-environment-variables).

Parameters not published.

set-billing-detailsSet the billing address and tax ids printed on invoices. Only the fields given change.

Parameters not published.

set-environment-variablesSet (merge) environment variables on an environment. Existing keys not mentioned are kept; pass an empty string to clear one.

Parameters not published.

set-member-roleChange a member

Parameters not published.

set-password-protectionGate a site behind a visitor password, rotate it, or make the site public again. Takes effect on the next request. Pass no password to remove the gate.

Parameters not published.

set-scalingInstance floor and ceiling for an environment. min_instances ≥ 1 keeps it always on (plan permitting — a refusal names the next step).

Parameters not published.

Ask AI

✦

Ask AI about server

Powered by Claude · Grounded in docs

I know everything about server. Ask me about installation, configuration, usage, or troubleshooting.

Security checks

  • ✓README presentThe repository ships documentation.
  • !Scoped permissionsDoesn't declare a permission scope. Assume it can do anything its process can.

4 checks have not been run yet.

README

MCP Server for Light Cloud Platform - Technical Guide

Overview

This document covers the implementation, distribution, and integration of an MCP (Model Context Protocol) server for the Light Cloud Platform.

What is MCP?

MCP (Model Context Protocol) is a protocol that allows AI assistants like Claude to communicate with external tools and services. An MCP server exposes "tools" that Claude can invoke to perform actions.


Project Structure

mcp-server/
├── package.json          # Package config with npm publishing setup
├── tsconfig.json         # TypeScript configuration
├── src/
│   └── index.ts          # MCP server implementation
└── dist/
    └── index.js          # Compiled server (generated)

Implementation

Dependencies

Package Purpose
@modelcontextprotocol/sdk Official MCP SDK
zod Schema validation for tool parameters
typescript TypeScript compiler
tsx Development runner

Basic Server (src/index.ts)

#!/usr/bin/env node

import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
import { z } from "zod";

const server = new McpServer({
  name: "light-cloud",
  version: "1.0.0",
});

// Simple tool (no parameters)
server.tool("ping", "Health check - returns pong", {}, async () => {
  return {
    content: [{ type: "text", text: "pong" }],
  };
});

// Tool with parameters
server.tool(
  "echo",
  "Echo back the provided message",
  {
    message: z.string().describe("The message to echo back"),
  },
  async ({ message }) => {
    return {
      content: [{ type: "text", text: `Echo: ${message}` }],
    };
  }
);

async function main() {
  const transport = new StdioServerTransport();
  await server.connect(transport);
  console.error("Light Cloud MCP server running on stdio");
}

main().catch((error) => {
  console.error("Fatal error:", error);
  process.exit(1);
});

Distribution Methods

1. npm Package (Recommended)

Advantages:

  • Easy installation via npx
  • Version management
  • No manual setup for users

package.json for npm:

{
  "name": "light-cloud-mcp-server",
  "version": "1.0.0",
  "bin": {
    "light-cloud-mcp-server": "dist/index.js"
  },
  "files": ["dist"],
  "scripts": {
    "prepublishOnly": "npm run build"
  }
}

Publishing:

npm login
npm publish

User installation:

# Claude Code
claude mcp add light-cloud -- npx light-cloud-mcp-server

# Claude Desktop (claude_desktop_config.json)
{
  "mcpServers": {
    "light-cloud": {
      "command": "npx",
      "args": ["light-cloud-mcp-server"]
    }
  }
}

2. Remote HTTP Server

Advantages:

  • Zero setup for users
  • Centralized control
  • Access to backend resources

User installation:

claude mcp add --transport http light-cloud https://your-server.com/mcp

3. Git Repository

Advantages:

  • Full source access
  • Custom modifications

User installation:

git clone <repo-url>
cd mcp-server
npm install && npm run build
claude mcp add light-cloud -- node /path/to/dist/index.js

MCP Registry

Official Registry

Publishing to registry:

# Install CLI
brew install mcp-publisher

# Initialize
mcp-publisher init

# Create server.json
{
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-07-09/server.schema.json",
  "name": "io.github.USERNAME/light-cloud",
  "description": "MCP server for Light Cloud Platform",
  "version": "1.0.0",
  "packages": [{
    "registry": "npm",
    "name": "light-cloud-mcp-server"
  }]
}

# Authenticate & publish
mcp-publisher login github
mcp-publisher publish

Claude Code Registry

Claude Code uses Anthropic's own registry at https://api.anthropic.com/mcp-registry/ as a reference, but does not auto-install servers. Users must manually add servers.


Integrating with Light Cloud API

Architecture

User (Claude) → MCP Server → Light Cloud API
     ↑              ↓              ↓
     └──── response ←──── response ←┘

Example: API Integration

const LIGHT_CLOUD_API = "https://api.lightcloud.com";

server.tool(
  "list-instances",
  "List all compute instances",
  {},
  async () => {
    const response = await fetch(`${LIGHT_CLOUD_API}/instances`, {
      headers: {
        "Authorization": `Bearer ${process.env.LIGHT_CLOUD_API_KEY}`,
      },
    });

    const data = await response.json();

    return {
      content: [{ type: "text", text: JSON.stringify(data, null, 2) }],
    };
  }
);

server.tool(
  "create-instance",
  "Create a new compute instance",
  {
    name: z.string().describe("Instance name"),
    size: z.enum(["small", "medium", "large"]).describe("Instance size"),
  },
  async ({ name, size }) => {
    const response = await fetch(`${LIGHT_CLOUD_API}/instances`, {
      method: "POST",
      headers: {
        "Authorization": `Bearer ${process.env.LIGHT_CLOUD_API_KEY}`,
        "Content-Type": "application/json",
      },
      body: JSON.stringify({ name, size }),
    });

    const data = await response.json();

    return {
      content: [{ type: "text", text: `Created instance: ${data.id}` }],
    };
  }
);

Passing API Keys

Claude Code:

claude mcp add light-cloud -e LIGHT_CLOUD_API_KEY=sk-xxx -- npx light-cloud-mcp-server

Claude Desktop:

{
  "mcpServers": {
    "light-cloud": {
      "command": "npx",
      "args": ["light-cloud-mcp-server"],
      "env": {
        "LIGHT_CLOUD_API_KEY": "sk-xxx"
      }
    }
  }
}

Client Configuration Paths

Client Config File Location
Claude Desktop (macOS) ~/Library/Application Support/Claude/claude_desktop_config.json
Claude Desktop (Windows) %APPDATA%\Claude\claude_desktop_config.json
Claude Code (local) .mcp.json (project directory)
Claude Code (user) ~/.claude.json

Testing

Manual Test via JSON-RPC

node -e "
const { spawn } = require('child_process');
const server = spawn('node', ['dist/index.js']);
server.stdout.on('data', d => console.log('OUT:', d.toString().trim()));
server.stderr.on('data', d => console.log('ERR:', d.toString().trim()));
const msgs = [
  {jsonrpc:'2.0',id:1,method:'initialize',params:{protocolVersion:'2024-11-05',capabilities:{},clientInfo:{name:'test',version:'1.0.0'}}},
  {jsonrpc:'2.0',method:'notifications/initialized'},
  {jsonrpc:'2.0',id:2,method:'tools/call',params:{name:'ping',arguments:{}}}
];
let i = 0;
const send = () => {
  if (i < msgs.length) { server.stdin.write(JSON.stringify(msgs[i++]) + '\n'); setTimeout(send, 100); }
  else { setTimeout(() => server.kill(), 200); }
};
send();
"

Expected Output

ERR: Light Cloud MCP server running on stdio
OUT: {"result":{"protocolVersion":"2024-11-05","capabilities":{"tools":{"listChanged":true}},"serverInfo":{"name":"light-cloud","version":"1.0.0"}},"jsonrpc":"2.0","id":1}
OUT: {"result":{"content":[{"type":"text","text":"pong"}]},"jsonrpc":"2.0","id":2}

How Users Interact with Tools

After installing the MCP server, users don't need to know tool names or syntax. They just chat naturally with Claude.

Example Conversation

User: "ping the light cloud server"

Claude: I'll check the server.
        [Calls ping tool]
        The server responded with "pong" - it's healthy.

User: "show me my cloud instances"

Claude: [Calls list-instances tool]
        You have 3 instances:
        - web-server (running, medium)
        - database (running, large)
        - dev-box (stopped, small)

Natural Language Understanding

Claude understands intent, not keywords. Users can ask the same thing in different ways:

Same tool, different phrasings:

ping tool:

  • "ping the server"
  • "is the server up?"
  • "check if light cloud is working"
  • "health check"
  • "is everything running?"

echo tool:

  • "echo hello"
  • "repeat back: hello"
  • "say hello to me"
  • "mirror this message: hello"

How Claude decides which tool to use:

  1. Reads the tool's name and description
  2. Matches user intent to the best fitting tool
  3. Extracts parameters from the conversation
server.tool(
  "ping",                          // ← tool name
  "Health check - returns pong",   // ← Claude reads this to understand purpose
  {},
  async () => { ... }
);

Writing better tool descriptions

Better descriptions = smarter matching:

// Vague - Claude might miss it
server.tool("list", "List things", ...)

// Clear - Claude understands when to use it
server.tool(
  "list-instances",
  "List all compute instances/VMs in the Light Cloud account, showing their status, size, and configuration",
  ...
)

Where Does Data Come From?

The npm package is just the delivery method (how users install it). The answers come from wherever your tools fetch data.

Data Flow

User question
     ↓
Claude (understands intent)
     ↓
MCP Server (your npm package)
     ↓
Your tool code decides where to get data:
     ├── Static response (hardcoded)
     ├── Light Cloud API (HTTP call)
     ├── Database query
     └── Local file system

Data Source Examples

Static (no external call):

server.tool("ping", "Health check", {}, async () => {
  return { content: [{ type: "text", text: "pong" }] };  // ← hardcoded
});

From Light Cloud API:

server.tool("list-instances", "List instances", {}, async () => {
  const response = await fetch("https://api.lightcloud.com/instances", {
    headers: { "Authorization": `Bearer ${process.env.API_KEY}` }
  });
  const data = await response.json();  // ← from Light Cloud API
  return { content: [{ type: "text", text: JSON.stringify(data) }] };
});

From database:

server.tool("get-user", "Get user info", { id: z.string() }, async ({ id }) => {
  const user = await db.query("SELECT * FROM users WHERE id = ?", [id]);  // ← from DB
  return { content: [{ type: "text", text: JSON.stringify(user) }] };
});

Summary: Data Sources by Question

Question Data Source
"Is server healthy?" Static "pong" (local)
"List my instances" Light Cloud API
"Create a VM" Light Cloud API
"Show billing" Light Cloud API

The MCP server is the bridge between Claude and external services. The npm package just delivers that bridge to users.


npm Scripts

Script Command Description
build tsc Compile TypeScript
start node dist/index.js Run compiled server
dev tsx src/index.ts Run in development mode
prepublishOnly npm run build Auto-build before publish

References

README copy captured when this server was indexed; it may lag the repository. The original is authoritative.

Questions

About server

How do I install server?

Run npx @light-cloud/mcp-server, then add the server to your MCP client's configuration.

Is server safe to use with an AI agent?

Its trust score is 39 out of 100 (low). It passes 1 of the 2 static security checks run so far; the failures are listed above. It has no ConduID identity yet, so agent calls to it are not receipted.

Is server still maintained?

Conduid hasn't recorded a commit date for this repository yet. Check the repository directly for recent activity.