Plugin

n8n Plugin

Automate your server management with n8n workflows. The ManageLM community node runs tasks and scans on your Linux and Windows servers, searches your whole fleet, acts on hosting resources, and starts workflows on infrastructure events.

Overview

The ManageLM n8n community node lets you build automation workflows around your server infrastructure. It includes two nodes:

Combine them with any of n8n's 400+ integrations: Slack alerts when a monitor goes down, PagerDuty incidents when agents go offline, Jira tickets when a backup or a credential rotation fails, and more.

Features

Task Execution

Submit tasks with natural language instructions, answer their questions and follow up. Wait for the result up to a limit you choose.

Scans

Start security audits, inventory, access, certificate and activity scans, and read their latest results.

Fleet Search

14 searches: agents, inventory, security issues, activity, SSH keys, sudo rules, certificates, monitors, backups, credentials, keystore and cloud resources.

Hosting Actions

Start, stop, reboot and snapshot VMs through your hosting connectors, within the actions each connector allows.

Event Triggers

More than 30 events across every ManageLM category, with HMAC signature verification on every delivery.

Scoped Keys

An API key acts as the person who created it, limited to the authorizations they chose. Any user can create one.

Nodes

n8n Workflow: [ ManageLM Trigger ] ──> [ Filter ] ──> [ ManageLM: Get Agent ] ──> [ Slack ] (webhook) (action node) [ Schedule ] ──> [ ManageLM: Scan Start ] ──> [ Wait ] ──> [ ManageLM: Scan Get Result ] ──> [ Email ]

Installation

From the n8n community nodes panel

  1. Open your n8n instance

  2. Go to Settings > Community Nodes

  3. Click Install a community node

  4. Enter n8n-nodes-managelm and click Install

From the command line

terminal
# Inside your n8n installation directory
npm install n8n-nodes-managelm

Docker

Dockerfile
FROM n8nio/n8n:latest
RUN npm install n8n-nodes-managelm

Tip: After installation, restart n8n. The ManageLM node and trigger will appear in the node panel under the search.

Credentials

The action node uses the ManageLM API credential, which requires two fields:

