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.
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
cpat/usr/bin/cpon 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, andlogisim_inspect_project. - Project and circuit management:
logisim_create_project,logisim_copy_circuit,logisim_add_circuit, andlogisim_set_main_circuit. - Edits:
logisim_add_component,logisim_update_component,logisim_remove_component,logisim_add_wire,logisim_remove_wire, andlogisim_apply_batch. - Automatic layout:
logisim_layout_graphplaces 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, andlogisim_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#orfile#libraries, orfilePathresources, 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
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
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.
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.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
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.
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.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
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.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.