Logisim-evolution MCP Server

Logisim-evolution MCP Server

A local MCP server for working with Logisim-evolution .circ projects, providing structured project inspection, guarded edits, validation, circuit analysis, test execution, format conversion, and GUI launch.

Category
Visit Server

README

Logisim-evolution MCP Server

A local Model Context Protocol (MCP) server for working with saved Logisim-evolution .circ projects. It provides structured project inspection, guarded edits, validation, circuit analysis, test execution, format conversion, and GUI launch.

Requirements

  • Node.js 22 or later
  • Logisim-evolution 4.0.0 or a compatible release
  • GNU coreutils cp at /usr/bin/cp on Linux, used to preserve metadata during atomic file replacement

By default, the server uses the Logisim launcher at /opt/logisim-evolution/bin/logisim-evolution and the current user's home directory as its workspace. Configure different locations with the environment variables below.

Install and build

npm install
npm run build

To install the bundled OpenCode skill, run the optional command below. It overwrites or refreshes the configured skill copy at ${XDG_CONFIG_HOME:-~/.config}/opencode/skills/logisim-evolution/SKILL.md.

npm run install:skill

Set OPENCODE_CONFIG_DIR when OpenCode uses a different configuration root, then restart OpenCode.

MCP configuration

Build the project before configuring the client. Replace the placeholder paths with locations on the machine running the server.

{
  "mcp": {
    "logisim": {
      "type": "local",
      "command": [
        "node",
        "/absolute/path/to/Logisim-Evolution-MCP-Server/dist/index.js"
      ],
      "enabled": true,
      "environment": {
        "LOGISIM_EXECUTABLE": "/absolute/path/to/logisim-evolution",
        "LOGISIM_WORKSPACE": "/absolute/path/to/logisim-workspace"
      },
      "timeout": 120000
    }
  }
}

Restart the MCP client after changing its configuration.

Environment variables

Variable Purpose
LOGISIM_EXECUTABLE Path to the Logisim-evolution launcher.
LOGISIM_WORKSPACE Root directory allowed for project and test-vector file operations.
LOGISIM_VALIDATE_WRITES Set to false to skip post-edit Logisim CLI validation. It is enabled by default.
OPENCODE_CONFIG_DIR Optional OpenCode configuration root for the skill installer.

Capabilities

The server exposes these tool groups:

  • Status and inspection: logisim_get_status, logisim_describe_component, logisim_list_projects, and logisim_inspect_project.
  • Project and circuit management: logisim_create_project, logisim_copy_circuit, logisim_add_circuit, and logisim_set_main_circuit.
  • Edits: logisim_add_component, logisim_update_component, logisim_remove_component, logisim_add_wire, logisim_remove_wire, and logisim_apply_batch.
  • Automatic layout: logisim_layout_graph places and routes supported semantic graphs in an empty circuit and returns a geometry certificate.
  • Validation and execution: logisim_validate_project, logisim_truth_table, logisim_test_vector, logisim_test_bench, logisim_convert_project, and logisim_launch_gui.

Use logisim_describe_component before supplying unfamiliar component attributes or semantic ports. logisim_apply_batch is intended for known coordinates; logisim_layout_graph is intended for a new, empty circuit.

Supported automatic-layout components

The source-verified layout catalog includes Wiring Pin, Clock, and legacy Splitter; Gates AND Gate, OR Gate, XOR Gate, NAND Gate, NOR Gate, XNOR Gate, NOT Gate, and Buffer; Arithmetic Adder; Memory D Flip-Flop, Register, and Counter; and I/O LED.

The Splitter layout is decode-only: it accepts appear="legacy", fanout 2--8, incoming width 1--64, spacing 1--9, and an explicit non-none mapping for each incoming bit. It does not support reverse-combine use or nonlegacy appearances.

Safety model

  • File operations are restricted to LOGISIM_WORKSPACE; project paths must end in .circ.
  • Mutations use per-project locks, write to a private temporary directory, validate the result by default, create a backup under .logisim-mcp/backups/, and atomically replace the original only after validation succeeds.
  • The validation round trip checks that the circuit, component, and wire inventory survives Logisim normalization.
  • Projects using external jar# or file# libraries, or filePath resources, are rejected before Logisim runs.
  • GUI launches preflight the project and open a validated file descriptor to avoid a pathname replacement between validation and launch.

Development

npm run build
npm test
npm run smoke

npm test builds the TypeScript source and runs the compiled Node.js tests. npm run smoke starts the built server, checks tool registration, and queries server status and the Pin component description. It requires a usable Logisim launcher and workspace configuration.

Limitations

  • Edits apply to saved project files, not unsaved state in an already-open GUI window. Reopen a project after an external edit.
  • Component names, library numbers, and XML attribute names must match Logisim's format. The component catalog covers only verified geometry.
  • Automatic layout supports only the components listed above and only empty circuits. It is deterministic and bounded; it selects the best feasible candidate it evaluates, not a global optimum.
  • Crossing-free routing is not possible for every graph. Non-planar graphs need an explicit crossover component or another supported design.
  • Removing a component does not remove its connected wires.
  • Project locks are not reaped automatically. After a crash, confirm the lock owner is no longer running before removing a reported lock file.
  • Logisim 4.0.0 test-vector execution can report failures while exiting with status 0. The server parses the reported passed and failed counts.
  • The server can launch Logisim but cannot control an already-running editor or simulator window.

License

This project is licensed under the MIT License.

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured