Plugin

n8n Plugin

Automate your Linux server management with n8n workflows. The ManageLM community node provides full access to the portal API — manage agents, run tasks, monitor security, and trigger workflows on infrastructure events.

Table of Contents

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 to build powerful automation: Slack alerts on task failure, PagerDuty incidents when agents go offline, Jira tickets from security audit findings, and more.

Features

12 Resource Types

Agents, tasks, skills, groups, security, inventory, audit logs, notifications, reports, API keys, dependencies, and account.

Event Triggers

6 webhook events with automatic registration, HMAC signature verification, and cleanup on deactivation.

Task Execution

Submit tasks with natural language instructions and optionally wait for results — same as Claude or the portal UI.

Security & Inventory

Run security audits, search findings, trigger remediation, scan inventory, and search packages across your fleet.

Full CRUD

Create, read, update, and delete agents, skills, groups, API keys, and more — complete portal management from n8n.

Zero Configuration

Webhooks are automatically created when you activate a workflow and removed when you deactivate. No manual setup.

Nodes

n8n Workflow: [ ManageLM Trigger ] ──> [ Filter ] ──> [ ManageLM: Get Agent ] ──> [ Slack ] (webhook) (action node) [ Schedule ] ──> [ ManageLM: Run Security Audit ] ──> [ IF has findings ] ──> [ 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

Both nodes use 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 > API Keys in the portal (mlm_ak_...)
  1. In the ManageLM portal, go to Settings > API Keys

  2. Create a new key — select permissions based on what your workflows need (agents, skills, groups, logs, reports)

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

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

Important: API key permissions control what the node can access. An admin key sees all agents; a member key only sees assigned agents. Use the narrowest scope that fits your workflows.

Trigger Node

The ManageLM Trigger starts a workflow when an infrastructure event occurs. It automatically manages webhooks in the portal:

Configuration

The only setting is Events — select which events should trigger the workflow:

EventFires when
agent.enrolledA new server requests enrollment
agent.approvedAn agent is approved by an admin
agent.onlineAn agent connects to the portal
agent.offlineAn agent disconnects from the portal
task.completedA task finishes successfully
task.failedA task fails with an error

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 provides full access to the portal API. Select a Resource and an Operation, fill in the parameters, and execute.

Resources & Operations

Agent

OperationDescription
Get AllList all agents with status, health metrics, and metadata
GetGet a single agent by ID
UpdateUpdate display name, tags, LLM config, schedules, groups
ApproveApprove a pending agent
DeleteRemove an agent from the portal
Get MetricsGet health metrics history (CPU, memory, disk, load)
Get SkillsList skills assigned to an agent
Assign SkillAssign a skill to an agent
Remove SkillRemove a skill from an agent
Get StatsGet fleet-wide agent statistics

Task

OperationDescription
SubmitSubmit a task with natural language instruction. Optionally wait for result.
GetGet task status and result by ID
Get AllList tasks with optional filters (agent, status, limit)

Skill

OperationDescription
Get AllList all skills in your account
GetGet a single skill by ID
CreateCreate a custom skill with system prompt, commands, and operations
UpdateUpdate skill definition, name, or description
DeleteDelete a custom skill
CatalogBrowse the built-in skill catalog
Import from CatalogImport skills from the catalog into your account

Group

OperationDescription
Get AllList all server groups
CreateCreate a new group
UpdateRename a group
DeleteDelete a group
Get AgentsList agents in a group
Set AgentsReplace all agents in a group
Add AgentsAdd agents to a group

Security

OperationDescription
Run AuditTrigger a security audit on an agent
Get ReportGet the latest security audit report for an agent
SearchSearch security findings across all agents

Inventory

OperationDescription
Run ScanTrigger an inventory scan on an agent
Get ReportGet the latest inventory report for an agent
SearchSearch packages, services, or containers across all agents

Other Resources

ResourceOperations
AccountGet account info, usage, and plan details
Audit LogQuery the audit trail with filters
NotificationList, read, and clear in-app notifications
ReportExport PDF or CSV reports
API KeyList, create, and revoke API keys
DependencySearch and analyze package dependencies across agents

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

Run a security audit on all agents every day and email findings:

workflow
Schedule Trigger (daily at 06:00)
  → ManageLM: Agent > Get All
  → Loop Over Items
    → ManageLM: Security > Run Audit (agent_id)
    → Wait 60s
    → ManageLM: Security > Get Report (agent_id)
  → IF: findings > 0
    → Email: Send summary

Auto-approve agents from trusted network

Automatically approve agents that enroll from a known IP range:

workflow
ManageLM Trigger (agent.enrolled)
  → ManageLM: Agent > Get (agent_id)
  → IF: ip_address starts with "10.0.1."
    → ManageLM: Agent > Approve (agent_id)
    → Slack: "Auto-approved {{ $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
  → Slack: Reply with task summary

Webhook Events

The trigger node receives these events from the ManageLM portal. All payloads include event, timestamp, and agent_id at minimum:

Agent events

Include agent_id, hostname, display_name.

Task events

Include task_id, agent_id, hostname, display_name, skill_slug, status, summary, mutating, error_message.

Tip: Use the n8n IF node to filter by event type, 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

401 Unauthorized errors

The API key is invalid or expired. Go to Settings > API Keys in the portal, verify the key is active, and update the n8n credential.

403 Access denied to agent

The API key belongs to a member user who doesn't have access to that agent. Either use an admin key or assign the agent to the user.

Task submit returns 503

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

Webhook signature mismatch

This can happen if the webhook was manually modified in the portal. Deactivate and reactivate the workflow — this recreates the webhook with a fresh secret.