Skip to main content
Glama

Ligolo-ng MCP Server

A Model Context Protocol (MCP) server for managing Ligolo-ng - a lightweight and fast tunneling tool for establishing reverse TCP/TLS tunnels during penetration testing and red team engagements.

Overview

This MCP server enables AI assistants to control Ligolo-ng operations on a remote Kali Linux machine via SSH. It provides tools for managing the proxy server, agents, tunnels, routes, and listeners - all the core functionality needed for network pivoting during security assessments.

Related MCP server: CrackMapExec MCP Server

Features

  • Proxy Management: Start, stop, and monitor the Ligolo-ng proxy server

  • Agent Control: List connected agents and manage sessions

  • Network Interface: Create and manage TUN interfaces for tunneling

  • Tunnel Operations: Start/stop tunnels through agent sessions

  • Route Management: Add and remove routes to target networks

  • Listener Configuration: Set up port forwarding through agents

  • Agent Command Generation: Generate agent connection commands for targets

Prerequisites

  • Node.js 18+

  • SSH access to a Kali Linux machine with Ligolo-ng installed

  • SSH key-based authentication configured (passwordless SSH)

Installation

# Clone the repository
git clone https://github.com/schwarztim/sec-ligolo-ng-mcp.git
cd sec-ligolo-ng-mcp

# Install dependencies
npm install

# Build the project
npm run build

Configuration

Environment Variables

Variable

Default

Description

KALI_HOST

kali

SSH hostname or alias for your Kali machine

LIGOLO_PROXY_PORT

11601

Port for agent connections

LIGOLO_API_PORT

8080

Port for the Ligolo-ng web API

LIGOLO_INTERFACE

ligolo

Default TUN interface name

SSH Configuration

Ensure your SSH config (~/.ssh/config) has an entry for your Kali machine:

Host kali
    HostName 192.168.1.100
    User root
    IdentityFile ~/.ssh/id_rsa

Claude Desktop Integration

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "ligolo-ng": {
      "command": "node",
      "args": ["/path/to/sec-ligolo-ng-mcp/dist/index.js"],
      "env": {
        "KALI_HOST": "kali",
        "LIGOLO_PROXY_PORT": "11601"
      }
    }
  }
}

Available Tools

Proxy Management

Tool

Description

ligolo_proxy_start

Start the Ligolo-ng proxy server with optional self-signed certs and API

ligolo_proxy_stop

Stop the running proxy server

ligolo_proxy_status

Check proxy status and view recent logs

Session Management

Tool

Description

ligolo_agents_list

List all connected agents

ligolo_session_select

Select an agent session to work with

ligolo_agent_info

Get network information from the selected agent

Network Configuration

Tool

Description

ligolo_interface_create

Create a TUN interface for tunneling

ligolo_interface_list

List all TUN interfaces

ligolo_tunnel_start

Start a tunnel through the selected session

ligolo_tunnel_stop

Stop the active tunnel

Routing

Tool

Description

ligolo_route_add

Add a route to access target networks

ligolo_route_delete

Remove a route

ligolo_route_list

List all Ligolo routes

Port Forwarding

Tool

Description

ligolo_listener_add

Add a listener for reverse connections

ligolo_listener_list

List active listeners

ligolo_listener_delete

Remove a listener

Utilities

Tool

Description

ligolo_agent_command

Generate agent command for target deployment

ligolo_certificate_fingerprint

Get certificate fingerprint for secure connections

ligolo_send_command

Send raw commands to the proxy console

Usage Example

Basic Pivoting Workflow

  1. Start the proxy on Kali:

    Use ligolo_proxy_start with selfcert enabled
  2. Generate agent command:

    Use ligolo_agent_command with your Kali IP
  3. Create TUN interface:

    Use ligolo_interface_create
  4. After agent connects, add routes:

    Use ligolo_route_add with network 10.10.10.0/24
  5. Start the tunnel:

    Use ligolo_tunnel_start

Now you can access the 10.10.10.0/24 network through your Kali machine.

Setting Up Reverse Shell Callback

Use listeners to receive reverse shells through the pivot:

Use ligolo_listener_add with:
  localAddress: 0.0.0.0:4444
  remoteAddress: 127.0.0.1:4444

This forwards connections from port 4444 on the agent back to your Kali's port 4444.

Security Considerations

  • This tool is designed for authorized security testing only

  • Always use certificate verification in production environments

  • The proxy runs with elevated privileges to manage network interfaces

  • SSH keys should be properly secured and not shared

