Docs

Every Lidless tool installs, connects, and guards writes the same way. This page covers the shared parts. Each tool's own page and README list its specific commands and variables.

How the tools are built

The catalog has three kinds of tool. The kind decides how you install and run it.

mcp server

For AI clients

Speaks the Model Context Protocol over stdio. Your client starts it as a child process, so it opens no network port.

cli

For shells and cron

Several servers ship a companion CLI, such as proxmoxctl or jellyctrl, that reads the same environment variables.

app

Self-hosted

Dashboards and workbenches like watchtower run from source on your own machine. Their README covers setup.

Install

Published tools are on npm. Pick whichever of these fits how you work.

run on demand
npx -y <tool>

Nothing to install globally. Your client runs this command each time it starts the server.

install globally
npm i -g <tool>

Faster startup, and the command is on your PATH for the CLI too.

from source
git clone https://github.com/lidless-labs/<tool>.git
cd <tool> && npm install && npm run build

For apps, and for anything not on npm yet. Check the README for the exact build steps.

The Node tools need Node 20 or newer. Python tools name their version on the tool page.

Connect an AI client

Any MCP client works. Swap <tool> and the variables for the ones listed on the tool's page.

claude mcp add <name> \
  -e SYSTEM_URL=https://system.example.net \
  -e SYSTEM_API_KEY=... \
  -- npx -y <tool>

run once in your shell; add --scope user to use it in every project

Restart the client after editing its config. Most clients only read the server list at startup.

Credentials

Tools read connection details from environment variables, named after the system they talk to.

<SYSTEM>_URL        where the system lives, e.g. https://siem.lan:55000
<SYSTEM>_API_KEY    or a token / username + password, depending on the system

Start with a read-only account

Create a dedicated user or API token for the tool with read-only permissions. Upgrade its role later, once you have seen how your agent uses it. Most tools are useful without any write access.

Keep secrets out of shared configs

Client config files often end up in dotfile repos. Where your client supports it, reference variables from your shell or a secret manager rather than pasting keys inline. Several tools also redact secrets from their own logs and error messages.

Write gates

An agent can read freely, but it has to be told explicitly before it changes anything. Tools that can write use up to three tiers.

read

Open by default

Queries, searches, and lookups work as soon as the server is connected.

write

confirm: true

State-changing calls refuse to run unless the call itself passes the confirm flag.

destructive

Env flag + confirm

Deletes and irreversible actions stay off until you set the tool's opt-in variable, such as MISP_ALLOW_DESTRUCTIVE or PROXMOX_ENABLE_DESTRUCTIVE.

A refused call returns an error and sends nothing to your system. If you see one, the gate is doing its job. The Safety section on each tool page lists its exact flags.

Self-signed certificates

Homelab and SOC systems often run with self-signed TLS.

Tools that talk HTTPS have their own verify flag, for example MISP_VERIFY_SSL=false or LIBRENMS_TLS_INSECURE=1. The relaxation applies only to that tool's requests to that system, never the whole process. A better fix is to add your internal CA to the trust store and leave verification on.

Scripts and cron

The companion CLIs cover the jobs you want on a schedule rather than in a chat.

They read the same environment variables as the MCP server, so one set of credentials serves both. They default to reads, which makes them safe to run from cron or CI. Each tool's README lists its commands.

Troubleshooting

The client doesn't show the tool

Restart the client fully. Then check that the command in its config runs in a terminal. Desktop apps often start with a shorter PATH than your shell, so use the full path to npx or the installed binary if it is not found.

401 or 403 from the system

The credentials are wrong, expired, or the account lacks the role for that call. Test the same URL and key with curl, and check the account's permissions on the system itself.

Certificate or TLS errors

The system uses a certificate your machine does not trust. See self-signed certificates.

A call was "refused"

It hit a write gate. Pass confirm: true if you meant it, or set the tool's opt-in variable for destructive actions. See write gates.

It worked yesterday and now fails at startup

Check your Node version against the tool's requirement, then check the changelog for the release you picked up.

Updates and security

Releases are listed in the changelog.

npm i -g <tool>@latest      # global install
npx -y <tool>@latest        # on-demand; npx otherwise reuses its cache

Found a vulnerability?

Report it privately through the repository's Security tab on GitHub rather than a public issue. Bugs and feature requests go in the repo's issues.