Command Palette

Search for a command to run...

UnylyUnyly
Browse all

Lightwave

FreeNot checked

Enables AI assistants to discover, connect to, and control LightWave3D Modeler and Layout programmatically via the Command Port.

GitHubEmbed

About

Enables AI assistants to discover, connect to, and control LightWave3D Modeler and Layout programmatically via the Command Port.

README

A Model Context Protocol (MCP) server that provides access to LightWave3D's Command Port functionality. This enables AI assistants like Cursor to discover, connect to, and control LightWave Modeler and Layout programmatically.

What is an MCP?

If MCP is a new term for you: An MCP server allows just about any program or scripted tool to be wrapped in a way that you can use conversational English to automate just about anything. It is a powerful option to help tame complex workflow tasks, in a "low-code" fashion, using simple prompts.

Screenshots

Here are a few views of "lightwave-mcp" in action using the Cursor editor. Prompts are used to drive an active LightWave3D session via a remote control interface called a LightWave command port.

lightwave-mcp screenshot Statistics

lightwave-mcp screenshot Statistics

Features

  • Automatic Discovery: Find running LightWave instances on your network using UDP broadcast
  • Dual Interface Support: Connect to both LightWave Layout and Modeler
  • Command Introspection: Pre-built cache of 857 Layout commands and 63 Modeler commands
  • Dynamic Updates: Refresh command cache when LightWave updates with new API features
  • Connection Management: Track and manage multiple active connections
  • Python 3 Compatible: Includes forked lwcommandport library updated for Python 3.11+

Installation

Prerequisites

  • Python 3.7+ (tested with Python 3.11+)
  • LightWave 3D 2025.0.3+ with the Command Port enabled

Quick Start

  1. Download the repository using "git clone" or the GitHub Repo "Code" button:
  • Clone this repository:
git clone https://github.com/Kartaverse/lightwave-mcp.git
cd lightwave-mcp
  • Alternatively, you can click on the lightwave-mcp GitHub repo's green "Code" button and select the "Download ZIP" button. You will need to manually expand the "lightwave-mcp-master.zip" archive. Rename the folder from "lightwave-mcp-master" to "lightwave-mcp".

GitHub Download Code Button

  1. Configure the mcp.json setting in your preferred MCP client (e.g., Cursor). In the "Cursor Settings > Tools and MCPs > Install MCP Servers" section, click on the "New MCP Server" button.

This will open up the .cursor/mcp.json file for editing in a new Cursor tab. Add the following text, while making sure to preserve any pre-existing MCP entries and the JSON indendation levels for those pre-existing items.

{
  "mcpServers": {
    "lightwave-mcp": {
      "command": "python3",
      "args": [
        "/path/to/lightwave-mcp/src/lightwave_mcp/server.py"
      ],
      "env": {
        "PYTHONPATH": "/path/to/lightwave-mcp/src"
      }
    }
  }
}

You will need to update the absolute filepaths in the mcp.json file to point at the location where the lightwave-mcp files were downloaded. If you are on Windows you will likely have to use double slashes "\\" for each of the folder path separators in the mcp.json filepaths to correctly handle string escaping in a JSON document.

If your Python v3.x executable is not named "python3" when you run python from a CLI session, you can change the mcp.json based lightwave-mcp "command" entry to reference the executable named "python".

When this updated content is added to your .cursor/mcp.json file, it should look like this in the Cursor GUI:

Cursor MCP JSON

The "Cursor Settings > Tools & MCPs > Installed MCP Servers" section should list a "lightwave-mcp" item. If you click on the title of the "lightwave-mcp" item, the individual tools are shown.

Cursor MCP JSON

  1. Copy the lightwave-mcp sample rules content from the provided RULES.md file into your "Cursor Settings > Rules, Skills, Subagents > Rules" section. Press the Save button to retain the new rules.

Cursor Rules

Available Tools

Tool Description
discover_lightwave Find running LightWave instances on the network
connect_layout Connect to a LightWave Layout instance
connect_modeler Connect to a LightWave Modeler instance
connect_layout_auto Auto-discover and connect to Layout
connect_modeler_auto Auto-discover and connect to Modeler
send_layout_command Send a command to connected Layout
send_modeler_command Send a command to connected Modeler
list_connections List all active connections
close_connection Close an active connection
list_layout_commands List all Layout commands
list_modeler_commands List all Modeler commands
refresh_command_cache Refresh command cache from module

Example Workflow

  1. Discover LightWave instances:

    discover_lightwave()
    
  2. Connect to Layout:

    connect_layout(address="localhost", port=50155)
    
  3. Send commands:

    send_layout_command(command="About", args=[])
    send_layout_command(command="SelectItem", args=["30000000"])
    
  4. Close connection:

    close_connection(connection_id="...")
    

Default Connection Behavior

Once you connect to a LightWave instance, the server remembers that connection. Subsequent commands can omit the connection_id when only one connection of that type exists.

Scenario Behavior
One Layout connection active connection_id is auto-resolved
One Modeler connection active connection_id is auto-resolved
Multiple connections active You must specify which one
No matching connection Error: use connect_layout or connect_modeler first

Command Cache

The server ships with pre-built command caches:

  • Layout: 857 commands
  • Modeler: 63 commands

To update the cache when LightWave is updated:

cd lightwave-mcp/src
python3 introspect_commands.py -o ../cache

Or use the MCP tool:

refresh_command_cache(module_path="/Applications/LightWaveDigital/LightWave3D_2025.0.3/support/python")

Protocol Details

  • Transport: stdio (standard input/output)
  • Discovery Ports: 50155-50165 (UDP broadcast)
  • Protocol Version: 1.0

LightWave Command Port

The LightWave Command Port is a UDP-based inter-process communication system built into LightWave 3D.

Component Purpose
Layout Scene orchestration, animation, rendering
Modeler 3D polygon modeling, mesh editing

License

lightwave-mcp is released under an Apache 2.0 License. It was created as a workflow automation prototype by members of the WSL LightWave3D community.

lwcommandport is Copyright (c) LightWave Digital, LTD. All rights reserved. The included lwcommandport library is a fork of the original LightWave SDK sample code, updated for Python 3 compatibility.

Support

For issues with the lightwave-mcp MCP server, please open an issue on the repository.

from github.com/Kartaverse/lightwave-mcp

Install Lightwave in Claude Desktop, Claude Code & Cursor

Recommended · one command, every IDE
unyly install lightwave-mcp

Installs into Claude Desktop, Claude Code, Cursor & VS Code — handles npx, uvx and build-from-source repos for you.

First time? Get the CLI: curl -fsSL https://unyly.org/install | sh

Or configure manually

Run in your terminal:

claude mcp add lightwave-mcp -- uvx --from git+https://github.com/Kartaverse/lightwave-mcp lightwave-mcp

FAQ

Is Lightwave MCP free?

Yes, Lightwave MCP is free — one-click install via Unyly at no cost.

Does Lightwave need an API key?

No, Lightwave runs without API keys or environment variables.

Is Lightwave hosted or self-hosted?

Self-hosted: the server runs locally on your machine via the install command above.

How do I install Lightwave in Claude Desktop, Claude Code or Cursor?

Open Lightwave on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.

Related MCPs

Compare Lightwave with

Not sure what to pick?

Find your stack in 60 seconds

Author?

Embed badge for your README

Browse similar

All ai MCPs