Skip to main content

MCP server for drawing, generating, and editing GDS layouts with KLayout.

Project description

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

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

Note

run_script executes arbitrary Python locally, in-process. Only run scripts you trust.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

klayout_draw_mcp-0.1.1.tar.gz (169.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

klayout_draw_mcp-0.1.1-py3-none-any.whl (9.3 kB view details)

Uploaded Python 3

File details

Details for the file klayout_draw_mcp-0.1.1.tar.gz.

File metadata

  • Download URL: klayout_draw_mcp-0.1.1.tar.gz
  • Upload date:
  • Size: 169.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for klayout_draw_mcp-0.1.1.tar.gz
Algorithm Hash digest
SHA256 36643bb788be1600d5475adc62eafeacb2bb2144af327cd3b7b78b82f6573103
MD5 ecfcb28c98726814dcb469b745547519
BLAKE2b-256 524b62d73c2a07464988355a4c37d77193cd2853123e5c45f494d623db46e2b5

See more details on using hashes here.

Provenance

The following attestation bundles were made for klayout_draw_mcp-0.1.1.tar.gz:

Publisher: publish.yml on geniuskey/klayout-draw-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file klayout_draw_mcp-0.1.1-py3-none-any.whl.

File metadata

File hashes

Hashes for klayout_draw_mcp-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 fdd5a270f2aa38471c7d3a2d536d22ff5b779339b8e4526a300d6ee8f0784254
MD5 a6d63d9feebf5cac3bee7d9374675289
BLAKE2b-256 09c4aaa8db8214d827f11302dc53676689de2127c10c999b4f6770c1f7293d25

See more details on using hashes here.

Provenance

The following attestation bundles were made for klayout_draw_mcp-0.1.1-py3-none-any.whl:

Publisher: publish.yml on geniuskey/klayout-draw-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page