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.
For AI clients
Speaks the Model Context Protocol over stdio. Your client starts it as a child process, so it opens no network port.
For shells and cron
Several servers ship a companion CLI, such as proxmoxctl or jellyctrl, that reads the same environment variables.
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.
npx -y <tool>
Nothing to install globally. Your client runs this command each time it starts the server.
npm i -g <tool>
Faster startup, and the command is on your PATH for the CLI too.
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
{
"mcpServers": {
"<name>": {
"command": "npx",
"args": ["-y", "<tool>"],
"env": {
"SYSTEM_URL": "https://system.example.net",
"SYSTEM_API_KEY": "..."
}
}
}
}claude_desktop_config.json (Settings > Developer > Edit Config)
[mcp_servers.<name>] command = "npx" args = ["-y", "<tool>"] [mcp_servers.<name>.env] SYSTEM_URL = "https://system.example.net" SYSTEM_API_KEY = "..."
~/.codex/config.toml
{
"mcpServers": {
"<name>": {
"command": "npx",
"args": ["-y", "<tool>"],
"env": {
"SYSTEM_URL": "https://system.example.net",
"SYSTEM_API_KEY": "..."
}
}
}
}~/.cursor/mcp.json, or .cursor/mcp.json inside a project
command: npx args: -y <tool> env: SYSTEM_URL, SYSTEM_API_KEY, ...
any MCP client: a stdio server with this command, args, and env
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.
Open by default
Queries, searches, and lookups work as soon as the server is connected.
confirm: true
State-changing calls refuse to run unless the call itself passes the confirm flag.
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.