klayout-draw-mcp
Enables AI assistants to create, edit, and view GDS layout files using KLayout, with tools for basic shapes and scripting.
README
klayout-draw-mcp
An MCP server for drawing GDS layouts with KLayout — generate, edit, and view layouts from an AI assistant such as Claude Code or Claude Desktop.
Layout geometry is built in-process with the standalone klayout Python module (no GUI needed). The installed KLayout application is launched only for viewing or manual editing.
Tools
| Tool | Purpose |
|---|---|
new_layout(top_cell, dbu) |
Start a new in-memory layout (coordinates in micrometers) |
add_box(layer, x1, y1, x2, y2, datatype) |
Add a rectangle |
add_polygon(layer, points, datatype) |
Add a polygon from [x, y] vertices |
add_path(layer, points, width, datatype) |
Add a path with width |
add_label(layer, x, y, text, datatype) |
Add a text label |
create_cell(name) / use_cell(name) |
Create/select the active drawing cell |
place_cell(cell, x, y, orient, nx, ny, dx, dy) |
Place an instance or array of a cell |
add_via(x, y, bottom_layer, top_layer, cut_layer, …) |
Via: cut array + enclosing metal |
add_wire(layer, points, width) |
Manhattan wire (auto L-corners) |
layout_info() |
Inspect current layout (layers, bbox, shape count) |
load_gds(path, top_cell?) |
Load an existing GDS/OASIS into the session for editing |
inspect_gds(path?) |
Per-layer shape count, area and bbox of a file or the session |
drc_check(rules, path?) |
Simple DRC: spacing / width / overlap / separation / enclosure |
save_gds(path, open_after) |
Write GDS/OASIS; optionally open in the editor |
open_layout(file_path) |
Open a file in KLayout (viewer) |
open_editor(file_path?) |
Open KLayout in editor mode, or a blank layout |
run_script(code) |
Run arbitrary Python with klayout.db (cell hierarchy, arrays, booleans, DRC, ...) |
Requirements
- Python ≥ 3.10
- The
klayoutandmcpPython packages (installed via the steps below) - The KLayout application — only needed for
open_layout/open_editor
Install
uv sync
Register with Claude Code
claude mcp add klayout -s user -- "<repo>/.venv/Scripts/python.exe" -m klayout_draw_mcp.server
On macOS/Linux use .venv/bin/python.
Usage
"Draw a 5×5 µm box on layer 1 and a 2 µm-wide path, then save to out.gds and open it."
Claude calls new_layout → add_box / add_path → save_gds(open_after=True).
You can also open and check an existing layout:
"Load chip.gds, check that M1 spacing ≥ 0.15 µm and that OD never overlaps POLY, and report violations."
Claude calls load_gds → inspect_gds → drc_check([...]), then edits and save_gds.
See Editing & DRC.
For anything beyond the basic shapes, run_script exposes the full klayout.db API.
Examples
Self-contained scripts in examples/. Each builds a layout with the
standalone klayout.db module and writes a GDS:
uv run python examples/cis_aps_pixel.py out.gds
You can also paste the body of a script's build() function into the run_script
tool. The scripts share one layer map (OD 3/0, POLY 6/0, NPLUS 4/0, METAL1 9/0, ...).
| Example | What it draws |
|---|---|
basic_shapes.py |
The four primitives: box, path, polygon, label |
nmos_transistor.py |
A single NMOS (active, poly gate, n+, contacts, M1 S/G/D) |
cmos_inverter.py |
A CMOS inverter: PMOS over NMOS, shared gate, Vdd/Vss rails |
cis_aps_pixel.py |
A 1 µm 4T CMOS image-sensor pixel, tiled as a 2×2 array |
Place & route skill
skills/klayout-pnr/ packages place-and-route recipes — row placement, power rails, and
an obstacle-aware maze (Lee) router — plus a SKILL.md workflow guide for assistants.
Copy it to your skills directory to have it auto-discovered:
cp -r skills/klayout-pnr ~/.claude/skills/
Documentation
Full docs (Getting Started walkthrough, examples, editing/DRC, place & route) are at https://geniuskey.github.io/klayout-draw-mcp/.
Note
run_script executes arbitrary Python locally, in-process. Only run scripts you trust.
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.
Neon Database
MCP server for interacting with Neon Management API and databases
E2B
Using MCP to run code via e2b.
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.