Development

# Watch mode for development
npm run dev

# Build
npm run build

# Start the server
npm start

License

MIT License - See LICENSE for details.

Acknowledgments

Disclaimer

This tool is intended for authorized security testing and educational purposes only. Users are responsible for ensuring they have proper authorization before using this tool against any systems. The authors are not responsible for any misuse or damage caused by this tool.

Available Tools

19 tools
ligolo_agent_commandC

Generate the agent command to run on target machines

Inputs: proxyIp (required), port, ignoreCert, fingerprint, +2 more.

ligolo_agent_infoA

Get network information from the selected agent (ifconfig)

Inputs: no named parameters.

ligolo_agents_listA

List all connected agents to the ligolo-ng proxy

Inputs: no named parameters.

ligolo_certificate_fingerprintA

Get the certificate fingerprint for agent verification

Inputs: no named parameters.

ligolo_interface_createB

Create a TUN interface for ligolo-ng tunneling

Inputs: name.

ligolo_interface_listA

List all TUN interfaces on Kali

Inputs: no named parameters.

ligolo_listener_addA

Add a listener on the agent to forward ports back to the attacker

Inputs: localAddress (required), remoteAddress (required).

ligolo_listener_deleteC

Delete a listener

Inputs: listenerId (required).

ligolo_listener_listA

List all active listeners

Inputs: no named parameters.

ligolo_proxy_startB

Start the ligolo-ng proxy server on Kali. The proxy accepts agent connections and manages tunnels.

Inputs: selfcert, port, enableApi, apiPort, +1 more.

ligolo_proxy_statusA

Check the status of the ligolo-ng proxy server

Inputs: no named parameters.

ligolo_proxy_stopA

Stop the running ligolo-ng proxy server on Kali

Inputs: no named parameters.

ligolo_route_addB

Add a route to access the agent's network through the tunnel

Inputs: network (required), interface.

ligolo_route_deleteB

Delete a route from the routing table

Inputs: network (required).

ligolo_route_listA

List all routes configured for ligolo interfaces

Inputs: no named parameters.

ligolo_send_commandB

Send a raw command to the ligolo-ng proxy console (advanced)

Inputs: command (required).

ligolo_session_selectB

Select an agent session to work with

Inputs: sessionId (required).

ligolo_tunnel_startB

Start a tunnel through a selected agent session

Inputs: tun.

ligolo_tunnel_stopA

Stop the active tunnel

Inputs: no named parameters.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    B3.4/5.0

    Scored across 19 tools

    Disambiguation4/5

    Tools cover distinct functional areas: agent management, proxy control, routing, tunneling, interface, and listeners. While there is slight overlap between session selection and agent info, descriptions likely clarify. Overall, each tool has a clear purpose.

    Naming Consistency3/5

    All tools share the 'ligolo_' prefix and snake_case, but the pattern varies: most are noun_verb (e.g., ligolo_agents_list, ligolo_route_add), while some are noun_noun (e.g., ligolo_certificate_fingerprint) and one is verb_noun (ligolo_send_command). This inconsistency could confuse an agent.

    Tool Count4/5

    19 tools cover the primary operations of ligolo-ng (agent, proxy, routing, tunneling, listeners, interface). This is a reasonable count; not too sparse or overwhelming for the intended domain.

    Completeness4/5

    The set includes CRUD-like operations for key elements (routes, listeners, interfaces) and essential proxy/agent controls. Minor gaps like agent disconnection or route modification are addressable via the send_command tool, so coverage is solid.

    Maintenance

    ActivityInactive
    ResponsivenessOutdated data

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      A
      quality
      C
      maintenance
      MCP server for managing multiple SSH servers via AI assistants, offering tools for remote command execution, file operations, and system monitoring.
      11
      29 PyPI
      2
      MIT
    • A
      license
      A
      quality
      F
      maintenance
      An MCP server that provides AI assistants with access to CrackMapExec/NetExec network penetration testing capabilities via SSH to a Kali Linux host, supporting multiple protocols for enumeration, credential dumping, and command execution.
      11
      MIT
    • A
      license
      A
      quality
      C
      maintenance
      An MCP server that gives AI agents SSH access to remote machines through your local OpenSSH client, enabling remote command execution, file transfer, persistent shell sessions, and port forwarding.
      17
      319 PyPI
      38
      MIT