Skip to main content
Glama
geniuskey

klayout-draw-mcp

by geniuskey

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, ...)

Related MCP server: KiCAD Schematic Manipulation MCP Server

Requirements

  • Python ≥ 3.10

  • The klayout and mcp Python 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_layoutadd_box / add_pathsave_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_gdsinspect_gdsdrc_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.

Install Server
A
license - permissive license
A
quality
A
maintenance

Maintenance

Maintainers
Response time
0dRelease cycle
3Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/geniuskey/klayout-draw-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server