FieldDescription
Portal URLBase URL of your ManageLM portal (e.g. https://app.managelm.com). Self-hosted users: use your own URL.
API KeyAPI key from Settings > MCP & API in the portal (mlm_ak_...)
  1. In the ManageLM portal, go to Settings > MCP & API > API Keys

  2. Create a key and tick the authorizations your workflows need: for example Reports to start scans, Hosting for VM actions, Credentials or Keystore to search those. Only permissions you hold yourself are offered.

  3. In n8n, go to Credentials > New > ManageLM API

  4. Paste the portal URL and API key, then click Test and save

Important: a key acts as you. It sees the servers you can see and does what you can do, limited to the authorizations you gave it. Keys cover the same features as MCP: portal settings and management (users, API keys, webhooks, creating or deleting agents, skills and groups) stay in the portal.

Trigger Node

The ManageLM Trigger starts a workflow when a ManageLM event occurs. The webhook is created once by an admin in the portal, and every delivery is verified with its HMAC secret.

Configuration

  1. Add a ManageLM Trigger node to your workflow and copy its Production URL

  2. In the portal, go to Settings > MCP & API > Webhooks (admins), paste the URL, choose the event categories and set an HMAC secret

  3. In n8n, create a ManageLM Webhook credential with the same secret and select it in the trigger node

  4. Optionally select Events to react to only some of the events the webhook receives (leave empty for all)

  5. Activate the workflow

Output data

The trigger outputs a JSON object with the event data. All fields from the webhook payload are flattened:

example output: task.completed
{
  "event": "task.completed",
  "timestamp": "2026-03-21T14:30:00.000Z",
  "task_id": "a1b2c3d4-...",
  "agent_id": "e5f6g7h8-...",
  "hostname": "web-prod-01",
  "display_name": "web-prod-01",
  "skill_slug": "packages",
  "status": "completed",
  "summary": "Updated 12 packages successfully",
  "mutating": true
}

Action Node

The ManageLM action node covers the features ManageLM exposes to AI clients through MCP. Select a Resource and an Operation, fill in the parameters, and execute.

Resources & Operations

Task

OperationDescription
SubmitRun a skill on a server with a natural language instruction. Optionally wait for the result.
AnswerAnswer the question of a task waiting for input
Follow UpContinue the conversation of a completed task
GetGet task status and result by ID
Get ManyList tasks with filters (agent, status, time range, limit)
Get ChangesView the files a task changed, with an optional full diff
RevertRevert the file changes of a task

Waiting for tasks: Submit, Answer and Follow Up wait up to Max Wait seconds (default 120). A task still running then returns { task_id, still_running: true }: loop on Task > Get until its status is completed, failed, timeout or needs_input.

Lists: searches and Get Many return one item holding the result arrays. Add a Split Out node to handle the rows one by one.

Scan

OperationDescription
StartStart a scan on an agent: Security Audit, Inventory, Access (SSH keys and sudo), Certificates, or Activity (last 24 hours). Requires the Reports authorization.
Get ResultGet the latest result of that scan for an agent

Search

OperationDescription
AgentsAgents by health, OS, status, group, site or text
InventoryPackages, services and containers across agents
SecurityAudit findings, pentest findings and threat alerts, with severity, source and time range
ActivityLogins, failed logins, sudo commands and file changes, with a time range
SSH Keys / Sudo RulesAccess across the fleet, mapped to your team
Certificates (Discovered)Certificates found on your servers: expired, expiring, weak, self-signed, unmanaged
Certificates (Managed)Certificates ManageLM issues and renews
Monitors / BackupsMonitors with their current status, backups with their last run
Credentials / KeystoreRotating credentials and keystore keys, metadata only. Require their authorization.
Hosting Connectors / Cloud ResourcesConnected providers, and the VMs, volumes, networks and security groups they discover

Other Resources

ResourceOperations
HostingGet Actions (what a connector allows), Run Action (start, stop, reboot, snapshot a VM; requires the Hosting authorization). Run Action acts immediately, with no confirmation step, even for a shutdown or a reboot.
AgentGet Many, Get, Get Skills
SkillGet Many, Get Catalog
AccountGet (account and team), Get Groups, Get Sites
EmailSend yourself an email

Example Workflows

Alert on agent offline

Send a Slack message when any agent goes offline:

workflow
ManageLM Trigger (agent.offline)
  → Slack: Send Message
      Channel: #ops-alerts
      Text: "Server {{ $json.hostname }} went offline"

Daily security audit

Audit every server each morning and email the high-severity findings:

workflow
Schedule Trigger (daily at 06:00)
  → ManageLM: Agent > Get Many
  → Loop Over Items
    → ManageLM: Scan > Start (Security Audit, agent_id)
  → Wait 5 minutes
  → ManageLM: Search > Security (source: audits, severity: high)
  → IF: findings > 0
    → Email: Send summary

Ticket on failed backups

Open a Jira issue when a backup or a credential rotation fails:

workflow
ManageLM Trigger (backup.failed, credential.rotation_failed)
  → Jira: Create Issue
      Summary: "{{ $json.event }} on {{ $json.hostname }}"

Run task and post result

Submit a task from a Slack slash command and return the result:

workflow
Webhook (Slack slash command)
  → ManageLM: Task > Submit
      agent_id, skill_slug: "packages"
      instruction: "List outdated packages"
      wait: true, max wait: 60
  → IF: still_running
    → Wait 30s → ManageLM: Task > Get
  → Slack: Reply with task summary

Webhook Events

A ManageLM webhook subscribes to event categories and receives every event in them. All payloads include event and timestamp; the trigger node flattens the event data next to them.

CategoryEvents
Agentagent.enrolled, agent.approved, agent.online, agent.offline
Tasktask.completed, task.failed, task.needs_input
Reportreport.completed, report.failed, report.stalled
Monitormonitor.down, monitor.up, monitor.stalled, monitor.created, monitor.deleted
Backupbackup.completed, backup.failed
Certificatecert.issued, cert.renewed, cert.renewal_failed, cert.revoked, cert.reactivated, cert.deleted
Credentialcredential.rotated, credential.rotation_failed
Keystorekeystore.access_denied, keystore.key_deleted
Pentestpentest.completed, pentest.failed
Console sessionsconsole.opened, console.closed
Desktop sessionsdesktop.opened, desktop.closed
File sessionsfiles.opened

Tip: Use the trigger's Events option to keep only some events of a category, and the n8n IF node to filter by hostname or skill: for example, only alert on task.failed events from production servers.

Security

Troubleshooting

Node not appearing after installation

Restart n8n completely. Community nodes are loaded at startup. If using Docker, rebuild the container.

Trigger not firing

Webhook signature mismatch (403)

The secret in the ManageLM Webhook credential differs from the one on the portal webhook, or the webhook has no secret. Set the same secret on both sides. A delivery is also refused when the n8n server's clock is more than 5 minutes off: keep it synchronized (NTP).

401 Unauthorized errors

The API key is invalid, expired or disabled, or its owner was disabled. Check it in Settings > MCP & API and update the n8n credential.

403 Forbidden

The operation needs an authorization the key does not carry (for example Reports to start a scan), the key's owner cannot access that agent, or the call comes from an IP outside the owner's IP whitelist. Portal settings and management are never available to keys.

Task submit returns 503

The target agent is offline. Use the Agent > Get operation to check the agent's status before submitting tasks.