Skip to main content
Glama
tureruygar-glitch

kicad10-mcp

kicad10-mcp

Bir MCP sunucusu — KiCad 10 üzerinde tam kontrol sağlar. KiCad'in IPC API'sini (kicad-python / kipy) ve kicad-cli'yi sararak PCB editörü, şematik editörü, proje ayarları, ağlar (nets), katmanlar, tasarım verisi, üretim çıktıları ve ham bir betik çalıştırma kapısını MCP araçları olarak sunar.

102 araç, 14 modülde gruplanmıştır. İngilizce araç adları ve açıklamaları modelin doğru aracı bulması için tutulmuştur.

Gereksinimler

  • KiCad 10 kurulu (bu makinede: C:\Program Files\KiCad\10.0, kicad-cli 10.0.5)

  • Python paketleri: kicad-python>=0.7.1, mcp>=1.10,<2, pillow>=10

    pip install -e .

    mcp 2.x'te FastMCP kaldırıldı; sunucu 1.x API'siyle yazıldığı için sürüm <2 ile sabitlenmiştir.

  • KiCad açık ve API sunucusu etkin: Preferences > Plugins > "Enable the KiCad API server"

  • Çoğu araç o anda AÇIK olan kart (.kicad_pcb) veya şema (.kicad_sch) üzerinde çalışır — önce ilgili dökümanı açın.

Related MCP server: KiCad MCP Server

Çalıştırma

python -m venv .venv
.venv\Scripts\python.exe -m pip install -e .
.venv\Scripts\python.exe run_server.py      # veya: python -m kicad10_mcp

Sunucu stdio üzerinden konuşur. Claude Code'a kaydetmek için:

claude mcp add kicad --scope user -- <repo>\.venv\Scripts\python.exe <repo>\run_server.py

claude komutu yoksa (yalnızca masaüstü uygulaması kuruluysa) aynı kaydı ~/.claude.json içine mcpServers.kicad olarak elle ekleyin:

"mcpServers": {
  "kicad": {
    "type": "stdio",
    "command": "<repo>\\.venv\\Scripts\\python.exe",
    "args": ["<repo>\\run_server.py"]
  }
}

Kayıttan sonra Claude Code oturumunu yeniden başlatın. Test: kicad_status aracı "no handler available" derse KiCad'e bağlanılmıştır ama PCB Editor açık değildir.

Birimler / kurallar

  • Tüm konum, boyut ve genişlikler milimetre; açılar derece.

  • Katman adları: F.Cu, B.Cu, In1.Cu, Edge.Cuts, F.SilkS, F.Mask, F.Paste, F.Fab … Geçerli set için list_board_layers.

  • Kart düzenlemeleri tek bir geri-al (undo) adımına gruplanır. Diske yazmak için save_board. Export araçları aksi belirtilmedikçe önce kaydeder.

Araç grupları

Sistem / bağlantı — kicad_status, get_version, ping, list_open_documents, save_board, save_board_as, revert_board, run_action, get_kicad_binary_path

PCB okuma — get_board_summary, list_footprints, get_footprint, list_pads, list_tracks, list_vias, list_zones, list_shapes, get_board_outline, list_text, list_dimensions, list_groups, get_bounding_box

PCB düzenleme — move_footprint, rotate_footprint, set_footprint_locked, set_footprint_value, batch_move_footprints, set_items_locked, delete_items, select_items, clear_selection, get_selection

Yerleşim (parça/pad/kenar bazlı) — get_footprint_geometry, place_near_pad (dekuplaj vb.; aynı netteki pad hedefe bakacak şekilde gerekirse 180° döndürür), place_relative, place_on_edge, arrange_row, flip_footprint, check_placement (courtyard çakışması, kart dışı parça, toplam airwire uzunluğu). move_footprint / batch_move_footprints da artık çakışma uyarısı döndürür.

Routing (pad bazlı) — route_pads (iki pad'i adıyla bağlar: net ve genişlik netclass'tan, 45°/90° yol, gerekirse via), add_track_path (çok parçalı yol), check_clearance. Her sonuçta warnings alanı kısa devre, clearance ihlali ve boşta kalan uçları bildirir; rollback_on_conflict ile hatalı çizim geri alınır. route_pads geniş bir güç yolunu ince aralıklı bir pine (ör. SSOP) girerken komşu pinlere değmeyecek genişliğe daraltır (necks), yol tam genişliğe hiç sığmıyorsa tamamını sığan en geniş değerle çizer; sürücülerin çift pinli çıkışlarında (TB6612 AO1 = 1+2) izi iki pinin ortasına getirip ikisini birden bağlar.

Netclass / track genişliği — calc_track_width (akıma göre IPC-2221 genişliği, istenirse direnç ve gerilim düşümü), configure_netclasses (sınıfları ve net atamalarını .kicad_pro'ya yazar; genişlik sabit sayı yerine current_a ile verilebilir; proje KiCad'de kapalıyken çalışır — sadece proje yöneticisinde açık olsa bile kilit dosyasından anlayıp reddeder), get_netclass_config.

Otomatik routing (Freerouting) — autoroute: kalan bağlantıları Freerouting ile çizer. Mevcut yollar kilitlenir (elle/Claude'un çizdiği güç yolları yerinde kalır), skip_netclasses ile istenen sınıflar (ör. HighCurrent) hiç rotalanmaz. Açık kart kaydedilir, <kart>.pre-autoroute.kicad_pcb yedeği alınır, rotalanıp KiCad'e yeniden yüklenir; ardından zone'lar doldurulup DRC çalıştırılır (drc_after). Freerouting'in pin çıkışlarında sınıf genişliğinin %75'ine inceltip kartın asgari iz genişliğinin altına düşürdüğü izler içe aktarımda asgari genişliğe çıkarılır (widened_to_min_width). freerouting_status hazırlığı kontrol eder, install_freerouting resmi jar'ı GitHub'dan indirir. Freerouting GPL-3.0'dır ve yalnızca ayrı bir program olarak çağrılır; kodu bu pakete dahil değildir. Gereksinim: Java 21+ (Java 25 önerilir: Freerouting 2.4 saniyeler içinde biter ve limitlere uyar; Java 21'de 2.1.0 çalışır, limitleri yok sayar ve dakikalar sürer). DSN/SES dönüşümü KiCad'in kendi Python'u (pcbnew) ile yapılır, çünkü kicad-cli DSN dışa aktaramaz. Not: bakır katmandaki yazılar Freerouting'e engel olarak gitmez; DRC raporunu okuyun.

Güç bütçesi (akım analizi) — analyze_power_budget: şematikten (kicad-cli netlist; KiCad açık olmak zorunda değil) her besleme netinin normal ve en kötü durum akımını hesaplar; regülatör, sürücü ve seri elemanlar (sigorta, diyot, anahtar, bobin, 0 Ω) üzerinden akımı kaynağa kadar taşır, sürücü/regülatör sınır aşımlarını uyarır ve configure_netclasses'a verilecek netclass önerisi üretir. Bilinmeyen parçaları ve ucunda ne olduğu bilinmeyen konnektörleri tahmin etmez, soru olarak döndürür. set_part_current datasheet değerlerini kaynağıyla kaydeder, list_part_database bilinen parçaları listeler.

Parça verisi sırası: kullanıcının kendi kayıtları (~/.kicad10_mcp/parts.json) → yerleşik veritabanı. Yerleşik 16 parçanın 13'ü üretici datasheet'lerinden alınmıştır (her kayıtta kaynak URL ve sayfa); datasheet'i alınamayan MCP1700, L7805 ve WS2812B verified: false olarak işaretlidir.

Görünüm — snapshot_board: kartın üstten PNG görüntüsü (kart sınırı, courtyard'lar, pad'ler, track/via'lar, zone dolguları, vurgulanan net). Kart dışındaki parçalar da kadraja girer; airwire'lar KiCad'in bağlantı bilgisiyle yalnızca bakırın henüz bağlamadığı bağlantılar için çizilir. Model yerleşimi ve routing'i görerek kontrol edebilir.

Oluşturma (routing/grafik) — add_track, add_arc_track, add_via, add_zone, add_zone_rect, refill_zones, add_line, add_rectangle, add_circle, add_arc, add_polygon, add_board_outline_rect, add_text (add_track genişliği ve add_via ölçüleri verilmezse netclass'tan alınır; bilinmeyen net adı artık hata verir ve benzer adları önerir.)

Ağlar / katmanlar — list_nets, list_netclasses, get_items_by_net, get_connected_items, list_board_layers, set_active_layer, set_visible_layers, set_copper_layer_count, get_stackup, get_design_rules

Proje — get_project_info, get_text_variables, set_text_variable, expand_text, get_title_block, set_title_block

Şema — get_schematic_summary, list_symbols, list_labels, list_schematic_text, get_schematic_hierarchy, add_schematic_text, add_local_label, save_schematic (Not: sembol/hiyerarşi okuma KiCad 11 özelliğidir; KiCad 10'da bu araçlar açıklayıcı bir hata döndürebilir — bu durumda execute_kipy kullanın.)

Üretim çıktıları (kicad-cli) — run_kicad_cli, export_gerbers, export_drill, export_step, export_pdf, export_svg, export_pos, render_3d, run_drc, export_bom, export_netlist, run_erc (run_drc önce zone'ları doldurur — eski dolgu sahte clearance hatası verir — ve ihlalleri türe göre sayıp örnekleriyle özetler.)

Tam kontrol kapısı — execute_kipy: canlı KiCad'e karşı rastgele Python çalıştırır. kicad, board, schematic, kipy, commit, Vector2, Angle, BoardLayer, KiCadObjectType adları önceden bağlıdır. result değişkenine atadığınız şey geri döner; print çıktısı da yakalanır.

# execute_kipy örnek
from kipy.board_types import Track
t = Track()
t.start = Vector2.from_xy_mm(10, 10)
t.end   = Vector2.from_xy_mm(20, 10)
t.width = 250000          # 0.25 mm (nanometre)
t.layer = BoardLayer.BL_F_Cu
with commit(board, "api track"):
    created = board.create_items(t)
result = [c.id.value for c in created]

Ortam değişkenleri

  • KICAD_API_TIMEOUT_MS — IPC istek zaman aşımı (varsayılan 10000)

  • KICAD_API_BUSY_WAIT_S — KiCad "meşgul" dediğinde (ör. otomatik kayıt sırasında) isteği yeniden deneme süresi (varsayılan 5); açık diyalog/aktif araç gibi kalıcı durumlarda sonra anlaşılır bir hata döner. KiCad yeniden başlarsa bağlantı kendiliğinden yenilenir.

  • KICAD_API_SOCKET / KICAD_API_TOKEN — KiCad otomatik ayarlar; genelde gerekmez

  • KICAD10_MCP_JAVA — Freerouting için kullanılacak java (varsayılan: bulunan en yeni sürüm)

  • KICAD10_MCP_FREEROUTING_JAR — belirli bir Freerouting jar dosyası

  • KICAD10_MCP_KICAD_PYTHON — KiCad'in Python'u (DSN/SES dönüşümü için; genelde otomatik bulunur)

Proje yapısı

kicad10_mcp/
  server.py          FastMCP uygulaması, tüm modülleri kaydeder
  connection.py      Önbellekli KiCad istemcisi + commit context manager
  helpers.py         mm<->nm, katman ad<->enum, serileştiriciler
  board_query.py     parça/pad bulma, courtyard, netclass değerleri, geometri, ratsnest
  system_tools.py    sistem / döküman yaşam döngüsü
  read_tools.py      PCB okuma
  edit_tools.py      PCB düzenleme
  placement_tools.py parça/pad/kenar bazlı yerleşim + yerleşim kontrolü
  routing_tools.py   pad bazlı routing + clearance / bağlantı kontrolü
  view_tools.py      snapshot_board (PNG görüntü)
  netclass_tools.py  IPC-2221 hesabı + .kicad_pro netclass/atama düzenleme
  power_tools.py     güç bütçesi analizi (netlist → net akımları → netclass önerisi)
  parts_db.py        parça akım veritabanı (yerleşik + kullanıcı)
  sexpr.py           KiCad S-expression okuyucu/yazıcı
  autoroute_tools.py Freerouting entegrasyonu (DSN → Freerouting → SES)
  kicad_py/          KiCad'in Python'u ile çalışan yardımcılar (DSN/SES)
  create_tools.py    routing + grafik + metin oluşturma
  net_layer_tools.py ağlar, ağ sınıfları, katmanlar, stackup, tasarım kuralları
  project_tools.py   metin değişkenleri, başlık bloğu
  schematic_tools.py şema okuma/yazma
  export_tools.py    kicad-cli sarmalayıcıları
  exec_tools.py      execute_kipy
run_server.py        başlatıcı
pyproject.toml

Available Tools

102 tools
add_arcA

Add a graphic arc defined by start, mid, and end points.

Args: start_x_mm, start_y_mm: Arc start in mm. mid_x_mm, mid_y_mm: Point on the arc, in mm. end_x_mm, end_y_mm: Arc end in mm. layer: Layer name. width_mm: Outline width in mm.

ParametersJSON Schema
NameRequiredDescriptionDefault
layerNoF.SilkS
end_x_mmYes
end_y_mmYes
mid_x_mmYes
mid_y_mmYes
width_mmNo
start_x_mmYes
start_y_mmYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden, but it only restates parameter meanings. It does not disclose that this mutates a board, requires an open document, or what side effects or permissions are involved.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose is front-loaded in one sentence, followed by a compact args list. Every line adds useful information without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The output schema covers return values, and the description covers purpose and parameters. However, with no annotations and no usage guidance, it leaves gaps about when to prefer this over add_arc_track and what mutation side effects to expect.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It does so by defining all eight parameters with meaning and units: start/mid/end coordinates in mm, layer name, and outline width in mm.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: "Add a graphic arc." The word "graphic" distinguishes it from the sibling add_arc_track, and the start/mid/end definition makes the operation concrete.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus alternatives such as add_arc_track, add_line, or add_circle. No prerequisites, exclusions, or context are provided beyond the parameter list.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

add_arc_trackA

Add a curved (arc) copper track defined by start, mid, and end points.

Args: start_x_mm, start_y_mm: Arc start in mm. mid_x_mm, mid_y_mm: A point on the arc between start and end, in mm. end_x_mm, end_y_mm: Arc end in mm. width_mm: Track width in mm. layer: Copper layer name. net_name: Optional net to assign.

ParametersJSON Schema
NameRequiredDescriptionDefault
layerNoF.Cu
end_x_mmYes
end_y_mmYes
mid_x_mmYes
mid_y_mmYes
net_nameNo
width_mmYes
start_x_mmYes
start_y_mmYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden, yet it only describes geometry inputs. It does not disclose whether a board must be open, whether the mid point is validated as lying on the arc, whether the track is DRC-checked, or whether the operation is undoable.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The one-line summary is front-loaded and the Args block is a compact, scannable list. Slightly verbose in layout but every line carries unique parameter information that the schema lacks.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values need no explanation, and parameter documentation is thorough. However, with no annotations and no usage or behavioral context, the definition is still incomplete for judging when and under what conditions to invoke the tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must explain all nine parameters — and it does, giving units (mm) for every coordinate and width, plus the meaning of the mid point and the optionality of net_name. This fully compensates for the empty schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Add a curved (arc) copper track') and immediately names the three defining points, which distinguishes it from the sibling straight-track tools add_track and add_track_path as well as the non-copper add_arc.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to choose this over add_track, add_track_path, or add_arc, and no stated preconditions such as requiring an open board or an existing layer/net. The agent is left to infer usage entirely.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

add_board_outline_rectB

Add a rectangular board outline on the Edge.Cuts layer.

Args: x_min_mm, y_min_mm: Top-left corner in mm. x_max_mm, y_max_mm: Bottom-right corner in mm. width_mm: Outline width in mm.

ParametersJSON Schema
NameRequiredDescriptionDefault
width_mmNo
x_max_mmYes
x_min_mmYes
y_max_mmYes
y_min_mmYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden. It states the target layer and that it adds an outline, but omits whether it replaces an existing outline, permission/auth requirements, error conditions, or whether the operation is destructive. A write operation with zero annotation coverage demands more.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core action in the first sentence, followed by a compact args list. No filler; every element serves to clarify the operation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the operation and all parameters, and an output schema exists so return values need not be explained. However, for a board-mutating tool with zero annotation and zero schema description coverage, it lacks usage context and critical behavioral details (e.g., overwrite semantics), leaving notable gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must document parameters. It does so for all five: top-left and bottom-right corners in mm, and outline stroke width in mm. This fully compensates for the empty schema descriptions, though it does not restate the schema's default for width_mm.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (add) and resource (rectangular board outline) and the target layer (Edge.Cuts), which implicitly distinguishes it from generic drawing tools like add_rectangle. However, it does not name or contrast with any alternative sibling, so it stops short of explicit sibling differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use guidance, no prerequisites, and no mention of alternatives (e.g., add_rectangle, add_line) or when not to use it. The description only states what the tool does, leaving the agent to infer usage entirely from the name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

add_circleB

Add a graphic circle.

Args: center_x_mm, center_y_mm: Centre in mm. radius_mm: Radius in mm. layer: Layer name. width_mm: Outline width in mm. filled: Whether the circle is solid-filled.

ParametersJSON Schema
NameRequiredDescriptionDefault
layerNoF.SilkS
filledNo
width_mmNo
radius_mmYes
center_x_mmYes
center_y_mmYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden yet only documents argument meanings. It does not state that this mutates board state, whether the change is undoable/revertable, or what the return value indicates. The mm units are the one genuinely useful behavioral detail.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single purpose sentence followed by a tight parameter list; no filler. Front-loaded purpose statement, every line earns its place given the zero schema coverage.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be described. For a board-mutating tool with no annotations, however, the definition should mention that it modifies the document and whether an open board is required; that gap keeps it at minimum-viable.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate, and it does: all six parameters are explained with units for the geometric ones. It omits the defaults encoded in the schema (layer=F.SilkS, width_mm=0.15, filled=false), which limits it slightly below a 5.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Add a graphic circle'), which is enough for an agent to distinguish it from siblings like add_rectangle, add_arc, and add_polygon. No explicit sibling differentiation in the text, but the resource noun is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this versus add_rectangle, add_arc, or add_polygon, nor any prerequisite context (e.g., that a board/document must be open). Usage must be entirely inferred from the tool name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

add_lineB

Add a graphic line segment (silkscreen, fab, Edge.Cuts, etc.).

Args: start_x_mm, start_y_mm: Start point in mm. end_x_mm, end_y_mm: End point in mm. layer: Layer name, e.g. 'F.SilkS' or 'Edge.Cuts'. width_mm: Line width in mm.

ParametersJSON Schema
NameRequiredDescriptionDefault
layerNoF.SilkS
end_x_mmYes
end_y_mmYes
width_mmNo
start_x_mmYes
start_y_mmYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full responsibility for behavioral disclosure. It says 'Add' and mentions graphic layers, but does not cover whether a board must be open, whether the operation is undoable, what happens to existing items, or any permission requirements. For a mutation tool with zero annotation coverage, this is a significant gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core purpose and then uses a compact argument list. Every line earns its place, especially given the schema's lack of parameter descriptions, and there is no redundant or filler text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The output schema exists, so return values need not be explained. However, for a mutation tool with six parameters and no annotations, the description is incomplete: it lacks usage guidelines relative to siblings and omits operational prerequisites or side effects. It is adequate but has clear gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It documents all six parameters with units (mm) and gives layer examples ('F.SilkS', 'Edge.Cuts'), adding useful meaning beyond the bare parameter names. It omits default values, which are present in the schema, but otherwise provides strong parameter context.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource ('Add a graphic line segment') and gives examples of target layers (silkscreen, fab, Edge.Cuts), which implicitly distinguishes it from copper tracks and other shape-adding siblings. However, it does not name an alternative sibling or explicitly rule out copper use, so it falls short of full differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The layer examples imply that this tool is for non-copper graphical layers, but there is no explicit when-to-use, when-not-to-use, or alternative recommendation (e.g., use add_track for copper). Guidance is inferred rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

add_local_labelC

Add a local net label to the open schematic.

Args: text: Label text (the net name). x_mm, y_mm: Position in mm.

ParametersJSON Schema
NameRequiredDescriptionDefault
textYes
x_mmYes
y_mmYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden for a mutation tool. It notes the schematic must be open but says nothing about whether the label persists, requires a save, is undoable, or what happens on invalid coordinates.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose sentence is front-loaded and the Args block is terse. Efficient overall, with no filler sentences, though the Args formatting is raw docstring output.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be described. However, for a mutation tool with zero annotation coverage, the description is silent on side effects, save requirements, and failure modes.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, but the Args block documents all three params: text as the net name, and x_mm/y_mm as position in mm. This compensates for the bare schema, though it adds no constraints, valid ranges, or units beyond 'mm'.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: 'Add a local net label to the open schematic.' An agent can distinguish this from siblings like add_schematic_text or list_labels from the wording alone, though it doesn't explicitly call out which sibling to prefer.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this versus add_schematic_text, add_text, or other annotation tools. The only contextual cue is the implicit prerequisite of an 'open schematic.'

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

add_polygonB

Add a graphic polygon.

Args: points: Vertices, each {"x_mm": .., "y_mm": ..} or [x, y]. >= 3 points. layer: Layer name. width_mm: Outline width in mm. filled: Whether the polygon is solid-filled.

ParametersJSON Schema
NameRequiredDescriptionDefault
layerNoF.SilkS
filledNo
pointsYes
width_mmNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It does not disclose whether the tool requires an open board, what permissions are needed, whether the operation is undoable, or any other behavioral trait beyond the fact that it creates a polygon.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the purpose and then uses a clear Args block. It is concise and every sentence contributes. It could be slightly tighter, but it is well-structured for its length.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained. However, the description lacks usage context, does not mention the default layer or that a board must be open, and offers no behavioral guidance. For a 4-parameter creation tool with no annotations, it is only minimally viable.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description must compensate. It explains the points format ('each {"x_mm": .., "y_mm": ..} or [x, y]'), enforces a minimum of 3 points, and clarifies layer, width_mm, and filled. Only minor detail (e.g., layer default) is missing, but the description adds substantial meaning beyond the bare schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Add a graphic polygon.' This clearly identifies the action and object. However, it does not differentiate from sibling creation tools such as add_rectangle, add_circle, or add_zone, so it falls short of the top score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. There is no mention of prerequisites, context, or exclusions. It only lists parameters, leaving usage entirely inferred.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

add_rectangleB

Add a graphic rectangle.

Args: x_min_mm, y_min_mm: Top-left corner in mm. x_max_mm, y_max_mm: Bottom-right corner in mm. layer: Layer name. width_mm: Outline width in mm. filled: Whether the rectangle is solid-filled.

ParametersJSON Schema
NameRequiredDescriptionDefault
layerNoF.SilkS
filledNo
width_mmNo
x_max_mmYes
x_min_mmYes
y_max_mmYes
y_min_mmYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden. It says nothing about state effects on the board, whether changes are undoable, required document/permission context, or failure conditions for a mutating add operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose is front-loaded in the first sentence, followed by a compact Args block with no filler. The Args-list format is slightly schema-like but every line adds semantic meaning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need no explanation, and parameters are covered. Still, for a mutating 7-parameter tool with zero annotation coverage, no usage context (which document must be open, relationship to other shape tools) is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate, and it does: it documents all seven parameters with units and meaning (x/y min as top-left, max as bottom-right, layer name, outline width in mm, filled solid fill). It omits the schema defaults (F.SilkS, 0.15, false), but the coordinate and width semantics are the key additions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The first sentence states a specific verb+resource ("Add a graphic rectangle"), so the operation is unambiguous. It does not distinguish itself from siblings like add_board_outline_rect, add_polygon, or add_line, leaving the agent to infer that this is a decorative/copper graphic rectangle rather than a board geometry primitive.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no statement of when to use this tool versus add_board_outline_rect, add_polygon, or add_zone_rect, nor any prerequisite (e.g. an open board/document). The description lists only parameters, so all routing context is left to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

add_schematic_textC

Add a free text object to the open schematic.

Args: text: Text string. x_mm, y_mm: Position in mm.

ParametersJSON Schema
NameRequiredDescriptionDefault
textYes
x_mmYes
y_mmYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It implies a mutation of the open schematic but says nothing about required state, whether the object is selectable/movable afterward, layer/grouping behavior, or failure modes when no document is open.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose sentence is front-loaded and the whole definition is short with no filler beyond a boilerplate 'Args:' block. Efficient, though the arg lines are near-duplicates of the schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 3-required-param mutation tool with no annotations and 0% schema coverage, the description is under-specified: it omits document-state requirements, anchoring behavior, and any post-condition. The presence of an output schema excuses it from explaining return values, but little else is covered.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate, but it only restates the schema titles: 'text: Text string' and 'x_mm, y_mm: Position in mm'. The mm unit is the sole piece of added meaning, and it is largely echoed by the property titles 'X Mm'/'Y Mm'.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource: 'Add a free text object to the open schematic.' The 'schematic' scoping distinguishes it from board-level siblings like add_text and add_line, though it never names a sibling explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use guidance, no prerequisites (e.g. a schematic must be open), and no routing to alternatives such as add_text (board) or add_local_label (labels). The only implied context is the word 'open schematic'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

add_textB

Add free text to the board.

Args: text: The text string. x_mm, y_mm: Anchor position in mm. layer: Layer name, e.g. 'F.SilkS'. size_mm: Glyph height (and width) in mm. thickness_mm: Stroke thickness in mm. angle_deg: Rotation in degrees.

ParametersJSON Schema
NameRequiredDescriptionDefault
textYes
x_mmYes
y_mmYes
layerNoF.SilkS
size_mmNo
angle_degNo
thickness_mmNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description bears the full behavioral burden, yet it only lists parameters. It does not say whether the text is durably committed, whether it requires a specific layer/selection state, what happens on illegal layers, or whether it returns the created object.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose is front-loaded in one sentence, followed by a tight per-argument list. It echoes the schema property names but each line adds units or an example, so it mostly earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be described, and parameters are well covered. However, for a mutation tool with zero annotations, the description omits any behavioral or usage context, leaving a real gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate, and it largely does: it gives units (mm) for x_mm/y_mm/size_mm/thickness_mm, explains size_mm as glyph height and width, thickness_mm as stroke, and gives a concrete layer example 'F.SilkS'. This meaningfully exceeds what the bare schema titles provide.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: 'Add free text to the board.' The word 'board' (versus schematic) implicitly separates it from add_schematic_text/add_local_label, but no sibling is named explicitly, so it stops short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no prerequisites, and no mention of alternatives among the many sibling add_* tools. The agent must infer context entirely.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

add_trackA

Add a straight copper track segment. Prefer route_pads (connect pads by name) or add_track_path (multi-segment) - they avoid hand-copied coordinates.

Args: start_x_mm, start_y_mm: Start point in mm. end_x_mm, end_y_mm: End point in mm. width_mm: Track width in mm; default is the net's netclass width. layer: Copper layer name, e.g. 'F.Cu' or 'B.Cu'. net_name: Net to assign (must exist on the board).

ParametersJSON Schema
NameRequiredDescriptionDefault
layerNoF.Cu
end_x_mmYes
end_y_mmYes
net_nameNo
width_mmNo
start_x_mmYes
start_y_mmYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden and does reasonably well: it discloses that width_mm defaults to the net's netclass width, that layer defaults to F.Cu, and that net_name must already exist on the board (a real precondition). It omits any note on permission/board-state requirements, whether the track is validated against clearance, or error behavior, keeping it short of a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with purpose and the sibling redirect in the first two sentences, followed by a compact per-argument list. Every line carries information the schema does not; no filler or restatement of the tool name.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 7-parameter mutation tool with no annotations, the description covers purpose, defaults, preconditions, and alternatives, and an output schema exists so return values need not be explained. It is nearly complete, missing only failure/validation behavior and any hint about required board state.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate entirely and it does: all seven parameters are documented with units (mm) and meaning, and it explains the non-obvious semantic that a null width_mm resolves to the netclass width. Layer examples ('F.Cu', 'B.Cu') and the net existence constraint add value the schema lacks.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Add a straight copper track segment') and immediately distinguishes itself from siblings add_arc_track, add_track_path, and route_pads by scoping to a single straight segment. An agent can identify the tool's role without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly routes the agent away from this tool toward route_pads and add_track_path with a stated reason ('they avoid hand-copied coordinates'). It does not spell out the condition under which add_track itself is the correct choice, but the guidance is clear and actionable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

add_track_pathA

Draw a connected multi-segment track through a list of points in one step, then check both ends are connected and nothing is too close.

Args: points: Vertices, each [x, y] or {"x_mm":.., "y_mm":..}; at least 2. net_name: Net to assign (must exist; e.g. 'GND', '/MOTOR_A'). layer: Copper layer name. width_mm: Track width; default is the net's netclass width. rollback_on_conflict: Undo the path if any clearance problem is found.

ParametersJSON Schema
NameRequiredDescriptionDefault
layerNoF.Cu
pointsYes
net_nameYes
width_mmNo
rollback_on_conflictNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does meaningful work: it discloses that both ends are checked for connection and spacing, that rollback_on_conflict reverts the path on any clearance problem, and that net_name must already exist. It stops short of describing failure modes or return behavior, but that is partly covered by the output schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded purpose sentence followed by a clean Args block; each line earns its place. Slightly loose phrasing in 'check both ends are connected and nothing is too close' keeps it from a 5.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 5-parameter mutation tool with no annotations, the description covers geometry format, net/layer requirements, width defaulting, and rollback behavior, and an output schema exists so return values need not be explained. Only permissions/preconditions beyond net existence are unaddressed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate, and it documents all five parameters: the points value formats and the 'at least 2' constraint, the existence requirement for net_name with examples, layer meaning, width defaulting to the netclass width, and the exact rollback semantics of rollback_on_conflict.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('draw a connected multi-segment track') and the scope ('through a list of points in one step'), which implicitly separates it from the single-segment sibling add_track. It does not explicitly name an alternative, so it stops short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by 'in one step' and the connectedness check, but the description never says when to prefer this over add_track, add_arc_track, route_pads, or autoroute, nor any prerequisites beyond 'net must exist'. Clear context, but no explicit alternatives or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

add_viaA

Add a through via at a position, sized from the net's netclass by default, and report clearance problems with other nets on the outer layers.

Args: x_mm, y_mm: Via centre in mm. diameter_mm: Copper diameter in mm; default from netclass. drill_mm: Drill diameter in mm; default from netclass. net_name: Net to assign (must exist on the board).

ParametersJSON Schema
NameRequiredDescriptionDefault
x_mmYes
y_mmYes
drill_mmNo
net_nameNo
diameter_mmNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It usefully discloses that diameter/drill default from the netclass and that the tool reports clearance problems with other nets on the outer layers. However, as an implicit write operation it says nothing about permissions, whether the placement is reversible, or what happens on netclass mismatch.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The primary action and its key default behaviors are front-loaded in the first sentence, followed by a tidy Args block. It is slightly longer than strictly necessary but every line maps to a parameter or behavior, so nothing is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return structure need not be spelled out. The description still adds the key return-side signal (clearance conflict reporting) plus defaults and constraints. Coverage of behavior is solid, with only the write/authorization semantics left implicit.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must carry all semantics, and it does: it documents units (mm), the geometric role of x_mm/y_mm as the via centre, the netclass-derived defaults for diameter_mm and drill_mm, and the constraint that net_name must exist on the board. This fully compensates for the empty schema descriptions across all 5 parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb+resource: 'Add a through via at a position', and adds meaningful scope (sizing defaults from netclass, clearance reporting). The via resource is unambiguous against siblings like add_track/add_zone, though no sibling is named explicitly. Clear but not differentiated by name.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit when-to-use, when-not-to-use, or named alternative. The reader must infer usage purely from the action description; the only contextual precondition is that the assigned net 'must exist on the board', which is a parameter constraint rather than routing guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

add_zoneA

Add a copper zone (filled pour) bounded by a polygon outline.

Args: points: Outline vertices, each {"x_mm": .., "y_mm": ..} or [x, y]. >= 3 points. layers: Layer names the zone exists on, e.g. ['F.Cu']. net_name: Net to connect the pour to (e.g. 'GND'). Empty for no net. name: Optional zone name. priority: Fill priority (higher fills first). refill: Refill all zones after creating (slower, reflects in editor).

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo
layersYes
pointsYes
refillNo
net_nameNo
priorityNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden. It usefully explains that refill runs after creation and is slower and reflects in the editor, but it omits permissions required, whether existing zones are affected, and the mutation's reversibility or side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with a one-sentence purpose, followed by an Args block with one line per parameter. Every sentence and line earns its place with no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The output schema exists, so return values need not be explained, and the description thoroughly covers the six parameters for a mutation tool. It is slightly incomplete on usage routing and broader behavioral traits such as authentication or destructive effects.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate, and it does: all six parameters are documented with formats, required minimums, examples, defaults, and semantics such as points as vertices, layers as names, and net_name as the pour connection.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Add a copper zone (filled pour) bounded by a polygon outline.' The 'polygon outline' phrasing implicitly distinguishes it from sibling add_zone_rect, so an agent can identify the intended operation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains what the tool does but gives no explicit when-to-use guidance, no prerequisites, and no comparison with alternatives like add_zone_rect or refill_zones. Usage context is left to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

add_zone_rectA

Add a rectangular copper zone (convenience wrapper around add_zone).

Args: x_min_mm, y_min_mm: Top-left corner in mm. x_max_mm, y_max_mm: Bottom-right corner in mm. layers: Layer names, e.g. ['F.Cu']. net_name: Net to connect (e.g. 'GND'). name: Optional zone name. priority: Fill priority. refill: Refill zones after creating.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo
layersYes
refillNo
net_nameNo
priorityNo
x_max_mmYes
x_min_mmYes
y_max_mmYes
y_min_mmYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden. It discloses that refill zones after creating and that it wraps add_zone, but it omits mutation side effects, permission needs, and what happens to existing overlapping zones, leaving notable gaps for a write operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the purpose and then presents parameters in a clean Args list. Every line earns its place, and there is no redundant or filler text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 9 parameters, 0% schema description coverage, no annotations, and an output schema that handles return values, the description is only partially complete. It thoroughly documents parameters but lacks usage guidance and behavioral safety details, so an agent still has to infer important context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate, and it does: it explains all nine parameters, including coordinate corner semantics, layer names, net names, optional name, priority, and refill. Examples are given for layers and net_name, adding meaningful clarity beyond the bare schema titles.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Add a rectangular copper zone'. It also distinguishes itself from the sibling add_zone by identifying itself as a 'convenience wrapper around add_zone', so an agent can tell it apart without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It names the underlying alternative (add_zone) and implies this tool is for rectangular zones, but it does not explicitly state when to choose this over add_zone or other shape tools, nor does it list exclusions. Usage is implied rather than spelled out.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

analyze_power_budgetA

Estimate how much current every supply net carries, from the schematic, and suggest track widths / net classes. Works for any kind of board.

Reads the saved schematic via kicad-cli (save it first). Parts are looked up in the current database; regulators, drivers, and series parts (fuse, diode, switch, inductor, 0-ohm) propagate current from loads back to the source.

Returns 'questions' when information is missing - answer them and run again:

  • unknown_parts: open the part's 'datasheet' link (taken from the KiCad symbol; about half of vendor sites allow automated download - if it fails, search the web for " datasheet"), read the supply/output current figures, then call set_part_current with the URL as source. 'rating_hint' is only a pointer from the symbol description.

  • unknown_connectors: ask the user what is plugged in (and its worst-case current, e.g. motor stall), then pass it in external_loads. Values from the built-in database are flagged in 'unverified_parts' until checked against a datasheet.

Args: schematic_path: .kicad_sch / .kicad_pro / project folder; default = project of the open board. external_loads: What hangs off connectors (or any part), by reference: {"J2": 2.5} or {"J2": {"typ_a": 0.4, "max_a": 2.5, "note": "motor stall"}}. Current is charged to every non-ground net the part touches; restrict with "pins": ["1"] (e.g. only the supply pin of a 3-pin servo header). sources: References of the supply inputs (battery/power connectors). Default: batteries, USB/barrel jacks, and connectors named like BAT/PWR/SUPPLY. net_voltages: Voltages for nets whose name doesn't say it, e.g. {"/VMOT": 7.4}; used for switching regulators and linear-regulator dissipation. temp_rise_c: Temperature rise for the width suggestions. copper_oz: Copper weight for the width suggestions.

ParametersJSON Schema
NameRequiredDescriptionDefault
sourcesNo
copper_ozNo
temp_rise_cNo
net_voltagesNo
external_loadsNo
schematic_pathNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden and does well: it discloses the kicad-cli read path, the save-first requirement, current-propagation from loads back through regulators/drivers/series parts, the structured 'questions' return on missing data, and the 'unverified_parts' flagging of database values. It stops short of stating whether the tool mutates anything or how heavy/long the run is, but the behavioral picture is substantially richer than a bare 'analyze' verb.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is long but front-loaded (purpose first, then runtime behavior, then remediation workflow, then args) and each block earns its place. The workflow and per-arg guidance are genuinely load-bearing rather than padding, though it could be trimmed slightly and the args section duplicates some schema-documented structure.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex 6-param analysis tool, the description covers the input contract, the runtime preconditions, and the shape of the response keys an agent must act on ('questions', 'unknown_parts', 'unknown_connectors', 'unverified_parts'). Since an output schema exists, detailed return-field documentation is not required, and nothing critical for correct invocation is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate fully — and it does. Every one of the 6 parameters is explained with meaning the schema cannot convey: the schematic_path accepted extensions and default, external_loads value shapes ({"J2": 2.5} vs {typ_a/max_a/note}) plus the 'pins' restriction for multi-pin connectors, sources defaults, net_voltages purpose for regulator dissipation, and the role of temp_rise_c/copper_oz in width suggestions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening sentence gives a specific verb and resource ('Estimate how much current every supply net carries, from the schematic, and suggest track widths / net classes'), which clearly differentiates it from siblings like calc_track_width (geometry-only) and set_part_current (writes database values). The scope ('works for any kind of board') and inputs are unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It states the prerequisite ('Reads the saved schematic via kicad-cli (save it first)') and a full remediation workflow when data is missing (answer questions, resolve unknown_parts via datasheets + set_part_current, unknown_connectors via external_loads). It does not explicitly contrast itself with alternatives such as calc_track_width or check_clearance, so an agent must infer when this tool is preferred.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

arrange_rowA

Line several parts up in a row or column in one undo step.

Args: references: Parts in order, e.g. ['R1', 'R2', 'R3']. start_x_mm, start_y_mm: Origin of the first part. pitch_mm: Fixed origin-to-origin spacing. If omitted, parts are packed courtyard-to-courtyard with gap_mm between them. direction: 'x' (row, left to right) or 'y' (column, top to bottom). gap_mm: Gap used when pitch_mm is omitted. angle_deg: Optional absolute rotation applied to every part.

ParametersJSON Schema
NameRequiredDescriptionDefault
gap_mmNo
pitch_mmNo
angle_degNo
directionNox
referencesYes
start_x_mmYes
start_y_mmYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the burden. It usefully discloses atomicity ('one undo step') and the fallback behavior of courtyard-to-courtyard packing when pitch_mm is omitted, which is real behavioral context. It is silent on permissions, whether existing placements or locks are affected, and error behavior for non-existent references.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the one-line purpose, then a structured Args block where every entry adds distinct meaning. Slightly verbose in places (the multi-line pitch_mm entry) but nothing is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained. For a mutation tool with 7 parameters and no annotations, the description covers purpose, atomicity, and all parameter semantics well. It could add one line on prerequisites (e.g., parts must exist / be unlocked) to be fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must carry all parameter meaning, and it does: it documents references ordering with an example, the start origin, the pitch-vs-gap interaction and fallback, direction values ('x' row / 'y' column), and angle_deg as an absolute rotation. This is comprehensive compensation for a completely undescribed schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource+scope: 'Line several parts up in a row or column in one undo step.' The agent can distinguish this from single-item siblings like move_footprint or rotate_footprint. It does not explicitly name a sibling alternative like place_relative or batch_move_footprints, so the sibling differentiation is implied rather than stated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The 'one undo step' phrasing implies this is the atomic way to arrange multiple parts at once, and the pitch/gap/direction semantics imply the batch-arrangement use case. However, there is no explicit when-to-use vs when-not guidance and no mention of alternatives such as place_relative for single-part placement.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

autorouteA

Route the remaining connections with Freerouting.

Typical flow: set net classes (configure_netclasses), route or pour the high-current nets yourself, then autoroute the rest with those classes in skip_netclasses. Existing tracks are locked so they are not moved.

With the board open in KiCad it is saved, backed up (.pre-autoroute.kicad_pcb), routed on disk, and reloaded into the editor - that replaces the editor's undo history, so the backup is the way back. Afterwards zones are refilled and DRC runs; always read 'drc_after' (copper text and some keepouts are invisible to Freerouting).

Args: max_passes: Autorouter pass limit (honoured by Freerouting 2.2+). timeout_s: Hard limit for the Freerouting run, in seconds. lock_existing: Keep existing tracks exactly where they are. skip_netclasses: Net classes Freerouting must not route, e.g. ['HighCurrent']. board_file: Route this .kicad_pcb on disk instead of the open board.

ParametersJSON Schema
NameRequiredDescriptionDefault
timeout_sNo
board_fileNo
max_passesNo
lock_existingNo
skip_netclassesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does so: it discloses that the open board is saved and backed up to <board>.pre-autoroute.kicad_pcb, that routing happens on disk then reloads, that this wipes the editor undo history, that existing tracks are locked, and that zones are refilled and DRC run afterward.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the action, then workflow, then side effects, then args — well structured. Slightly long, and the Args block partly restates parameter names, but each entry adds semantics rather than padding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex, side-effecting operation it covers prerequisites, destructive consequences (undo history loss, backup as the way back), post-steps (zone refill, DRC), and points to the 'drc_after' result field; with an output schema present it need not detail return values further.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate, and it does: all five parameters are explained with meaning beyond their names (max_passes needs Freerouting 2.2+, timeout_s is a hard limit in seconds, lock_existing keeps tracks in place, skip_netclasses takes e.g. ['HighCurrent'], board_file routes an on-disk file instead of the open board).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Route the remaining connections with Freerouting') and scopes it to what is left unrouted, which distinguishes it from sibling adders like route_pads, add_track, and add_track_path.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives an explicit ordered workflow ('set net classes (configure_netclasses), route or pour the high-current nets yourself, then autoroute the rest with those classes in skip_netclasses'), naming the prerequisite tool and the when-not condition for high-current nets.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

batch_move_footprintsA

Move/rotate several footprints in a single undo step.

Args: moves: List of objects with keys 'reference', 'x_mm', 'y_mm', and optional 'angle_deg'. Example: [{"reference": "R1", "x_mm": 100, "y_mm": 95}, {"reference": "C1", "x_mm": 102, "y_mm": 95, "angle_deg": 90}]

ParametersJSON Schema
NameRequiredDescriptionDefault
movesYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It usefully discloses that all moves occur in a single undo step, but omits permission requirements, error handling, and behavior for missing or locked footprints.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose is front-loaded in one sentence, followed by a compact Args block and a concrete example. Every part earns its place with no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with no annotations and a vague schema, the description covers the essential call shape and the undo grouping behavior. Remaining gaps are minor but real: it does not state whether x_mm/y_mm are absolute coordinates and does not describe failure handling for invalid references.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and the nested moves array has no property documentation. The description fully compensates by naming required keys 'reference', 'x_mm', 'y_mm', optional 'angle_deg', and providing a concrete example.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (move/rotate), resource (footprints), and scope (several in one undo step). This clearly distinguishes it from sibling single-item tools like move_footprint and rotate_footprint.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies batch use through 'several footprints in a single undo step,' but gives no explicit guidance on when to prefer this over individual move/rotate calls or arrangement tools like arrange_row. Usage is inferable but not spelled out.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

calc_track_widthA

IPC-2221 minimum track width for a current, plus resistance and voltage drop when a length is given.

Args: current_a: Continuous (or worst-case, e.g. motor stall) current in amps. temp_rise_c: Allowed temperature rise above ambient (10 C is conservative). copper_oz: Copper weight (1 oz = 35 um is the usual default). internal_layer: True for inner layers (they cool worse, need ~2.5x width). length_mm: Optional track length to report resistance, drop, and loss.

ParametersJSON Schema
NameRequiredDescriptionDefault
copper_ozNo
current_aYes
length_mmNo
temp_rise_cNo
internal_layerNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden; it does disclose the conditional behavior (length triggers resistance/drop/loss) and the physical model nuance that inner layers need ~2.5x width because they cool worse. It never states that this is a side-effect-free calculation that does not touch the board, which is the key thing an agent needs to know amid a set of mutating siblings.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded summary sentence followed by a compact, line-per-parameter Args block; no filler. The opening is a noun phrase rather than a verb clause, a minor structural weakness, but the content is tight and well organized.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need no explanation, and every input is documented. For a side-effect-free calculator it is nearly complete; it could still note the assumption set (e.g., ambient, formula basis) but nothing essential to correct invocation is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate and it does: all five parameters are documented with units (amps, C, mm, oz), defaults, and physical meaning, including the non-obvious semantics of internal_layer. This fully covers the gap left by the bare schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening sentence names a specific computation (IPC-2221 minimum track width) tied to a specific input (current), and adds the two conditional outputs (resistance and voltage drop) that only appear when length is supplied. An agent can immediately distinguish this from board-mutation siblings like add_track since it is a pure calculation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit 'use this when...' vs alternative routing (the closest sibling, analyze_power_budget, is never mentioned). However, the arg documentation embeds practical selection guidance such as '10 C is conservative' and '1 oz = 35 um is the usual default', which helps with invocation but not with tool choice.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_clearanceA

Quick clearance check of tracks against other nets' copper (tracks, vias, pads), using each net's netclass clearance. Pass track IDs to check just those, or nothing to check every track. Approximate - run_drc is authoritative.

Args: item_ids: Track KIIDs to check; empty = all tracks on the board.

ParametersJSON Schema
NameRequiredDescriptionDefault
item_idsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the disclosure burden. It clearly states the check is approximate and that run_drc is authoritative, but does not explicitly state that it is read-only and does not modify the board, leaving a minor gap for a no-annotation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the tool's purpose, then scope guidance, then the important authoritative-tool caveat. The Args section is minimal and every sentence adds useful information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be described. The description adequately covers purpose, scoping, and approximation caveat, though with no annotations a brief explicit read-only note would make it fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The sole parameter is undocumented in the schema (0% description coverage), but the description compensates fully: item_ids are track KIIDs, and an empty value checks every track on the board. This adds essential runtime semantics beyond the bare anyOf schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: clearance check of tracks against other nets' copper, including the relevant copper types (tracks, vias, pads) and the netclass-clearance basis. It also distinguishes itself from the authoritative sibling run_drc.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly explains how to scope the check via track KIIDs, what an empty argument means, and names run_drc as the authoritative alternative for final verification. The agent can choose between quick approximate checking and authoritative DRC without inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_placementA

Score the current placement: courtyard overlaps, parts off the board, and total airwire (ratsnest) length. Lower airwire length usually means easier routing; compare before/after when moving parts.

Args: exclude_nets: Nets to ignore in the airwire total, typically ['GND'] when a ground pour will connect it. top_airwires: How many of the longest airwires to list.

ParametersJSON Schema
NameRequiredDescriptionDefault
exclude_netsNo
top_airwiresNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the burden. It discloses which measurements are produced and the interpretation of airwire length ('lower usually means easier routing'), which implies a read-only analysis, but never states that nothing is modified, nor any cost, permissions, or side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short and front-loaded: the measurement scope comes first, then the interpretation, then per-argument notes. No filler sentences, though the line-wrapped arg notes are slightly less polished.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be described. Combined with the metric list and fully explained parameters, the definition gives an agent enough to call it correctly; only mutation-safety and inter-tool routing are left implicit.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate, and it does: exclude_nets is explained with a concrete typical value ('GND') and the reason (a ground pour will connect it), and top_airwires is explained as the count of longest airwires to list. Both parameters gain meaning beyond the bare schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource ('Score the current placement') and enumerates the exact metrics computed: courtyard overlaps, off-board parts, and total airwire length. This clearly separates it from siblings like check_clearance or run_drc, though it never names those alternatives explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives a workflow hint ('compare before/after when moving parts'), which implies usage during iterative placement, but offers no explicit when-not guidance or comparison against the similar-sounding check_clearance and run_drc siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

clear_selectionB

Clear the current selection in the PCB editor.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden, and it offers no details beyond the operation itself. It does not clarify whether this is an in-memory/UI state change or a persistent board modification, nor any side effects or permissions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, complete sentence with no wasted words and the key action front-loaded. It is appropriately sized for a simple zero-parameter operation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple zero-parameter tool with an output schema, the description is largely sufficient; return values need not be explained. The only gap is the lack of usage context, which is a minor miss given the operation's self-evident nature.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so the baseline is 4. There are no parameter semantics to document, and the schema fully covers the empty argument object.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Clear') and resource ('current selection') with scope ('in the PCB editor'). It is clearly distinguishable from siblings like get_selection or select_items, though it does not explicitly name an alternative to route the agent.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use guidance, prerequisites, or mention of alternatives is provided. The agent must infer that this is used to deselect everything, with no explicit context for choosing it over related selection tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

configure_netclassesA

Create/update net classes and assign nets to them in the .kicad_pro file. Widths can be derived from current (IPC-2221) instead of fixed numbers.

The project must be CLOSED in KiCad (both editors): KiCad keeps project settings in memory and would overwrite this change on its next save. Reopen it afterwards and the nets pick up their classes.

Args: classes: One object per class, e.g. [{"name": "Power", "current_a": 1.5, "nets": ["+5V", "VMOT"]}, {"name": "Motor", "current_a": 2.5, "nets": ["AO1", "AO2"]}, {"name": "Signal", "track_width_mm": 0.25, "nets": ["/*"]}] Keys: name (required); nets (names or KiCad wildcard patterns - plain names also match their '/NAME' root-sheet form); current_a (sizes the track via IPC-2221) or track_width_mm; clearance_mm; via_diameter_mm; via_drill_mm; priority (lower wins when patterns overlap). project_path: .kicad_pro file or its folder; default = project of the open board. temp_rise_c: Temperature rise used for current-based widths. copper_oz: Copper weight used for current-based widths. replace_patterns: Drop all existing net-class patterns first.

ParametersJSON Schema
NameRequiredDescriptionDefault
classesYes
copper_ozNo
temp_rise_cNo
project_pathNo
replace_patternsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations the description carries the full burden and does well: it explains that KiCad would overwrite the change on next save, that replace_patterns drops all existing patterns (a destructive effect), and that priority 'lower wins' on overlap. It does not cover permissions or failure modes, but for a local file-editing tool the disclosure is strong.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose and the project-must-be-closed constraint are front-loaded before the args. The args block is long but every line documents a distinct key or behavior, so it earns its space; only mild verbosity keeps it off a 5.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 5-parameter mutation tool with no annotations and an output schema already present, the description supplies the preconditions, per-field semantics, nesting example and destructive behavior needed to call it correctly. Nothing material is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate, and it does: it enumerates the classes object keys (name required, nets with KiCad wildcard/root-sheet matching, current_a IPC-2221 sizing vs track_width_mm, clearance_mm, via_diameter_mm, via_drill_mm, priority) and explains project_path, temp_rise_c, copper_oz and replace_patterns, with a concrete example.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Create/update net classes and assign nets to them') plus the target artifact (.kicad_pro file). An agent can distinguish it from read-only siblings like list_netclasses and get_netclass_config without opening a schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a critical precondition ('The project must be CLOSED in KiCad ... Reopen it afterwards') and the current-vs-fixed width choice. However it never explicitly routes to alternatives (e.g. use list_netclasses/get_netclass_config to inspect first), so it is clear context rather than full when/when-not/alternative guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_itemsA

Delete board items by their KIID strings (single undo step).

Args: item_ids: Item KIID strings from any list_* tool.

ParametersJSON Schema
NameRequiredDescriptionDefault
item_idsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full disclosure burden. It usefully reveals '(single undo step)', which tells the agent deletion is reversible in one action, but it omits any permission/scope requirements or what happens to dependent items. Partial but genuine behavioral value.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the action, then the undo qualifier, then a short Args block. Efficient overall; the Args line slightly restates the schema but stays brief.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained. For a one-parameter destructive tool the description covers the action, the ID source, and undo behavior, leaving only permissions unaddressed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The single parameter has 0% schema description coverage, so the description must compensate, and it does: it names item_ids as KIID strings and specifies they come from any list_* tool, which is real sourcing guidance beyond the bare array-of-strings schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Delete) and resource (board items) and qualifies the identifier type (KIID strings). No sibling competes for this operation, and an agent can immediately tell it apart from select_items, set_items_locked, or the list_* family.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The clause 'Item KIID strings from any list_* tool' implies the upstream workflow (obtain IDs via a list tool), but there is no explicit when-to-use guidance, no when-not, and no named alternative. Usage is inferred rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

execute_kipyA

Run arbitrary Python against the live KiCad session (FULL-CONTROL escape hatch).

Use this for anything not covered by a dedicated tool. The code runs in-process with these names pre-bound:

  • kicad: connected kipy.KiCad instance

  • board: the open Board, or None if no PCB is open

  • schematic: the open Schematic, or None

  • kipy, board_types, geometry, commit

  • Vector2, Angle, BoardLayer, KiCadObjectType

Conventions:

  • Internal units are nanometres; build points with Vector2.from_xy_mm(x, y).

  • Group board edits in a single undo step: with commit(board, "my change"): board.create_items(item)

  • Assign a variable named result to return structured data; anything printed to stdout is also captured.

Args: code: Python source to execute. autosave: If True and a board is open, save it after the code runs.

Example: code = ''' from kipy.board_types import Track from kipy.geometry import Vector2 t = Track() t.start = Vector2.from_xy_mm(10, 10) t.end = Vector2.from_xy_mm(20, 10) t.width = 250000 # 0.25 mm in nm t.layer = BoardLayer.BL_F_Cu with commit(board, "api track"): created = board.create_items(t) result = [c.id.value for c in created] '''

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYes
autosaveNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does well: it discloses in-process execution, the pre-bound names, nanometre internal units, undo grouping via a commit context manager, result-variable return, stdout capture, and autosave semantics. It stops short of flagging that arbitrary code can be destructive or irreversible, which is the one behavioral caveat an escape hatch should spell out.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the purpose and escape-hatch framing, then organized into bindings, conventions, args, and a worked example. The example is lengthy but earns its place for an arbitrary-code tool; the block is dense with no filler sentences.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex, full-control tool with no annotations and 0% schema coverage, the description supplies everything needed to invoke it safely and correctly: available bindings, unit conventions, mutation pattern, and output channel. An output schema exists, and the description reinforces rather than duplicates it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate, and it does: it explains that `autosave` saves the open board after the code runs (conditional on a board being open) and defines how `code` communicates output via a `result` variable and captured stdout. The `code` parameter itself is only trivially described, keeping this from a 5.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Run arbitrary Python against the live KiCad session') and immediately frames the scope as a FULL-CONTROL escape hatch. The routing statement 'anything not covered by a dedicated tool' cleanly distinguishes it from the 70+ dedicated siblings like add_track or move_footprint.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives an explicit selection rule: use this only for what the dedicated tools don't cover, which is exactly the decision an agent faces given the dense sibling list. It also names the prerequisites implicitly (a live session, an open Board/Schematic) and the fact those bindings may be None.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

expand_textA

Expand ${...} text variables in a string using the project's values.

Args: text: Text possibly containing ${VAR} references.

ParametersJSON Schema
NameRequiredDescriptionDefault
textYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It does disclose the two useful behavioral facts that this is a pure string transform and that values come from the project's variable store, but it is silent on what happens when a referenced variable is undefined or malformed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded one-sentence purpose, then a compact Args block. The parameter line is mildly redundant with the first sentence but earns its place by giving the ${VAR} format.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return-value shape is already covered, and the tool takes one simple parameter. The description is nearly complete for such a small tool; only the undefined-variable/error behavior is unaddressed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% and the single parameter has no schema description, but the description compensates by documenting the expected content ('Text possibly containing ${VAR} references'), telling the agent the input format beyond the bare string type.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Expand ${...} text variables in a string') and the data source ('the project's values'), which is enough for an agent to distinguish it from the sibling get_text_variables/set_text_variable tools. It stops short of naming those siblings explicitly, so it lands just below the top band.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the purpose: it is the tool that turns stored variables into resolved text, versus get_text_variables (list) and set_text_variable (define). However, no explicit when-to-use, when-not-to-use, or alternative is stated, so the agent must infer the routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

export_bomA

Export a bill of materials (CSV) from the open schematic.

Args: output_path: Destination .csv file. schematic_path: Explicit .kicad_sch path (defaults to the open project's). save_first: Save the schematic before exporting.

ParametersJSON Schema
NameRequiredDescriptionDefault
save_firstNo
output_pathYes
schematic_pathNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It usefully discloses the save_first behavior and that schematic_path defaults to the open project, but says nothing about overwriting an existing CSV, required permissions, or side effects of the export. Partial behavioral context only.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the purpose sentence, then a compact Args list that maps cleanly to the parameters. Minimal waste, though the leading and trailing whitespace and bare 'Args:' block are slightly less polished than prose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values needn't be explained, and the three parameters are covered. However, for a file-writing export tool with no annotations, the description omits overwrite behavior and failure modes, leaving an agent without enough to predict side effects.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% and 3 parameters exist, so the description must compensate and largely does: it documents output_path as the destination .csv, schematic_path as an explicit .kicad_sch defaulting to the open project, and save_first as saving before export. It adds real meaning beyond the bare schema, though it doesn't clarify path format or relative-vs-absolute handling.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Export), resource (bill of materials CSV), and source (the open schematic). This cleanly distinguishes it from siblings like export_netlist, export_gerbers, and export_pdf, so an agent can route correctly without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage context (requires an open schematic or an explicit schematic_path) but never states when to prefer this over sibling export tools or any exclusions. Usage is inferable but not spelled out.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

export_drillA

Export drill files (Excellon) for the open PCB into a directory.

Args: output_dir: Destination directory (created if needed). save_first: Save the board before exporting.

ParametersJSON Schema
NameRequiredDescriptionDefault
output_dirYes
save_firstNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It adds some useful context: output_dir is 'created if needed' and save_first 'Save the board before exporting.' However, it does not disclose whether existing files are overwritten, what happens on failure, or any permission requirements, leaving meaningful behavioral gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is tightly structured: a single-sentence purpose statement followed by a compact Args section. Every sentence serves a purpose, and the core action is front-loaded. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple export tool with an output schema already documenting return values and no annotations to cover, the description is largely complete. It covers purpose and both parameters adequately. A minor gap remains regarding overwrite behavior and error conditions, but these are not critical for basic invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate for the schema's lack of parameter documentation. It defines both parameters: output_dir as the destination directory (created if needed) and save_first as saving the board before exporting. This adds clear meaning beyond the bare schema titles, though it could include more detail on path format or overwrite behavior.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Export drill files (Excellon) for the open PCB into a directory.' It clearly distinguishes this tool from other export siblings (e.g., export_gerbers, export_step) by naming the exact file type and format. An agent can identify the tool's purpose without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description offers no explicit guidance on when to use this tool versus alternatives like export_gerbers or export_pos. It merely restates the tool's action, leaving the agent to infer usage context entirely. No prerequisites, exclusions, or comparative conditions are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

export_gerbersA

Export Gerber files for the open PCB into a directory.

Args: output_dir: Destination directory (created if needed). layers: Optional comma-separated layer list, e.g. 'F.Cu,B.Cu,Edge.Cuts'. Empty exports all enabled plottable layers. save_first: Save the board before exporting.

ParametersJSON Schema
NameRequiredDescriptionDefault
layersNo
output_dirYes
save_firstNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It discloses that output_dir is created if needed, that empty layers exports all enabled plottable layers, and that save_first saves the board before exporting. However, it omits important write-safety details such as whether existing files are overwritten or how errors are handled.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the purpose in one sentence, then uses a clean Args list. No redundant or filler text; every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 3-parameter export tool with no annotations and an output schema, the description covers purpose, parameter semantics, and key side effects well. It lacks usage routing among sibling export tools and edge-case behavior like overwrite handling, but is otherwise complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It fully documents all three parameters: output_dir (created if needed), layers (comma-separated list with example and empty default meaning all enabled plottable layers), and save_first (saves board before exporting). This adds substantial meaning beyond the bare schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Export') and resource ('Gerber files for the open PCB'), with clear scope ('into a directory'). The file format inherently distinguishes it from sibling export tools like export_drill or export_step, though no sibling is named explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit when-to-use guidance or alternatives are provided. It only implies use when Gerber files are needed, without helping the agent choose between this and other export_* siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

export_netlistB

Export a netlist from the open schematic.

Args: output_path: Destination netlist file (e.g. .net). schematic_path: Explicit .kicad_sch path (defaults to the open project's). save_first: Save the schematic before exporting.

ParametersJSON Schema
NameRequiredDescriptionDefault
save_firstNo
output_pathYes
schematic_pathNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

There are no annotations, so the description carries the full behavioral burden. It does disclose a real side effect — that the schematic may be saved first — but says nothing about file overwrite behavior, failure modes, or permissions. Given zero annotation coverage, this is a partial but incomplete behavioral picture.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose is front-loaded in the first sentence, followed by terse per-argument notes. No wasted sentences, though the docstring 'Args:' block is functional rather than elegantly integrated.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need no explanation, and all three inputs are documented. For a simple single-target export tool with no annotations, the description is nearly complete; only behavioral edge cases are missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must supply parameter meaning, and it does: it documents all three params, gives a format hint (e.g. .net), explains schematic_path defaults to the open project, and clarifies save_first's behavior. This substantially compensates for the bare schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Export a netlist') and the source ('from the open schematic'), which cleanly separates it from the export_gerbers/export_step/export_bom siblings. It does not explicitly name an alternative, but the purpose is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use guidance, prerequisites, or alternatives are given. The reader must infer that this runs against the currently open project. Nothing tells the agent when netlist export is the right choice versus other export tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

export_pdfB

Export a PDF plot of selected PCB layers.

Args: output_path: Destination .pdf file. layers: Comma-separated layers to plot. save_first: Save the board before exporting.

ParametersJSON Schema
NameRequiredDescriptionDefault
layersNoF.Cu,B.Cu,Edge.Cuts
save_firstNo
output_pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It does disclose one meaningful behavioral trait – that the board is saved before export (default true) – via the save_first argument, but it says nothing about overwriting an existing PDF, what the plot contains, or whether this requires a loaded document.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose sentence is front-loaded and the Args block is terse, with no filler. The key action and scope are readable at a glance.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be described, and all three inputs are covered. For a simple one-shot export tool the picture is nearly complete; only when-to-use routing and overwrite behavior are missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate, and it does document all three parameters: output_path as the destination .pdf, layers as a comma-separated list, and save_first as a pre-export save. It omits the schema defaults (F.Cu,B.Cu,Edge.Cuts and true), which would be useful for an agent choosing whether to pass layers at all.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource ('Export a PDF plot of selected PCB layers'), and the PDF format implicitly distinguishes it from siblings like export_gerbers, export_svg, and export_step. It stops short of explicitly naming an alternative, so it is clear but not fully sibling-differentiated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to choose this over the other export_* siblings or when it is unnecessary. The agent must infer the use case entirely from the purpose sentence.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

export_posA

Export a component placement (pick-and-place) file.

Args: output_path: Destination file. fmt: 'csv', 'ascii', or 'gerber'. side: 'front', 'back', or 'both'. save_first: Save the board before exporting.

ParametersJSON Schema
NameRequiredDescriptionDefault
fmtNocsv
sideNoboth
save_firstNo
output_pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden. It does disclose that save_first saves the board before exporting, and it defines the allowed values for fmt and side. However, it omits key behaviors such as whether output_path is overwritten, whether the board must already be open, and any error conditions or side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded: the purpose appears in the first sentence, followed by a clear Args list. Every sentence contributes useful information, and there is no redundant filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has 4 parameters, no annotations, and an output schema (so return values need not be explained). The description covers purpose and parameter meanings, but it lacks usage routing among sibling exports and deeper behavioral context such as overwrite behavior and preconditions, leaving gaps for an agent with no annotation support.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate, and it does document all four parameters, including the allowed values for fmt ('csv', 'ascii', 'gerber') and side ('front', 'back', 'both'). It stops short of stating defaults (csv, both, true) or output_path format constraints, but it adds substantial meaning beyond the bare schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Export a component placement (pick-and-place) file.' This clearly distinguishes it from sibling export tools such as export_gerbers, export_bom, or export_step. An agent can immediately tell what this tool produces without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance about when to use this tool versus the many other export tools in the sibling list. It does not state prerequisites or conditions, such as requiring an open board or needing the board saved first. The argument list is informative but does not address usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

export_stepA

Export a 3D STEP model of the open PCB.

Args: output_path: Destination .step/.stp file. save_first: Save the board before exporting.

ParametersJSON Schema
NameRequiredDescriptionDefault
save_firstNo
output_pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It does disclose one real behavioral trait — that save_first saves the board before export, a side effect worth knowing — but says nothing about overwrite behavior, required permissions, or what the tool writes beyond the destination path.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded one-line purpose followed by a tight Args block; no waste. The Args format is a docstring convention rather than prose, but it is efficient and readable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need no explanation, and both parameters are covered in the description despite 0% schema coverage. It is adequate for a simple two-parameter export, with only minor gaps around failure/overwrite behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate, and it largely does: it explains output_path as the destination .step/.stp file and save_first as a pre-export save. It adds meaning beyond the bare property names, though it omits the save_first default value already encoded in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Export) and resource (3D STEP model of the open PCB), which cleanly distinguishes it from sibling exports like export_gerbers, export_pdf, export_svg, export_pos and from render_3d. An agent can pick it out without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use context, no prerequisites, and no reference to the obvious alternative (render_3d) or related exports. The agent is left to infer that this is the STEP-specific export path.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

export_svgB

Export an SVG plot of selected PCB layers.

Args: output_path: Destination .svg file. layers: Comma-separated layers to plot. save_first: Save the board before exporting.

ParametersJSON Schema
NameRequiredDescriptionDefault
layersNoF.Cu,B.Cu,Edge.Cuts
save_firstNo
output_pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It usefully discloses the save_first side effect (board is saved before exporting) and that output goes to a file, but says nothing about overwrite behavior, whether directories are created, required permissions, or error conditions for an invalid path.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core action in the first line, followed by a compact per-parameter list. Efficient with little waste, though the Args block largely restates parameter names already visible in the schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained. All three parameters are addressed and the save-first behavior is noted, making it adequate for invoking the tool; only format-selection reasoning relative to sibling exporters is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate, and it documents all three parameters: output_path as a destination .svg file, layers as comma-separated layers, and save_first as saving the board first. It omits the default layer set (F.Cu,B.Cu,Edge.Cuts) and the save_first default of true, which schema provides separately.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Export) and resource (SVG plot of selected PCB layers), which is clear and distinct from sibling exporters like export_pdf and export_gerbers. It stops short of explicitly telling the agent how it differs from those format alternatives, so it is clear but not sibling-differentiating.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to choose export_svg over export_pdf, export_gerbers, or render_3d, nor any prerequisites (e.g., a board must be open). Usage is only implied by the tool's name and the word 'selected'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

flip_footprintA

Move a footprint to the other side of the board (front <-> back), mirrored in place.

Args: reference: Footprint to flip.

ParametersJSON Schema
NameRequiredDescriptionDefault
referenceYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It usefully discloses the key side effect (mirrored in place on the opposite board side), but says nothing about permissions, selection requirements, what happens on failure, or whether the footprint's position is otherwise preserved.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with the effect front-loaded and the parameter restated compactly. Every line earns its place; no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter mutation with an output schema present, the description covers the essential transformation without needing to explain return values. It stops short on error/precondition behavior, which is minor at this complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. 'reference: Footprint to flip.' clarifies that the parameter identifies the target footprint, but doesn't specify the expected format (e.g. a reference designator like 'R1'), leaving a meaningful gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (flip/move) and resource (footprint), and the parenthetical 'front <-> back, mirrored in place' precisely distinguishes it from siblings like move_footprint and rotate_footprint. An agent can tell this is a side-swap operation without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The action is clear but there is no explicit when-to-use guidance, prerequisites, or comparison to the many placement siblings (move_footprint, rotate_footprint, place_near_pad). Usage is only implied by the stated effect.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

freerouting_statusA

Report whether autorouting can run: Java version, installed Freerouting jars, and KiCad's Python (needed for DSN/SES conversion).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden. It discloses what is inspected (Java version, jars, Python), which implies a read-only diagnostic, but it does not explicitly state that it has no side effects, requires no permissions, or is safe to call at any time.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence lists the purpose and the exact checks performed. Every clause earns its place with no redundancy or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given a zero-parameter diagnostic tool with an output schema that documents return values, the description sufficiently explains what the tool reports. It is slightly incomplete in not stating usage timing or explicitly confirming read-only behavior, but the core information needed to call it correctly is present.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters and a 100% schema description coverage for an empty object. With no parameters to document, the baseline of 4 applies; the description cannot add parameter meaning beyond what the empty schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Report') and a precise resource ('whether autorouting can run'), then enumerates the three checks: Java version, Freerouting jars, and KiCad's Python. This scope clearly distinguishes it from siblings like install_freerouting (installation), autoroute (execution), and kicad_status (broader KiCad status).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the purpose ('Report whether autorouting can run'), suggesting it should be called before autorouting or when troubleshooting. However, it does not explicitly say when to use it, when not to use it, or name alternatives such as install_freerouting if prerequisites are missing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_board_outlineA

Return all graphic shapes on the Edge.Cuts layer (the board outline).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. The verb 'Return' does imply a non-mutating read, which is useful, but the description says nothing about ordering, whether text/dimensions on Edge.Cuts are included, or coordinate format. It stops short of the behavioral disclosure a no-annotation tool ideally provides.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single tight sentence with the layer constraint front-loaded and the parenthetical gloss doing real clarification work. No filler words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return-value shape need not be described, and this is a parameterless read tool. The only shortfall is the absence of a document-open precondition or a pointer to the more general list_shapes sibling.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so there is nothing for the description to disambiguate; the baseline of 4 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Return') and resource ('all graphic shapes on the Edge.Cuts layer'), and parenthetically equates it to the board outline, which is genuinely clarifying for agents that don't know KiCad layering. It does not, however, distinguish itself from the neighboring list_shapes or get_bounding_box tools, which could plausibly return overlapping data.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no preconditions (e.g., an open document), and no named alternative. An agent must infer from the name that this is the outline-specific query rather than a general shape listing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_board_summaryA

Return counts and basic metadata for the open PCB.

Includes element counts, copper layer count, board file name, and bounding box extents in millimetres.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the burden of behavioral disclosure. The verb 'Return' and the listed output fields imply a safe read-only query, but the description does not explicitly state side effects, permissions, or whether an open board is required; it is adequate but not rich.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two short sentences and front-loads the main purpose. The second sentence efficiently lists the returned data without unnecessary detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given a simple zero-parameter, read-only tool with an output schema, the description is complete enough to call correctly. It summarizes the purpose and return contents, and the output schema handles detailed return-value documentation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the baseline is 4. The empty input schema is self-explanatory and there are no parameter meanings for the description to clarify.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Return counts and basic metadata for the open PCB.' It also enumerates the included data (element counts, copper layer count, board file name, bounding box extents), which distinguishes it from sibling listing tools such as list_board_layers and get_bounding_box.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no explicit when-to-use guidance and names no alternatives. It implies this is for summarizing the currently open PCB, but it does not say when to prefer it over get_bounding_box, get_board_outline, or other summary/list tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_bounding_boxA

Return KiCad-computed bounding boxes for the given item IDs.

Args: item_ids: Item KIID strings (from any list_* tool). include_text: Include child reference/value text in footprint boxes.

ParametersJSON Schema
NameRequiredDescriptionDefault
item_idsYes
include_textNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the burden. It usefully discloses that boxes are 'KiCad-computed' (authoritative source) and explains the include_text effect, but omits units, coordinate system, and whether the operation has any side effects or permissions requirements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The single-line purpose is front-loaded, followed by a compact Args block. No wasted prose, though the Args formatting is slightly redundant with a schema that already names both parameters.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values needn't be explained, and both parameters are covered in the description. The main gap is the absence of any statement about units or coordinate reference for the returned boxes, but overall it is sufficient for an agent to call the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate, and it does: it explains that item_ids are KIID strings sourced 'from any list_* tool' and that include_text controls inclusion of child reference/value text in footprint boxes. These add real meaning beyond the bare schema types.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: 'Return KiCad-computed bounding boxes for the given item IDs.' An agent can distinguish this from siblings like get_footprint_geometry or get_board_summary. However, it does not explicitly contrast itself with those neighbors, so it falls short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied through the parenthetical '(from any list_* tool)', which hints at a workflow but never states when to reach for this tool over alternatives like get_footprint_geometry or check_placement. No when-not guidance or exclusions are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_connected_itemsB

Find items copper-connected to a given item (by KIID).

Args: item_id_str: KIID string of the source track/via/pad.

ParametersJSON Schema
NameRequiredDescriptionDefault
item_id_strYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden; it does disclose the connectivity semantics (copper-connected) and that input is identified by KIID, which is meaningful context. However, it omits whether results are direct-only or transitive, whether it is read-only, and any scope/limit behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short lines, front-loaded with the core purpose before the Args block. Efficient, with no wasted sentences, though the Args formatting is slightly verbose for a single parameter.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be described. Still, for a connectivity query the traversal depth (direct vs transitive) and result scope are materially important and unstated, leaving a genuine gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% (the schema only says 'string'), so the description must compensate, and it does: it names the argument and clarifies it is a KIID for a source track/via/pad. That is real meaning beyond the schema, though it could note valid KIID formats.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (find) and resource (items copper-connected to a given item), which is distinguishable from sibling queries like get_items_by_net or list_tracks. It does not explicitly contrast with those siblings, but the connectivity-based scope is clear.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no when-to-use guidance, no alternatives (e.g., get_items_by_net for net-membership queries), and no prerequisites. The agent must infer that this is a post-selection connectivity exploration tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_design_rulesA

Return the board's minimum design-rule constraints in mm (best effort).

Falls back to an explanatory message if the running KiCad build does not expose design rules over the API.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does disclose a genuinely useful behavioral trait: it is best-effort and falls back to an explanatory message when the KiCad build does not expose design rules over the API. It does not state permissions or whether the values are authoritative for DRC.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, unit of measure front-loaded in the first line, degradation behavior second. Nothing extraneous.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so the description need not enumerate return fields; it still contributes the unit (mm) and the fallback behavior. Adequate for a zero-parameter read tool, though a note on how these rules relate to run_drc would complete it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so there is nothing for the description to disambiguate; baseline 4 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Return the board's minimum design-rule constraints in mm'), which is clearly distinct from sibling checks like run_drc or check_clearance. It does not explicitly name or contrast against those siblings, so it stops short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The 'best effort' framing implies this is a lightweight read-only query, but the description never says when to call it versus run_drc, check_clearance, or get_netclass_config. Usage is only implied by context, not stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_footprintC

Return full detail for a single footprint by reference designator.

Args: reference: Reference designator, e.g. 'U1'. include_pads: Include the footprint's pads.

ParametersJSON Schema
NameRequiredDescriptionDefault
referenceYes
include_padsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden. It implies a read operation but does not state whether it returns cached or live data, what happens if the reference is not found, or what errors may occur. For a lookup tool with zero annotation coverage, this is minimal.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the essential action and then uses a compact per-argument list. It is appropriately sized, though the docstring-style formatting is slightly less polished than a flowing description.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return-value explanation is not required. Still, with no annotations and 0% schema description coverage, the description should say more about what 'full detail' includes and what happens on invalid references, leaving it only minimally complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It explains 'reference' with an example ('U1') and says 'include_pads' includes pads, which is slightly beyond the raw property titles. However, it does not explain the default behavior (true) or the format/shape of returned pads, so it only partially fills the gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a clear verb+resource: 'Return full detail for a single footprint by reference designator.' It distinguishes a detail-getter from the sibling list_footprints and get_footprint_geometry, though it does not explicitly name those neighbors.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use or when-not-to-use guidance. With siblings like list_footprints and get_footprint_geometry present, the description should say when to use this detail-retrieval tool instead of listing footprints or fetching only geometry, but it offers no such routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_footprint_geometryA

Position, rotation, side, courtyard box, and every pad (number, net, position, size) of one footprint. Use this before placing or routing around a part.

Args: reference: Reference designator, e.g. 'U1'.

ParametersJSON Schema
NameRequiredDescriptionDefault
referenceYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden. It lists the data returned but never states that it is a read-only/non-mutating call, nor anything about permissions, cost, or failure modes; the only behavioral hint is the implicit 'get'.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the return contents, then usage, then the arg; every sentence is functional. The 'Args:' block is slightly formal but not wasteful.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter read tool with an output schema present, the description supplies purpose, the one arg's meaning, and a usage trigger. The only omission is any behavioral/permission context, which for a non-annotated tool is a modest gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must supply parameter meaning, and it does: it defines 'reference' as a reference designator and gives a concrete example ('U1'). That is more than the bare title in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific resource (one footprint) and enumerates the exact contents returned: position, rotation, side, courtyard box, and every pad with number/net/position/size. It is clearly a geometry-read tool, though it never explicitly distinguishes itself from sibling get_footprint or list_footprints.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Use this before placing or routing around a part' gives a concrete workflow context for when to call it. It stops short of naming alternatives (get_footprint, get_bounding_box) or stating when not to use it, so it is clear context without exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_items_by_netB

Summarise every board item belonging to a net (counts by type + IDs).

Args: net_name: The net name, e.g. 'GND'.

ParametersJSON Schema
NameRequiredDescriptionDefault
net_nameYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the burden. It discloses the output shape ('counts by type + IDs'), and 'Summarise' implies a read-only operation, but it says nothing about permissions, rate limits, or behavior on an unknown/nonexistent net.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded single sentence plus an args block, with essentially no waste. Well sized for the operation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values needn't be explained; the description still summarizes them. For a simple one-param read query, this is largely complete, missing only usage routing and edge-case behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% and the single param only has the title 'Net Name'. The description compensates partially by giving an example value ('GND'), which clarifies the expected format, but adds no rules for case-sensitivity or matching semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Summarise') and resource ('every board item belonging to a net') with a clear output note (counts by type + IDs). This is distinguishable from list_nets or get_connected_items in spirit, though no sibling is explicitly named, so it falls short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no statement of when to use this tool versus alternatives like get_connected_items or list_tracks. Usage must be inferred entirely from the name and description, which is a clear gap.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_kicad_binary_pathA

Return the full path to a bundled KiCad binary (e.g. 'kicad-cli').

Args: binary_name: Short binary name; '.exe' is assumed on Windows.

ParametersJSON Schema
NameRequiredDescriptionDefault
binary_nameNokicad-cli

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the burden. It discloses one useful behavioral detail: '.exe' is assumed on Windows, implying platform-specific path resolution. It says nothing about whether the binary is guaranteed to exist, whether installation is required, or any error behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One sentence plus a compact Args block; the core purpose is front-loaded and every line earns its place. No filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a trivial path-lookup utility with an output schema present, the description covers what the tool does and the one non-obvious parameter behavior. It is nearly complete; only a note on failure/absence of the binary would improve it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With one parameter and 0% schema description coverage, the description has to compensate, and it does: it defines binary_name as a 'short binary name' and explains the implicit '.exe' suffix behavior on Windows. The schema supplies the default value ('kicad-cli'), so the combination is adequate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: returns the full path to a bundled KiCad binary, with a concrete example ('kicad-cli'). It does not, however, differentiate itself from siblings like kicad_status or run_kicad_cli, which an agent might confuse it with.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no indication of when to call this versus alternatives, nor any prerequisites or workflow context. The agent must infer that this is a utility for locating the CLI executable before running it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_netclass_configA

Read net classes and net-to-class patterns from the project file (works with KiCad closed). list_netclasses reads the live values from a running KiCad.

Args: project_path: .kicad_pro file or its folder; default = project of the open board.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_pathNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the behavioral burden, and it does disclose a meaningful trait: it reads from the project file and functions without a running KiCad instance. It doesn't cover permissions, error behavior, or file-not-found cases, but for a read-only config read the added context is solid.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the core action in the first clause, then the discriminating detail in the next sentence. The Args block is not redundant because the schema carries no parameter descriptions, so it earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need no explanation, and the description covers purpose, selection rationale, and the one parameter's semantics. Nothing critical is missing for a simple read tool, though edge cases (bad path, missing project) are unaddressed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate, and it does: it explains project_path accepts a .kicad_pro file or its folder and clarifies what the empty default resolves to ('project of the open board'). This adds real meaning beyond the bare schema, though the accepted path resolution details remain thin.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Read) and resource (net classes and net-to-class patterns) plus the exact source (the project file). It explicitly distinguishes itself from sibling list_netclasses by naming that tool and its different data source, so an agent can separate the two without opening either schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives an explicit condition for choosing this tool: 'works with KiCad closed,' contrasted against list_netclasses which 'reads the live values from a running KiCad.' The when-to-use and the alternative are both named directly.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_project_infoA

Return the open project's name and path.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description bears the full burden. It discloses the return content (project name and path), which implies a harmless read, but it never explicitly states that the call has no side effects or state requirements. For a zero-argument read tool the risk is minimal, so this is adequate but not rich.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One short sentence, front-loaded with the verb and the two things returned, with zero filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return details need not be spelled out, and there are no parameters to document. For a trivial read tool this is essentially complete, only missing an explicit note that it is a side-effect-free read of the active project.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so there is nothing for the description to clarify. The baseline for a parameterless tool applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb (Return) and specific resources (the open project's name and path), so an agent immediately knows what it gets back. No sibling in the list covers the same ground, though the description never explicitly distinguishes itself from tools like get_kicad_binary_path or get_title_block.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no statement of when to use this tool versus alternatives, no prerequisites, and no exclusions. For a simple read tool this is tolerable, but the description leaves usage entirely to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_schematic_hierarchyA

Return the sheet hierarchy of the open schematic (KiCad 11+ feature).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden, and it does disclose two useful traits: the operation is a read ("Return") and it requires an open schematic plus KiCad 11+. It says nothing about failure behavior on older versions or when no document is open, leaving real gaps for a no-annotation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with the action and scope stated first and the version caveat parenthetically appended; no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple (no parameters, no nested objects) and an output schema exists, so return values need not be described. The only shortfall is the absence of any note about behavior when no schematic is open or the KiCad version predates the feature.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so per the baseline there is nothing for the description to clarify beyond what the empty schema already conveys.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb and resource ("Return the sheet hierarchy of the open schematic") and scopes it to the currently open document, which clearly separates it from siblings such as get_schematic_summary or list_symbols. It does not, however, explicitly name or contrast with those siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by "the open schematic" — the agent infers a document must already be open — and the "KiCad 11+ feature" note acts as a version prerequisite. There is no statement of when to prefer this over get_schematic_summary or what to do when the feature is unavailable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_schematic_summaryA

Return counts of symbols, labels, text, lines, and sheets in the open schematic.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the burden; "Return" implies a non-mutating read, which is the key behavioral trait for a summary tool. It nonetheless omits whether the document must be open/active, what happens if none is open, and the shape of the result, leaving gaps for a zero-annotation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence listing exactly what is counted, with no filler or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so the description need not enumerate return values, and for a zero-param summary tool the scope is adequately conveyed. The only remaining gap is the precondition that a schematic must be open, which is only weakly implied.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so the baseline is 4. There is no input to clarify, and the description correctly adds nothing spurious about inputs.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ("Return counts") and resource (symbols, labels, text, lines, sheets in the open schematic). This is clearly distinct from sibling list_symbols/list_labels/list_schematic_text, which enumerate items rather than summarize counts, though the distinction is implied rather than stated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this versus alternatives like list_symbols or get_schematic_hierarchy, and no prerequisites or exclusions are given. The phrase "in the open schematic" implies scope but not usage conditions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_selectionA

Return the items currently selected in the PCB editor (id + type).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden. 'Return' implies a non-mutating read, but this is never stated explicitly, and there is no mention of what happens when nothing is selected. It does at least disclose the returned shape (id + type), which is modest added value given an output schema already exists.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no filler; the scope ('currently selected') and the return fields are stated in the fewest words possible.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need no further explanation, and a zero-parameter read tool is inherently simple. The remaining gap is the absence of any edge-case note (e.g. empty selection) or linkage to the selection-manipulation siblings.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters and the schema is an empty object at 100% coverage, so the baseline of 4 applies. There is nothing for the description to clarify on the parameter front.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb ('Return') and resource ('the items currently selected in the PCB editor'), so the agent can immediately tell what the call does. It does not, however, distinguish itself from closely related siblings such as select_items and clear_selection, which is what would be needed for a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use statement and no reference to alternatives like select_items or clear_selection, even though these tools read or manipulate the same selection state. The agent must infer usage purely from the tool name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_stackupA

Return the board stackup: ordered layers with type, thickness, material.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden, but 'Return' plus the sibling set make the read-only nature sufficiently evident. It discloses the returned shape (layer order, type, thickness, material) which is useful context, though an output schema already exists to cover that.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence with the verb and resource front-loaded and no filler. Every clause earns its place by naming what the layers contain.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a parameterless read tool with a full output schema and no annotations, the description covers what is returned and needs no return-value prose. The only gap is routing guidance against closely related layer/summary tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Zero parameters, so there is nothing to document and no schema gap to compensate for; the baseline for a parameterless tool applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Specific verb ('Return') and resource ('board stackup'), with the returned content enumerated: ordered layers with type, thickness and material. That distinguishes it from the nearby list_board_layers, though the description never names that sibling explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use guidance at all. The description does not say when a stackup read is appropriate versus list_board_layers or get_board_summary, both of which overlap in scope, so the agent must infer the choice.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_text_variablesA

Return the project's text variables (used in ${VAR} substitutions).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden. It implies a safe read operation through 'Return' and adds semantic context about ${VAR} substitution, but it does not disclose potential prerequisites, side effects, or limitations. For a simple zero-parameter getter with an output schema, this is adequate but leaves clear gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single front-loaded sentence with zero waste. Every word earns its place by naming the verb, resource, and a useful semantic detail about ${VAR} substitutions.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the low complexity (0 parameters) and the presence of an output schema, the description is nearly complete: it states what is returned and adds substitution context. It could be strengthened by mentioning how it relates to sibling tools like expand_text, but the output schema covers return details.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the baseline is 4 per the scoring rules. Schema coverage is 100% and there are no parameter semantics to clarify beyond the empty schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Return') and resource ('project's text variables') and clarifies what the variables are used for ('${VAR} substitutions'). It is clear but does not distinguish this tool from sibling tools like set_text_variable or expand_text, which prevents a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives such as expand_text or set_text_variable. It implies a read operation but offers no context, prerequisites, or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_title_blockA

Return the board's title block fields (title, date, revision, company, comments).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden, but for a zero-parameter read it discloses the meaningful trait: exactly which fields are returned. It says nothing about whether a missing title block returns empty fields or errors, and there is no auth/rate-limit context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no filler; every word (verb, resource, field list) earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained. For a trivial parameterless getter this is nearly complete; the only omission is behavior when the title block is absent or unset.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so the baseline of 4 applies; there is nothing for the description to clarify beyond the empty argument object.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Return) and resource (the board's title block) and enumerates the exact fields retrieved (title, date, revision, company, comments). It is clearly distinct from set_title_block by the read/return framing, though it never names that sibling.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the getter semantics rather than stated: an agent infers it is for reading title block metadata. There is no explicit when-to-use, no mention of set_title_block as the mutation counterpart, and no prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_versionA

Return the connected KiCad version and the kicad-python API version.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the burden; 'Return' implies a non-mutating read with no side effects, which is the key behavioral fact for this tool. It does not state what happens when no KiCad instance is connected (error vs. null), which is the main behavioral unknown.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence with no filler, and the scope (both version strings) is stated up front. Nothing is padded or repeated from the schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter getter whose return values are covered by the output schema, the description is essentially complete. The only omission is the disconnected/error behavior, which matters for an agent deciding whether it must connect first.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so there is nothing for the description to clarify; baseline 4 applies. The schema is empty and consistent with the description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Return') and two concrete resources (KiCad version, kicad-python API version), so the agent knows exactly what it gets. It doesn't distinguish itself from the nearby 'kicad_status' or 'ping' siblings, which sound similarly diagnostic.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no stated prerequisite (an active connection is implied by 'connected' but not explained), and no mention of when to prefer this over 'kicad_status' or 'ping'. The agent must infer usage entirely.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

install_freeroutingA

Download the official Freerouting release jar from GitHub into ~/.kicad10_mcp/freerouting. 'auto' picks the newest release the installed Java can run (2.4.1 on Java 25+, 2.1.0 on Java 21-24). Freerouting is GPL-3.0 and runs as a separate program.

Args: version: 'auto' or an explicit release such as '2.1.0'.

ParametersJSON Schema
NameRequiredDescriptionDefault
versionNoauto

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It usefully discloses the install path, the Java-version compatibility mapping, and that Freerouting is GPL-3.0 and runs as a separate program. However it omits key behavioral facts: network/download requirements, whether an existing install is overwritten, and failure modes.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded and efficient, leading with the action and destination. The Args section is slightly redundant with the prose but adds the version format example, so it earns most of its space.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values need not be explained. For a single-parameter install tool the description covers location, version logic, and licensing well; only overwrite/idempotency and network behavior are missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It does: it defines 'auto' semantically and gives the format for an explicit argument ('2.1.0'), which the bare schema (string, default auto) does not convey.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Download) and resource (official Freerouting release jar) plus the exact destination (~/.kicad10_mcp/freerouting). It is clearly distinguishable from the sibling freerouting_status, which only reports state.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The 'auto' selection policy implicitly tells the agent this is a setup/install step, but there is no explicit when-to-use guidance (e.g. run before autoroute) or when-not to use it (e.g. when a version is already installed). Usage context is implied rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

kicad_statusA

Report whether KiCad is reachable, its version, and which documents are open.

Use this first to confirm connectivity before other operations.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the burden, and it discloses what is reported: reachability, version, and the set of open documents. That is genuinely informative for a status probe, though it says nothing about failure modes (e.g., what is returned when KiCad is unreachable).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the essential content and followed by the one actionable instruction. No filler or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return-value detail is not required from the description; it nevertheless previews the three key fields. For a zero-parameter connectivity probe, nothing an agent needs in order to call it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so the baseline is 4; there is nothing for the description to disambiguate. Schema description coverage is 100% and no parameter semantics are needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: reports reachability, KiCad version, and which documents are open. The purpose is unambiguous, but it does not distinguish itself from close siblings like ping, get_version, and list_open_documents, whose names suggest overlapping functionality.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

"Use this first to confirm connectivity before other operations" gives clear situational guidance, effectively a pre-flight check. It stops short of naming alternatives or exclusions (e.g., when to prefer ping or get_version), so it is clear context without full routing guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_board_layersB

Report copper layer count plus enabled, visible, and active layers (names).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. 'Report' implies a safe read-only operation and it discloses which layer categories are returned, but it never explicitly states there are no side effects or permission requirements. Adequate for a trivial read tool but not rich.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single dense sentence with zero filler, and the most important information (copper layer count) is front-loaded. Nothing more could be trimmed, though it is very terse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and with no parameters the description covers the essential scope. The only gap is not situating it relative to the layer-related siblings.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so there is nothing for the description to disambiguate beyond what the schema already conveys. Baseline 4 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Report') and resource ('copper layer count plus enabled, visible, and active layers'), making the exact scope clear. However, it doesn't differentiate from siblings like get_stackup or get_board_summary, which an agent might reasonably confuse for layer information.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no mention of alternatives such as get_stackup or the set_active_layer/set_visible_layers setters, and no prerequisites. The agent must infer usage from the name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_dimensionsB

List dimension annotations on the board.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full disclosure burden, and it does not state that this is a read-only, non-mutating operation. For a zero-parameter listing tool the risk is low and the output schema covers return shape, but the description adds no behavioral context whatsoever.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no filler or redundancy. Nothing could be trimmed without losing the resource identification.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a parameterless, non-destructive listing tool with a declared output schema, the description is nearly sufficient — the agent knows what it retrieves and the schema covers the return format. Only the lack of any usage or read-only context keeps it from being fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so there is nothing for the description to disambiguate; the baseline for a no-argument tool applies. Schema description coverage is also 100%, so structured data is not lacking.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ("List") and a specific resource ("dimension annotations on the board"), which is enough for an agent to distinguish it from the many other list_* siblings that target footprints, zones, tracks, or text. It stops short of explicitly contrasting itself with neighbors like list_text or list_groups, so it is clear but not fully differentiated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to call this versus the other list_* tools, no prerequisites (e.g. an open board), and no indication of when it is not appropriate. The agent must infer usage purely from the tool name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_footprintsB

List footprints on the open PCB.

Args: reference_filter: Case-insensitive substring match on the reference (e.g. 'R', 'U1'). value_filter: Case-insensitive substring match on the component value. include_pads: Include each footprint's pads (number, net, position).

ParametersJSON Schema
NameRequiredDescriptionDefault
include_padsNo
value_filterNo
reference_filterNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden. It discloses that the operation targets the open PCB and that filters use case-insensitive substring matching, but it does not explicitly state read-only safety, side effects, permissions, or pagination/limits. For a simple list query this is adequate but not rich.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core purpose and then structured as a short Args block. Every sentence adds useful information without redundancy, though the formatting is plain and could be slightly tighter.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return-value explanation is not required. The description adequately explains the three input parameters and the tool's scope, but it omits usage guidance and sibling differentiation, which are relevant given the large number of related listing tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate for all three parameters. It explains reference_filter as a case-insensitive substring match on the reference with examples, value_filter as a match on component value, and include_pads as adding pad details (number, net, position). This adds substantial meaning beyond the schema titles, though defaults are already in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'List footprints on the open PCB.' It is clear what the tool does and the scope is limited to the active board, but it does not explicitly differentiate itself from siblings such as get_footprint or list_pads.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus alternatives like get_footprint, list_pads, or get_items_by_net. The description only implies usage through the verb 'List' and does not state exclusions or prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_groupsA

List item groups on the board with their member item IDs.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. 'List' safely implies a read-only operation and the description discloses the return shape (groups with member item IDs), but it says nothing about pagination, permissions, or behavior on an empty board.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no filler — verb, resource, scope, and return content in one pass. Every clause earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return-value details need not be restated, and for a zero-parameter read tool the description is nearly sufficient. It could still note ordering or pagination but the core is covered.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so the baseline of 4 applies; there is no parameter semantics to document or compensate for.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (list), resource (item groups), scope (on the board), and even what each group carries (member item IDs). No sibling lists groups, so no disambiguation is strictly needed, but the description never names an alternative either.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied by the verb 'list' — there is no when-to-use or when-not-to guidance. Because it takes no parameters and has no competing sibling, the omission is minor, so this sits at minimum-viable rather than inadequate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_labelsA

List labels (local/global/hierarchical) in the open schematic.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the behavioral burden. It scopes the operation to 'the open schematic' and names the label categories, which is useful, but it never states that this is a read-only, non-mutating operation, nor what happens when no schematic is open.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with zero waste. The verb+resource leads, and the parenthetical label taxonomy is compact and informative.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present and no input parameters, the return values are already covered elsewhere, so the description needn't explain them. It is nearly complete for a simple read-only listing, only missing a note on the requirement that a schematic be open.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so the schema has nothing to document and there is no parameter semantics for the description to compensate for. Baseline 4 applies for a no-parameter tool.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (list) and resource (labels), and enumerates the label kinds (local/global/hierarchical), which helps distinguish it from the nearby list_schematic_text sibling. It stops short of naming that sibling explicitly, so it's clear but not fully differentiated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no when-to-use guidance, no prerequisites (e.g. a schematic must be open), and no pointer to alternatives like list_schematic_text or get_schematic_hierarchy. Usage is only implied by the verb itself.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_netclassesA

List the project's net classes and their key parameters (mm).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the burden; 'List' implies a safe read but this is never stated explicitly. It also adds no behavioral context such as whether results reflect saved or in-memory board state, though the output schema covers the return shape.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, front-loaded sentence with no filler; the resource and the unit hint are both packed in without waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a parameterless read-only list tool with an output schema, the description covers what is needed to select it. The remaining gap is the absence of any routing to the richer netclass siblings, which would have made it fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so the baseline is 4. The description adds a small amount of useful meaning by noting the returned parameters are in millimeters, which is not derivable from the empty input schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (List) and resource (net classes) plus scope (the project's), so the agent knows exactly what is returned. It does not explicitly distinguish itself from close siblings like get_netclass_config, list_nets, or configure_netclasses, so it falls short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use guidance, no prerequisites, and no mention of alternatives such as get_netclass_config for fuller configuration detail. The agent must infer usage from the name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_netsA

List all nets on the board, optionally filtered by net class name.

Args: netclass_filter: Restrict to nets belonging to this net class.

ParametersJSON Schema
NameRequiredDescriptionDefault
netclass_filterNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It conveys that this is a read-only listing with an optional filter, and the presence of an output schema means return format need not be explained. However, it adds no behavioral context beyond the obvious read semantics.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose is front-loaded in the first sentence and the parameter note follows. Slightly padded by the Args: block for a single optional argument, but no wasted prose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only list tool with one optional parameter and an output schema, the description covers what the tool returns conceptually and how filtering works. Nothing critical is missing for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate for the single undocumented parameter. It does explain that netclass_filter restricts to nets belonging to that net class, but this is largely an expansion of the parameter name with no format or matching-rule detail. Adequate but minimal.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a clear verb (List) and resource (nets on the board) with a scope qualifier (optionally filtered by net class name). It is distinguishable from siblings like list_netclasses (which lists net classes, not nets) and export_netlist, though it never names those alternatives explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

"optionally filtered by net class name" implies when the filter is useful, but there is no explicit when-to-use guidance and no routing to related tools such as get_items_by_net or list_netclasses. Usage is implied rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_open_documentsA

List all documents currently open in KiCad, grouped by type.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description carries the full burden. 'List' implies a non-mutating read, and 'grouped by type' hints at the result shape, but nothing states side effects, permissions, or whether an open KiCad instance is required. For a low-risk enumerator with an output schema this is adequate but thin.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no filler. The scope and grouping detail are stated up front and nothing is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values need not be described, and there are no parameters to document. For such a simple tool the description is nearly sufficient; only the absence of any usage context or environment precondition keeps it from being fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Zero parameters, so there is nothing for the description to disambiguate; the baseline of 4 applies. The 'grouped by type' phrase is the only semantic addition and it concerns output, not inputs.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a specific verb and resource ('List all documents currently open in KiCad') and adds a scope qualifier ('grouped by type'). It is distinguishable from sibling listers such as list_footprints or list_symbols, though it never names an alternative to route against.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use guidance, no prerequisites, and no mention of any of the many sibling list_* tools. The agent must infer the use case purely from the tool name and the phrase 'currently open'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_padsB

List pads on the board, optionally filtered by footprint reference or net.

Args: reference: Only pads belonging to this footprint reference. net_filter: Case-insensitive substring match on the pad's net name.

ParametersJSON Schema
NameRequiredDescriptionDefault
referenceNo
net_filterNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full behavioral burden but discloses little beyond that it is a listing operation. It adds one useful trait (net_filter is a case-insensitive substring match), but says nothing about read-only nature explicitly, result size, ordering, or pagination for what could be a very large list.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The main purpose leads, followed by a compact Args block for the two parameters. No redundant sentences; the format is front-loaded and easy to scan, though the Args block is slightly heavier than needed for two simple params.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return structure need not be explained, and purpose plus both parameters are covered. The only gap is that it does not indicate how many pads may be returned or whether very large already-complete the agent's needs for a filtered-list read tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate, and it does: 'reference' is scoped to 'pads belonging to this footprint reference' and 'net_filter' is explicitly a case-insensitive substring match. This distinguishes exact-reference matching from substring net matching, which the bare schema does not.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('List pads on the board') and names the two available filters. The resource 'pads' is distinct from siblings like list_footprints or list_tracks, so an agent can place it, but there is no explicit call-out of when this is preferable to a sibling such as get_footprint_geometry.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description notes the optional filters but gives no guidance on when to use this tool versus alternatives (e.g., get_footprint_geometry, get_items_by_net) and no exclusions or prerequisites. Usage is only implied by the phrase 'optionally filtered'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_part_databaseB

List parts the power budget knows about (built-in and user-added).

Args: filter: Optional case-insensitive substring to filter part names.

ParametersJSON Schema
NameRequiredDescriptionDefault
filterNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden, and it does disclose the list's composition (built-in plus user-added parts), which is genuine behavioral context. It does not state whether this requires a loaded board/project, pagination or ordering behavior, or what happens if the power budget has not been initialized. Adequate but not thorough for an annotation-free tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short and front-loaded: the list's scope comes first, then the single argument. The Args block is a mild formatting artifact but contains no filler. Nothing is redundant or padded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter listing tool with an output schema that documents return values, the description supplies what an agent needs: what is listed and how to filter. Missing only usage context and any note about prerequisites (e.g., needing a project or existing power budget loaded), which are minor for this complexity level.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the schema provides only a title and default for filter. The description compensates by defining the one parameter as an optional, case-insensitive substring match on part names, which is more than the schema offers. Only one parameter exists and it is fully characterized, so there is little left to document.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ("List") and a well-scoped resource (parts the power budget knows about, built-in and user-added). This distinguishes it from similarly-named siblings like analyze_power_budget and set_part_current, though it never names those siblings explicitly. The purpose is clear without needing to open the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no prerequisites, and no reference to alternatives such as set_part_current (to modify a part) or analyze_power_budget (to use the list in a calculation). The reader must infer that this is a discovery/inspection step. The 'built-in and user-added' clause hints at scope but does not route the agent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_schematic_textA

List free text objects in the open schematic.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden. 'List' implies a non-mutating read, and 'in the open schematic' hints at a required open-document precondition, but nothing is said about ordering, filtering, or scope limits. Adequate for a trivial zero-parameter reader, but not rich.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with zero filler; every word (verb, object type, document scope) earns its place and nothing redundant is included.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be described, and with no parameters the description only needs to convey scope and intent, which it does. The one missing element is an explicit pointer to the board counterpart list_text and any preconditions for 'open schematic'.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so there is nothing for the description to disambiguate; the baseline for a no-parameter tool applies. No parameter-related gaps exist.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('List'), a specific resource ('free text objects') and a scope ('in the open schematic'), which implicitly separates it from the board-level sibling list_text. It stops short of explicitly naming that sibling or contrasting the two, but an agent can tell which document type it targets.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no statement of prerequisites (e.g. a schematic must be open/active), and no routing to alternatives such as list_text for board text or list_labels for schematic labels. The agent must infer applicability entirely from the name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_shapesA

List graphic shapes (lines, arcs, circles, rectangles, polygons) on the board.

Args: layer: Restrict to a layer name, e.g. 'Edge.Cuts' for the board outline.

ParametersJSON Schema
NameRequiredDescriptionDefault
layerNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. The verb 'List' implies a non-mutating read, which is the key trait here, but nothing is said about result limits, pagination, or whether the board must be open/active in KiCad.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short lines, front-loaded with the action and resource, followed by a compact Args block. Nothing is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and the single optional parameter is at least exemplified. The remaining gap is the unstated default-layer behavior, which matters for an agent deciding whether to pass the argument.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% and the schema only declares a bare optional string named 'layer'. The description compensates partially by explaining 'Restrict to a layer name' and giving a concrete example ('Edge.Cuts' for the board outline), but it never states what the empty default means (all layers) or the layer naming convention.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('List') and resource ('graphic shapes'), and even enumerates the shape kinds (lines, arcs, circles, rectangles, polygons), which cleanly separates it from siblings like list_tracks, list_vias, list_zones and list_text.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use or when-not-to-use guidance and no named alternative. The only guidance is a note on what the layer argument does, which is parameter semantics rather than tool-selection context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_symbolsA

List symbol instances in the open schematic (reference, value, position).

Note: requires KiCad's schematic symbol API (KiCad 11+); on KiCad 10 this may return an error — fall back to execute_kipy or read the .kicad_sch file.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden, and it does disclose a real behavioral trait: the KiCad 11+ API dependency and the failure mode on KiCad 10. It does not state the read-only/safe nature or any output/permission details, but the version caveat is meaningful context beyond what any structured field provides.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the core action, followed by a compact, high-value caveat and fallback. No padding or restatement of the name.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained. For a no-parameter read tool the description covers purpose plus the important environment caveat and fallback path, making it sufficiently complete, though it could note it only reads the currently open document.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so there is nothing for the description to disambiguate; the baseline for a no-parameter tool is 4. The listed return fields (reference, value, position) are described but belong to the output schema rather than input parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('List symbol instances in the open schematic') and enumerates the fields returned (reference, value, position). It is clearly scoped to schematic symbols rather than board footprints, but it never explicitly contrasts itself with the similar list_* siblings (list_labels, list_footprints), so sibling differentiation stays implicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides a concrete when-not condition and alternatives: on KiCad 10 this may error, in which case fall back to execute_kipy or read the .kicad_sch file. That is genuinely actionable guidance. It stops short of stating the general when-to-use case versus other listing tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_textA

List free text and text-box objects on the board.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the behavioral burden. 'List' reasonably conveys a read-only, non-destructive operation, but the description adds no further context such as permission requirements or board-state conditions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single front-loaded sentence with no redundant or filler content. Every word contributes to identifying the operation and its target objects.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no parameters and an output schema available, the description does not need to explain return values. For a simple board-text listing operation, the stated scope is complete enough for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes no parameters, so there are no parameter semantics for the description to clarify. The baseline for a zero-parameter tool is 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: listing free text and text-box objects. The phrase 'on the board' distinguishes it from schematic-text siblings such as list_schematic_text, so an agent can identify its scope without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit guidance about when to use this tool versus alternatives, nor any preconditions or exclusions. The purpose implies a use case, but no when/when-not instructions are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_tracksA

List copper tracks and arc tracks on the board.

Args: layer: Restrict to a layer name, e.g. 'F.Cu'. net_filter: Case-insensitive substring match on the net name.

ParametersJSON Schema
NameRequiredDescriptionDefault
layerNo
net_filterNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden. 'List' implies a read-only operation and net_filter matching is described, but prerequisites such as an open board and any scope limitations are not stated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the tool's purpose, then efficiently lists the two parameters with no redundant or filler text. Every sentence and arg entry earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only listing tool with an output schema present, the description supplies enough to invoke it correctly. It omits broader usage context relative to sibling tools, but return values are covered by the output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and parameter titles are bare, but the description fully compensates: layer is documented as a layer-name restriction with an 'F.Cu' example, and net_filter is documented as a case-insensitive substring match on the net name.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States the specific verb 'List' and the resources 'copper tracks and arc tracks on the board'. It distinguishes itself by resource type from sibling list_* tools such as list_vias and list_zones, though it does not explicitly name alternatives.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides no explicit when-to-use, when-not-to-use, or alternative-tool guidance. The listing action and optional filters imply inspection of existing tracks, which is minimum viable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_viasA

List vias on the board, optionally filtered by net.

ParametersJSON Schema
NameRequiredDescriptionDefault
net_filterNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden, but 'list' reasonably implies a read-only operation. It adds no further behavioral context — no mention of scope limits, pagination, or whether hidden vias are included — so it is only minimally adequate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no wasted words; the core action comes first and the optional modifier follows.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter list tool with an output schema describing return values, the description is just barely sufficient. It omits what a missing/empty filter means and leaves the net filter's accepted format undocumented, but nothing critical for invocation is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It identifies the single parameter's purpose (filter by net), which maps to net_filter, but gives no format or syntax guidance for the net name/value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('List vias on the board'), clearly distinguishing it from sibling list tools like list_tracks, list_zones, and list_pads. It is unambiguous, though it does not explicitly contrast itself with those siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'optionally filtered by net' implies when the filter is useful, but the description never states when to use this tool versus alternatives such as get_items_by_net or get_connected_items, which overlap in scope.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_zonesA

List copper zones, rule areas, and graphic zones on the board.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. 'List' implies a safe read-only operation, but the description says nothing about whether zones are reported as stored vs. filled, whether it reflects unsaved edits, or the volume/scope of results. With an output schema present, the return-shape burden is lifted, keeping this at a minimum-viable 3.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence naming the verb and the three zone categories. Every word earns its place with no redundancy or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a parameterless read tool with an output schema, the description covers what is needed to invoke it correctly. The only shortfall is the absence of any disambiguation from the numerous other list_* siblings, which would be cheap to add.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so there is no parameter semantics to document and the baseline of 4 applies. The description correctly adds no misleading parameter hints.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (List) and resource (zones), and even enumerates the zone kinds returned: copper zones, rule areas, and graphic zones. It is clearly distinguishable from write-oriented siblings like add_zone and refill_zones, though it does not explicitly contrast with nearby readers such as list_shapes or list_tracks.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use or when-not-to-use guidance, and no prerequisites are stated. With many sibling list_* tools (list_tracks, list_vias, list_shapes, list_dimensions), the description never tells the agent which one to reach for when inspecting board geometry.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

move_footprintB

Move a footprint to an absolute position, optionally setting its rotation.

Args: reference: Reference designator, e.g. 'R1'. x_mm: Target X in millimetres. y_mm: Target Y in millimetres. angle_deg: Optional absolute rotation in degrees.

ParametersJSON Schema
NameRequiredDescriptionDefault
x_mmYes
y_mmYes
angle_degNo
referenceYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It discloses only that rotation is optional; it says nothing about mutation side effects, whether moves can fail, permission/lock prerequisites (e.g. set_footprint_locked), or what happens to locked footprints. For a mutation tool with zero annotation coverage this is a significant gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the purpose sentence before the Args block, and each line earns its place with no filler. Minor redundancy between the purpose line and the angle_deg arg text, but overall tight and well-ordered.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and parameters are covered. But as an unannotated mutation tool it omits failure modes, lock/permission prerequisites, and coordinate-frame assumptions, leaving meaningful gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate, and it does: it documents all four parameters, giving meaning ('Reference designator, e.g. R1', target X/Y in millimetres, optional absolute rotation in degrees). This adds value the bare schema titles do not.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Move a footprint') plus scope ('to an absolute position'), which implicitly contrasts with the relative-placement siblings like place_relative. However it never names those siblings, so differentiation is left to inference.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'absolute position' implies this is distinct from relative-placement tools such as place_relative, but there is no explicit when-to-use/when-not guidance or alternative named. Usage is implied rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pingA

Ping the KiCad API server. Returns 'pong' on success.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden, and it does disclose the success signal ('pong'). However, it says nothing about failure behavior, timeouts, or whether this has any side effects, leaving meaningful gaps for a no-annotation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, purpose and return value front-loaded, with zero filler. Nothing could be trimmed without losing information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a parameterless liveness probe with an output schema already present, the description is nearly sufficient — return format need not be restated. The only real gap is the absence of any hint about when this differs from kicad_status.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters and the schema is empty, so there is no parameter semantics to explain. Baseline 4 applies; the description correctly avoids inventing argument detail.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (ping) and resource (the KiCad API server) plus the expected outcome, so the agent knows exactly what it does. It does not differentiate itself from the sibling kicad_status, which plausibly serves a similar connectivity/health purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied — a connectivity/liveness check is the obvious reading, but the description never says when to reach for this versus kicad_status or get_version. No exclusions or prerequisites are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

place_near_padA

Place a part right next to a specific pad, just outside the target part's courtyard and aligned with the pad. Ideal for decoupling capacitors, pull-ups, and series resistors.

Args: reference: Footprint to move, e.g. 'C3'. target_reference: Part that owns the pad, e.g. 'U2'. target_pad: Pad number on the target, e.g. '13'. side: 'left', 'right', 'up', 'down', or 'auto' (the courtyard edge nearest the pad). gap_mm: Courtyard-to-courtyard gap in mm. angle_deg: Optional absolute rotation for the moved part (applied first). auto_orient: If the moved part has a pad on the target pad's net, turn it 180 degrees when that makes the same-net pad face the target (so the connecting track doesn't cross the part's other pad).

ParametersJSON Schema
NameRequiredDescriptionDefault
sideNoauto
gap_mmNo
angle_degNo
referenceYes
target_padYes
auto_orientNo
target_referenceYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden. It explains placement geometry and the conditional auto_orient 180-degree flip, but omits prerequisites (e.g., footprint lock state) and side effects (whether existing placement or routing is modified).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded purpose statement, then usage guidance, then a structured Args block. No filler; every line earns its place and the most important information is first.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so the description needn't explain return values. For a 7-parameter placement mutation it covers purpose, use cases, and all parameters, but leaves prior-state handling and error behavior unstated.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must define all 7 parameters. It does so fully: each arg is listed with meaning, examples, and allowed enum values for side; angle_deg and auto_orient behaviors are clarified beyond the schema defaults.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (place) and resource (part next to a pad), and distinguishes from siblings like place_relative and move_footprint by pinning placement to a target pad with courtyard/gap semantics.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Names ideal use cases (decoupling capacitors, pull-ups, series resistors), giving clear context for when to use it. However, it does not name alternatives or state when not to use this tool, so it falls short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

place_on_edgeA

Place a part against a board edge (connectors, sensors, switches).

Args: reference: Footprint to move. edge: 'left', 'right', 'top', or 'bottom' edge of the board outline. inset_mm: Distance from the board edge to the part's courtyard. along_mm: Absolute coordinate along the edge (X for top/bottom, Y for left/right). Defaults to the middle of that edge. angle_deg: Optional absolute rotation (applied first).

ParametersJSON Schema
NameRequiredDescriptionDefault
edgeYes
along_mmNo
inset_mmNo
angle_degNo
referenceYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, so the description carries the full burden. It adds one useful behavioral detail — that angle_deg rotation is applied first — but says nothing about whether the move is destructive to prior placement, what happens if the part extends past the edge, or any permission/error behavior. Adequate but not rich.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The one-line purpose is front-loaded, followed by a compact arg list where every entry earns its place. No filler, though the arg block could be marginally tighter.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be described, and all five parameters are documented. The remaining gap is behavioral context (idempotency, failure modes, permissions) for a mutation tool with no annotations — helpful but not strictly required to invoke correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must carry all parameter meaning, and it does: reference target, enumerated edge values, inset_mm defined as edge-to-courtyard distance, along_mm clarified as absolute coordinate with axis mapping and default-to-middle behavior, and angle_deg's absolute-first semantics. This fully compensates for the empty schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (place) plus resource (part against a board edge) and gives concrete use-case examples (connectors, sensors, switches). It is clearly distinguishable from move_footprint or place_near_pad in intent, though it does not name those siblings explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The use-case examples (connectors, sensors, switches) imply when someone would reach for edge placement, but there is no explicit when/when-not guidance against alternatives like place_near_pad, place_relative, arrange_row, or move_footprint. Usage is inferable but not stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

place_relativeB

Place a footprint at an offset from another footprint's origin.

Args: reference: Footprint to move. anchor_reference: Footprint to measure from. dx_mm, dy_mm: Offset in mm (Y grows downward). angle_deg: Optional absolute rotation for the moved part.

ParametersJSON Schema
NameRequiredDescriptionDefault
dx_mmYes
dy_mmYes
angle_degNo
referenceYes
anchor_referenceYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden. It usefully discloses two non-obvious traits: Y grows downward, and angle_deg is an absolute rotation (not a delta), which prevents a likely misuse. However, as a mutation tool it says nothing about locking, error behavior, or whether the offset is applied relative to the anchor's rotation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core action is front-loaded in one sentence and the args block is terse, with every line carrying unique information. No filler or restatement of the tool name.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need no explanation. But for a mutation tool with zero annotation coverage, the description omits side-effect context such as whether the move is undoable or constrained by locked footprints, leaving a meaningful gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate, and it does: all five parameters are documented, including the coordinate convention for dx_mm/dy_mm and the crucial clarification that angle_deg is absolute and optional. It adds real meaning the bare schema cannot convey.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The first sentence states a specific verb (place) and resource (footprint) plus the precise positional semantic (offset from another footprint's origin). It is clearly distinct from plain move_footprint or rotate_footprint, though it never names those siblings to sharpen the contrast.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains what the parameters mean but never says when to choose this over move_footprint, place_near_pad, or place_on_edge, which are the obvious alternatives in this family. An agent must infer the relative-vs-absolute use case entirely on its own.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

refill_zonesA

Refill (recompute) all copper zones on the board. May take a few seconds.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It usefully discloses latency ('May take a few seconds') and implies mutation via 'refill/recompute,' but omits whether the board must be open, whether changes are persisted, and whether saving is required.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two terse sentences, action front-loaded with the timing caveat second. No filler; every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values need no explanation, and a 0-param tool has little surface to cover. The description is nearly complete, missing only usage context and persistence behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Zero parameters, so the baseline is 4. There is nothing for the description to compensate for beyond the empty schema, which is already fully covered.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: 'Refill (recompute) all copper zones on the board.' The parenthetical clarifies jargon and the action is clearly distinct from siblings like add_zone, add_zone_rect, and list_zones, though no sibling is named explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied (refilling follows zone edits) but the description never says when to call this versus alternatives such as add_zone or list_zones, nor any prerequisites. Adequate but with clear gaps.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

render_3dB

Render a 3D image (PNG) of the open PCB.

Args: output_path: Destination .png file. side: 'top', 'bottom', 'left', 'right', 'front', 'back'. width, height: Image dimensions in pixels. save_first: Save the board before rendering.

ParametersJSON Schema
NameRequiredDescriptionDefault
sideNotop
widthNo
heightNo
save_firstNo
output_pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden. It usefully discloses the output format (PNG) and the save_first side effect (board is saved before rendering), but says nothing about required GUI/display, permissions, or whether rendering is slow/expensive for large boards.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose is front-loaded in the first sentence, followed by a compact Args block. It is appropriately sized with little waste, though the Args format is slightly verbose for a five-parameter tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values need not be explained, and all parameters are documented. However, with no annotations and a moderately complex render operation, the absence of prerequisite/usage context (open document, GUI requirement) leaves a visible gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must document the params itself, and it does: output_path (.png destination), the full set of side values, width/height units in pixels, and save_first's effect. The side enum values are especially valuable since the schema provides no enum. It could go further on default values, but it compensates well for the coverage gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource: rendering a 3D PNG image of the open PCB. This clearly distinguishes it from 2D export siblings like export_svg, export_pdf, and export_gerbers. It stops short of naming an explicit sibling alternative, so it lands at 4 rather than 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use or when-not-to-use guidance and no mention of alternatives (e.g., snapshot_board for a quick raster, export_step for a full 3D model). The phrase 'of the open PCB' is the only usage constraint, and it is implicit at best.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

revert_boardA

Discard unsaved changes and reload the open PCB from disk.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does the most important part: it explicitly states that unsaved changes are discarded, flagging the destructive, irreversible consequence before an agent calls it. It omits secondary details (auth/permission requirements, behavior when no board is open, error cases), so it stops short of 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with the destructive verb first and the data source ('from disk') second. Every word earns its place and nothing is padded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter tool with an output schema and no annotations, the essential information an agent needs (a no-argument action that destroys unsaved work and reloads from disk) is present. Only edge-case behavior, such as what happens with no document open, is left unspecified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so there is nothing for the description to disambiguate; the baseline of 4 applies. No parameter syntax or format clarification is needed or missing.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb pair ('Discard unsaved changes and reload') on a specific resource ('the open PCB from disk'). An agent can immediately distinguish this from save_board/save_board_as, which persist changes rather than throw them away.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The use case is inferable (undo uncommitted edits by reloading from disk), but there is no explicit when-to-use statement, no mention of prerequisites like an open document, and no named alternative such as save_board for agents that want to keep changes.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

rotate_footprintB

Set a footprint's absolute rotation in degrees.

Args: reference: Reference designator, e.g. 'U1'. angle_deg: Absolute angle in degrees (0, 90, 180, 270, ...).

ParametersJSON Schema
NameRequiredDescriptionDefault
angle_degYes
referenceYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden. It discloses that the rotation is absolute (vs relative) and gives example angles, but it omits whether this mutates the board, requires edit permissions, affects connected tracks, or is reversible.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very concise and front-loaded: one sentence stating the action, followed by a compact Args section. Every sentence serves the agent's need to invoke the tool without waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained. However, with no annotations, the description should disclose mutation behavior for this write-like tool; it does not mention that the board is modified or any prerequisites, leaving a gap for safe invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate, and it does: 'reference' is explained as a designator like 'U1' and 'angle_deg' as an absolute angle in degrees with examples (0, 90, 180, 270). This adds clear meaning beyond the bare property names.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb+resource: 'Set a footprint's absolute rotation in degrees.' This clearly distinguishes it from siblings like flip_footprint and move_footprint, but it does not explicitly name alternatives or contrast with them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use or when-not-to-use guidance is provided. The description only lists arguments; it does not tell the agent when to choose rotate_footprint over flip_footprint, move_footprint, or place_relative.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

route_padsA

Route a track between two pads by name - no coordinates needed.

Looks up both pads, takes the net from them, uses the netclass track width unless overridden, draws a 45-degree (or orthogonal) path, and then reports clearance conflicts with other nets. A power track wider than a fine-pitch pad is necked down where it leaves the pad (see 'necks' in the result).

Args: from_reference, from_pad: Start pad, e.g. 'U2', '7'. to_reference, to_pad: End pad, e.g. 'J3', '1'. layer: Copper layer. Empty = a layer both pads share (F.Cu preferred). width_mm: Track width; default is the net's netclass width. style: '45' (default), 'manhattan' (90-degree), or 'direct' (straight line). bend: 'straight_first' or 'diagonal_first' - which end gets the bend. via_at: [x_mm, y_mm] to change layer through a via on the way. Required when the pads have no copper layer in common (e.g. one SMD on each side); if omitted in that case the via goes at the midpoint. to_layer: Layer after the via (default: the other outer layer). rollback_on_conflict: Undo the whole route if any clearance problem is found. neck_down: Where the full width would hit the part's other pins, run the stretch next to the pad at the widest width that fits (at most the pad's size) and widen once clear.

ParametersJSON Schema
NameRequiredDescriptionDefault
bendNostraight_first
layerNo
styleNo45
to_padYes
via_atNo
from_padYes
to_layerNo
width_mmNo
neck_downNo
to_referenceYes
from_referenceYes
rollback_on_conflictNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does so well: it discloses the routing pipeline (look up pads, take net, apply netclass width, draw 45-degree path), residual clearance-conflict reporting, and the neck-down side effect. It stops short of stating permissions or reversibility beyond the rollback flag.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with purpose, then a compact behavioral paragraph, then a justified Args block. The per-parameter list is long but necessary given the schema has no descriptions, and no sentence is filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 12-parameter mutation tool with an existing output schema (so return values need no explanation), it covers inputs, layer/via logic, and conflict handling adequately. Nothing critical to correct invocation is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate, and it documents all 12 parameters with examples and semantics ('from_reference, from_pad: e.g. U2, 7'; style values; via_at requirement; to_layer default). This is the description's strongest contribution.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Route a track between two pads') with a differentiator ('by name - no coordinates needed') that immediately separates it from siblings like add_track or add_track_path. An agent can identify the tool without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides clear conditional guidance ('via_at is required when the pads have no copper layer in common', 'empty layer = one both pads share', 'rollback_on_conflict undoes the route'). It never explicitly names a sibling alternative or when-not-to-use it, so it falls short of the top band.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

run_actionA

Run an arbitrary KiCad tool action by name (power user / unstable API).

Example actions: 'pcbnew.InteractiveRouter.routeSingleTrack', 'pcbnew.EditTool.Rotate', 'common.Control.zoomFitScreen'. Action names are not guaranteed stable across KiCad versions and may have side effects.

Args: action: The KiCad TOOL_ACTION name to invoke.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the behavioral burden and does disclose key risks: unstable API, version-dependent action names, and possible side effects. It does not clarify permissions, whether actions are destructive or reversible, or whether the tool requires an active document.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the purpose and warning, followed by useful examples and a short Args section. It is appropriately sized, though the Args section mildly repeats the action parameter already visible in the schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values do not need explanation. The description covers purpose, risk, and examples, but for a risky low-level escape hatch with no annotations it omits prerequisites such as whether a KiCad document must be open or how valid action names can be discovered.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It does so by explaining that the single 'action' parameter is a KiCad TOOL_ACTION name and by giving three concrete example action names that demonstrate the expected format.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Run an arbitrary KiCad tool action by name.' It also scopes the tool as a power-user/unstable API and provides concrete action examples. However, it does not explicitly distinguish this escape hatch from sibling escape hatches such as execute_kipy or run_kicad_cli.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use it by labeling it 'power user / unstable API' and warning that action names are not guaranteed stable and may have side effects. It does not explicitly state when to prefer this over specific sibling tools or when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

run_drcA

Run Design Rule Check on the open PCB and summarise the results.

Args: output_path: Optional .json report path (a temp file is used if empty). save_first: Save the board before checking. refill_zones: Refill zones first (in the editor too when saving) - stale fills after routing show up as false clearance errors.

ParametersJSON Schema
NameRequiredDescriptionDefault
save_firstNo
output_pathNo
refill_zonesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden. It does disclose real side effects — it may save the board and refill zones (in the editor too) — and explains a failure mode (stale fills producing false clearance errors). It does not say whether DRC rules must be configured, how long it runs, or what the caller should do with the report, leaving notable gaps for a zero-annotation mutation-adjacent tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core action before the Args block, and every line earns its place — the refill note even justifies itself with the false-clearance failure mode. Slightly verbose in the parenthetical on refill/save interaction but not wasteful.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 3-parameter tool with an output schema (so return values need not be described) and no required parameters, the definition covers all parameters and the main side effects. The missing piece is any pointer to prerequisite tooling such as get_design_rules or the ERC counterpart.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% — the schema only supplies titles and defaults — so the description must compensate, and it does: it explains output_path (optional .json report path, temp file when empty), save_first, and refill_zones with rationale. Meaning is added beyond the bare property names, though it never states that the two booleans default to true.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource+scope: 'Run Design Rule Check on the open PCB and summarise the results'. An agent can tell it performs DRC rather than ERC, but the description never names the closest sibling (run_erc) or check_clearance, so differentiation is left to inference rather than made explicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by 'on the open PCB', and the parameter notes give conditional guidance (refill when fills are stale after routing, save before checking). However, there is no explicit when-to-use-vs-alternative statement against run_erc or check_clearance, and no prerequisites such as design rules being loaded.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

run_ercA

Run Electrical Rule Check on the open schematic and summarise the results.

Args: output_path: Optional .json report path (a temp file is used if empty). schematic_path: Explicit .kicad_sch path (defaults to the open project's). save_first: Save the schematic before checking.

ParametersJSON Schema
NameRequiredDescriptionDefault
save_firstNo
output_pathNo
schematic_pathNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden. It adds useful details such as the temporary report behavior and that save_first saves the schematic before checking, but it does not disclose whether the tool is read-only, whether it requires an open KiCad instance, or what side effects occur beyond the optional save.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core action and then provides a compact, structured Args block. Every sentence and parameter note adds information without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, the description need not explain return values, and it covers all parameters despite zero schema description coverage. It is nearly complete for invocation, though it omits usage context and full behavioral disclosure because annotations are absent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate, and it does document all three parameters with meaningful semantics: output_path as an optional .json report path with a temp-file fallback, schematic_path as an explicit .kicad_sch path defaulting to the open project's, and save_first as saving before checking.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb (Run), a specific check type (Electrical Rule Check), the target resource (open schematic), and the outcome (summarise results). This clearly distinguishes it from the sibling run_drc, which operates on the board, without requiring the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not state when to use this tool versus alternatives such as run_drc, nor does it mention prerequisites or when not to use it. It only implies usage by describing the operation on the open schematic.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

run_kicad_cliB

Run an arbitrary kicad-cli command (escape hatch for any export).

Args: args: Argument list after the binary, e.g. ["pcb", "export", "gerbers", "board.kicad_pcb", "-o", "out/"] or ["version"]. Use the currently open board's path from get_board_summary.

ParametersJSON Schema
NameRequiredDescriptionDefault
argsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must carry the full behavioral burden. It says the command is arbitrary, which hints at broad power, but discloses nothing about side effects, file modification, permissions, sandboxing, error handling, or whether it can be destructive. For an escape-hatch CLI runner, this is a significant gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short and front-loaded: purpose first, then a clearly labeled Args section with examples. It avoids filler, though the formatting is slightly informal and could be tightened.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is complex (arbitrary CLI escape hatch), annotations are absent, and the schema is minimal. The description covers basic invocation and parameter format but omits critical behavioral context such as safety, whether commands are read-only or modifying, output/error behavior, and environment assumptions. An output schema exists so return values need not be explained, but the remaining gaps are too large for the tool's complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must explain the single parameter. It defines 'args' as the argument list after the binary, gives concrete examples like ['pcb', 'export', 'gerbers', ...] and ['version'], and tells the agent to use the open board's path from get_board_summary — adding substantial meaning beyond the bare array-of-strings schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Run') and resource ('kicad-cli command') and adds the scope 'arbitrary' plus the role 'escape hatch for any export'. It implies differentiation from dedicated export siblings but does not name them, so it is clear without being maximally distinguishing.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'escape hatch for any export' implies usage when dedicated export tools do not suffice, and the args example hints at typical invocation. However, it does not explicitly say when to prefer run_kicad_cli over export_gerbers, export_step, etc., nor list exclusions or prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

save_boardB

Save the currently open PCB to disk.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden, and it discloses little beyond the fact that state is persisted. It does not say whether the existing file is overwritten, whether it errors when no document is open, or whether the save is silent/undoable.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single compact sentence with the action and scope front-loaded and zero filler. It is efficient, though it borders on under-specification rather than maximally informative conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be described. Still, for an unannotated mutating save operation in a rich sibling set (save_board_as, save_schematic, snapshot_board, revert_board), the definition should say more about prerequisites and overwrite behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so there is nothing for the description to disambiguate; the baseline for a no-param tool is 4. Schema coverage is 100% and the empty argument object is self-explanatory.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource ('Save the currently open PCB to disk'), and the phrase 'currently open' implies the in-place save target. However, it never distinguishes itself from the sibling save_board_as, so an agent cannot tell which one to pick from the description alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit when-to-use guidance, no mention of prerequisites (e.g. a board must be open), and no routing to the obvious alternative save_board_as. Usage is only implied by the verb.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

save_board_asB

Save a copy of the open PCB to a new path.

Args: file_path: Destination .kicad_pcb path. overwrite: Overwrite if the file already exists. include_project: Also write the associated project file.

ParametersJSON Schema
NameRequiredDescriptionDefault
file_pathYes
overwriteNo
include_projectNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It usefully discloses copy semantics (original preserved) and the meaning of overwrite and include_project, but omits key side effects: whether the open document's working file path changes, and what happens when overwrite=false and the target exists. Those behavioral gaps keep it at a minimum-viable 3.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose sentence is front-loaded and the Args block is tight, with each line adding distinct information. No redundant padding, though the Args formatting is slightly boilerplate.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The output schema exists so return values need no explanation, and all three params are described. However, for a filesystem-mutating tool with zero annotation coverage, the description should state the failure behavior when overwrite is false and whether the document path is rebound after the save.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% (titles only), so the description must compensate and largely does: file_path is confirmed as the destination .kicad_pcb path, overwrite as overwrite-if-exists, and include_project as also writing the associated project file. Defaults (overwrite=false, include_project=true) are only in the schema, and no path format detail is added, so it stops short of 5.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

"Save a copy of the open PCB to a new path" gives a specific verb (save a copy) and resource (the open PCB) plus the destination scope (new path). The "copy" framing implicitly separates it from save_board (in-place save), but it never names that sibling explicitly, so a distinction is only inferred.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use or when-not guidance is given, and no alternative is named. An agent must infer that this is for saving to a new location rather than save_board or snapshot_board, which is left entirely to guesswork.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

save_schematicB

Save the open schematic to disk.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden. It says a save occurs, but does not disclose whether existing files are overwritten, what happens if no schematic is open, whether authorization is required, or any other side effect beyond writing to disk.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One short sentence with the action and target front-loaded. It is appropriately sized for a zero-argument tool and contains no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple zero-parameter save action with an output schema, the description is nearly complete: it states what is saved and where. It omits overwrite semantics and the open-document requirement, but these are minor for a tool that receives no arguments and whose return shape is documented separately.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so there is no parameter semantics for the description to clarify. The empty schema is self-explanatory, making the baseline 4 appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Save'), resource ('open schematic'), and destination ('to disk'), so the action is immediately clear. It implicitly distinguishes itself from sibling save_board by naming the schematic resource, but does not explicitly contrast the two.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use or when-not-to-use guidance is provided. The description does not mention prerequisites such as having an open schematic, nor does it point to alternatives like save_board or save_board_as.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

select_itemsB

Select board items by ID in the PCB editor.

Args: item_ids: Item KIID strings. add_to_existing: Keep the current selection and add to it.

ParametersJSON Schema
NameRequiredDescriptionDefault
item_idsYes
add_to_existingNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It usefully implies default replace semantics versus additive selection ('Keep the current selection and add to it'), but does not disclose invalid-ID handling, whether selection is scoped by active document, or what happens on failure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core action in the first line, followed by compact per-parameter notes. No filler, though the Args block is somewhat verbose for a two-parameter tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained. For a simple two-parameter selection tool the description covers purpose and both parameters adequately, leaving only edge-case behavior unaddressed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate, and it does reasonably: it specifies item_ids are 'KIID strings' (a format hint beyond the bare array) and clarifies the semantic effect of add_to_existing. It does not fully specify KIID sourcing but covers both parameters meaningfully.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb (select) and resource (board items) scoped to the PCB editor, so the agent immediately knows what it does. It does not explicitly distinguish itself from related siblings like get_selection or clear_selection, but the core action is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use or when-not-to-use guidance, and no reference to alternatives such as clear_selection or get_selection present in the sibling list. The agent must infer usage entirely from the verb.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_active_layerB

Set the active drawing layer in the PCB editor.

Args: layer: Layer name, e.g. 'B.Cu'.

ParametersJSON Schema
NameRequiredDescriptionDefault
layerYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry the full behavioral burden. It says what changes but omits whether an open PCB editor/document is required, whether the change persists, and what side effects occur.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose is front-loaded in one sentence, followed by a compact Args section with a useful example. There is no wasted text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return-value details are not needed. However, for a state-changing tool with no annotations, the description still lacks prerequisites, valid layer values, and side-effect information.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It partially does by naming the parameter and giving an example layer ('B.Cu'), but it does not enumerate valid layer values or specify format constraints.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: 'Set the active drawing layer in the PCB editor.' This clearly distinguishes it from siblings like list_board_layers and set_visible_layers, though it does not explicitly name or compare alternatives.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no when-to-use, when-not-to-use, prerequisites, or alternative tools. Usage is only implied by the verb 'Set' and the object 'active drawing layer'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_copper_layer_countA

Set the number of copper layers (must be even, >= 2).

WARNING: removing layers deletes any content on them and cannot be undone. Pass confirm=True to proceed.

Args: count: New copper layer count. confirm: Must be True to apply the change.

ParametersJSON Schema
NameRequiredDescriptionDefault
countYes
confirmNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden and does well: it discloses that reducing layers destroys content, that the operation is irreversible, and that confirm=True is required to apply it. It does not mention permission requirements or what happens to count on failure, so it falls just short of full coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The destructive warning is front-loaded and the args are listed compactly. Slight redundancy between 'Pass confirm=True to proceed' and 'confirm: Must be True to apply the change' costs a point but the structure is otherwise efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained. The description covers the destructive semantics, the confirmation gate, and both parameter meanings; only edge cases (e.g., invalid odd counts) and permissions are unaddressed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and the titles are bare ('Count', 'Confirm'), so the description must compensate. It explains both parameters: count is the new layer count (with even/>=2 constraint) and confirm must be True to apply the change, adding real meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Set the number of copper layers') and immediately constrains it (must be even, >= 2). This is easily distinguished from read-only siblings like list_board_layers or get_stackup.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives the precondition for applying the change (confirm=True) and the validity constraint on count, but does not say when to use this versus alternatives such as editing the stackup directly. Usage is implied by the constraint rather than framed as guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_footprint_lockedB

Lock or unlock a footprint.

Args: reference: Reference designator. locked: True to lock, False to unlock.

ParametersJSON Schema
NameRequiredDescriptionDefault
lockedYes
referenceYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden. It discloses nothing about what locking actually does (e.g., whether it prevents move/rotate/delete), permissions required, or reversibility, which matters for a mutation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The actionable statement is front-loaded in the first sentence, and the Args block is compact with zero wasted prose. It is appropriately sized for a two-parameter toggle.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values needn't be described, but with no annotations the description should still explain the consequences of locking. For a simple toggle the gaps are modest but present.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate and it does: it defines 'reference' as the reference designator and 'locked' as True=lock / False=unlock. Both parameters get usable semantics beyond the bare schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb pair (lock/unlock) and a clearly named resource (footprint), so the agent knows exactly what the tool does. It does not differentiate itself from the related sibling set_items_locked, which could plausibly do the same job.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no prerequisites, and no mention of alternatives such as set_items_locked. The agent is left to infer the use case entirely from the name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_footprint_valueC

Set the value field text of a footprint (e.g. '10k', '100nF').

Args: reference: Reference designator. value: New value string.

ParametersJSON Schema
NameRequiredDescriptionDefault
valueYes
referenceYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden. It is a mutation tool, yet says nothing about side effects, whether the change is undoable, permission requirements, or whether it needs a saved/open board. It only clarifies the semantic meaning of the value field, which is minimal disclosure for a write operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core action sentence is front-loaded and tight, with the Args block adding only the two necessary parameter glosses. No filler or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and only two parameters are involved. However, with no annotations and a mutation operation, the description omits contextual facts an agent needs (board-open precondition, side effects), leaving it only minimally adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It glosses both parameters ('reference: Reference designator', 'value: New value string') and gives value examples, which adds real meaning over the bare 'Reference'/'Value' schema titles, though the reference format is still unspecified.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Set the value field text of a footprint') and the examples ('10k', '100nF') make the domain clear (electronic component values). It does not explicitly distinguish itself from sibling tools, but no sibling appears to set a footprint value, so the overlaps are minimal.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no mention of prerequisites (e.g. a board/document must be open), and no alternatives among the many sibling footprint tools (set_footprint_locked, move_footprint, etc.). The agent must infer entirely from the name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_items_lockedC

Lock or unlock arbitrary board items by ID.

Args: item_ids: Item KIID strings. locked: True to lock, False to unlock.

ParametersJSON Schema
NameRequiredDescriptionDefault
lockedYes
item_idsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden but only states the lock/unlock action. It omits side effects, idempotency, permission requirements, behavior with invalid IDs, and whether locked items become protected.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded, concise, and well-structured. Every sentence and the Args block add direct value with no wasted wording.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Output schema exists, so return values need not be explained. However, for a mutation tool with no annotations, the description should disclose more about locking effects, permissions, and safe usage, which it does not.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It gives meaning to both parameters ('KIID strings' and 'True to lock, False to unlock'), but does not detail array semantics, valid ID format, or handling of duplicates/invalid IDs.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (lock/unlock), resource (arbitrary board items), and scope (by ID). It distinguishes itself from set_footprint_locked by covering arbitrary items rather than footprints, though it does not name siblings explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use or when-not-to-use guidance is provided. It does not mention prerequisites, alternatives such as set_footprint_locked, or conditions under which arbitrary item locking is preferred over other selection/modification tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_part_currentA

Save a part's current data (from its datasheet) to the user part database so analyze_power_budget can use it. Always cite where the numbers came from.

Args: part: Symbol name as in KiCad (e.g. 'TB6612FNG'); also used as the match pattern unless entry has "match": [...] (wildcards allowed). entry: Behaviour description; any of: "supply": [{"pins": ["VCC"], "typ_a": 0.0015, "max_a": 0.0022}] "regulators": [{"in_pins": ["VIN"], "out_pins": ["VOUT"], "type": "linear"|"buck", "vout": 3.3, "efficiency": 0.9, "max_out_a": 1.0}] "drivers": [{"supply_pins": ["VM"], "channels": [["OUT1", "OUT2"]], "max_continuous_a": 1.2, "max_peak_a": 3.2}] Pin names must match the KiCad symbol's pin names. source: Datasheet URL (and page/table) the numbers came from. verified: False if the numbers are estimates rather than datasheet values.

ParametersJSON Schema
NameRequiredDescriptionDefault
partYes
entryYes
sourceYes
verifiedNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It usefully discloses that numbers must be sourced ('Always cite where the numbers came from') and that verified=False marks estimates rather than datasheet values, but it never states whether entries overwrite existing data, persistence scope of the 'user part database', or any permission/idempotency behavior for this mutation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the one-line purpose before the Args block, and the argument documentation is dense but earns its space by defining an otherwise undocumented nested schema. Minor redundancy between the global 'cite the source' instruction and the source arg.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained. For a 4-parameter tool with a nested object and zero schema documentation, the description covers entry structure and sourcing well; the main omission is mutation semantics (overwrite behavior) that an agent would want before writing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate, and it does substantially: it defines part as a KiCad symbol name with wildcard match-pattern behavior, expands entry into supply/regulators/drivers structures with concrete field names, requires pin names to match the KiCad symbol, and clarifies source and verified. Gaps remain (e.g. completeness of entry types), so not a full 5.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific action (save a part's current data from its datasheet into the user part database) and names the downstream consumer (analyze_power_budget), which distinguishes it from siblings like list_part_database. An agent can tell exactly what this tool writes and why.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives a clear purpose-context ('so analyze_power_budget can use it'), implying the tool is a prerequisite for power-budget analysis, and requires sourcing. It stops short of explicit when-not conditions or naming alternative siblings to use instead.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_text_variableA

Set (or add) one project text variable, merging with existing variables.

Args: name: Variable name (referenced as ${name}). value: Variable value.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
valueYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden. It does disclose one genuinely useful trait beyond the schema: the operation merges with existing variables rather than clearing them. However, it says nothing about overwrite semantics for an existing name, whether the change persists to disk or needs a save, or any project-open prerequisites.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core behavior is front-loaded in a single sentence, followed by brief per-argument notes with no filler. It is appropriately sized for a two-parameter setter, with only mild redundancy between the sentence and the Args block.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter mutation tool with no annotations and an existing output schema, the definition covers purpose, merge semantics, and both parameters. It still leaves open whether values persist across sessions or require a save step, and whether an existing name is silently overwritten, which are gaps for a setter with zero annotation coverage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate, and it does: both parameters are explained, and the ${name} reference syntax is information the schema does not provide at all. This is precisely the kind of added meaning the schema lacks, though it stops short of format or length constraints.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb+resource ('Set (or add) one project text variable') and pins the scope to a single variable. It implicitly distinguishes itself from sibling readers like get_text_variables or expand_text, though it never names an alternative explicitly. An agent can tell what the tool does without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied through the phrase 'merging with existing variables', which tells the agent this is additive rather than a full replacement. There is no explicit when-to-use or when-not-to-use guidance relative to siblings such as get_text_variables, expand_text, or set_title_block.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_title_blockB

Update title block string fields on the board.

Args: fields: Map of field name to value, e.g. {"title": "My Board", "revision": "B", "company": "Acme", "date": "2026-05-23"}. Valid field names are returned by get_title_block.

ParametersJSON Schema
NameRequiredDescriptionDefault
fieldsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden for what is clearly a mutation tool. It does not state whether the board must be open, whether changes persist only after save_board, whether updates are reversible, or the effect of unknown field names. Only the field-value format is conveyed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core action in the first sentence, followed by a compact, example-driven parameter note. No filler, and every part earns its place, though the args block could be slightly tighter.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values need not be explained, and the parameter semantics are covered. But for a mutation tool with zero annotation coverage, missing prerequisites (open board, persistence via save_board) leave a meaningful gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% and the schema only declares an opaque object with string values. The description compensates well by explaining the map-of-name-to-value shape, giving a concrete example across multiple keys, and directing the agent to get_title_block for valid names.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Update') and resource ('title block string fields on the board'), clearly identifying it as the write counterpart to the sibling get_title_block. It is unambiguous what the tool does, though it does not explicitly name the read sibling as an alternative in prose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The note that 'Valid field names are returned by get_title_block' implies you should call the sibling first to discover keys, which is useful implied guidance. However, there is no explicit when-to-use/when-not statement or prerequisite information.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_visible_layersA

Set exactly which layers are visible in the editor.

Args: layers: Full list of layer names to make visible (others are hidden).

ParametersJSON Schema
NameRequiredDescriptionDefault
layersYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry the behavioral burden. It does disclose replacement semantics — 'others are hidden' — which is important, but it does not cover validation, prerequisites, or whether the change is editor-only.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Very concise and front-loaded; the first sentence gives the core action. The Args block is standard and not wasteful.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Output schema exists, so return values need not be explained. For a one-parameter setter, the description covers the key replacement behavior but leaves usage context — when to call it and where layer names come from — to inference.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% and the only parameter is an array of strings. The description adds meaning by stating it is a full list of layer names and that omitted layers are hidden, though it does not specify name format or valid values.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: set layer visibility in the editor. The action is clear, but it does not differentiate itself from nearby tools like set_active_layer or list_board_layers.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implied usage is to control which layers are visible by passing a full list. There is no explicit when-to-use guidance or mention of alternatives such as set_active_layer or list_board_layers for discovering layer names.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

snapshot_boardA

Return a PNG picture of the open board (top view) to check placement and routing visually. Front copper is red, back copper blue, zone fills are tinted in their layer's colour, courtyards are grey (front) / purple (back) boxes labelled with references, airwires are yellow.

Args: side: 'both', 'front', or 'back' - which side's parts and copper to draw. show_ratsnest: Draw airwires for connections that copper (tracks, vias, zone fills) does not make yet. ratsnest_exclude_nets: Nets to leave out of the airwires, e.g. ['GND']. highlight_net: Draw this net's pads, tracks, and airwires in green. width_px: Image width in pixels (height follows the board's aspect ratio). show_zones: Draw copper zone fills (refill_zones first if they are stale).

ParametersJSON Schema
NameRequiredDescriptionDefault
sideNoboth
width_pxNo
show_zonesNo
highlight_netNo
show_ratsnestNo
ratsnest_exclude_netsNo

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations the description carries the burden and does well: it discloses the exact rendering conventions (front copper red, back blue, courtyards grey/purple, airwires yellow) and an operational caveat ('refill_zones first if they are stale'). It never explicitly states the operation is read-only/non-mutating, which is the main remaining gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with purpose, then the colour legend, then a clean Args section. The legend is detailed but each line earns its place by enabling interpretation of the returned image.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema, so the description correctly explains the return (a PNG and how to read its colours) and documents all params. It omits whether the operation mutates state and how the image is delivered (path vs bytes), which would complete a 6-param, no-annotation tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate and does fully: it documents all six params, including the valid values for 'side' ('both','front','back') that the schema leaves as a plain string, an example for ratsnest_exclude_nets (['GND']), the meaning of highlight_net (green), and the aspect-ratio behavior of width_px.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource – 'Return a PNG picture of the open board (top view)' – and names the intent (check placement and routing visually). This is enough to distinguish it from visual/export siblings like render_3d, export_svg, or export_pdf without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a clear use context ('to check placement and routing visually') but names no alternatives or when-not conditions; it does not tell the agent when to prefer this over render_3d or an SVG export. Adequate context, no exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 102 tool updatesv0.1.0
    • First observedadd_arc
    • First observedadd_arc_track
    • First observedadd_board_outline_rect
    • First observedadd_circle
    • First observedadd_line
    • First observedadd_local_label
    • First observedadd_polygon
    • First observedadd_rectangle
    • First observedadd_schematic_text
    • First observedadd_text
    • First observedadd_track
    • First observedadd_track_path
    • First observedadd_via
    • First observedadd_zone
    • First observedadd_zone_rect
    • First observedanalyze_power_budget
    • First observedarrange_row
    • First observedautoroute
    • First observedbatch_move_footprints
    • First observedcalc_track_width
    • First observedcheck_clearance
    • First observedcheck_placement
    • First observedclear_selection
    • First observedconfigure_netclasses
    • First observeddelete_items
    • First observedexecute_kipy
    • First observedexpand_text
    • First observedexport_bom
    • First observedexport_drill
    • First observedexport_gerbers
    • First observedexport_netlist
    • First observedexport_pdf
    • First observedexport_pos
    • First observedexport_step
    • First observedexport_svg
    • First observedflip_footprint
    • First observedfreerouting_status
    • First observedget_board_outline
    • First observedget_board_summary
    • First observedget_bounding_box
    • First observedget_connected_items
    • First observedget_design_rules
    • First observedget_footprint
    • First observedget_footprint_geometry
    • First observedget_items_by_net
    • First observedget_kicad_binary_path
    • First observedget_netclass_config
    • First observedget_project_info
    • First observedget_schematic_hierarchy
    • First observedget_schematic_summary
    • First observedget_selection
    • First observedget_stackup
    • First observedget_text_variables
    • First observedget_title_block
    • First observedget_version
    • First observedinstall_freerouting
    • First observedkicad_status
    • First observedlist_board_layers
    • First observedlist_dimensions
    • First observedlist_footprints
    • First observedlist_groups
    • First observedlist_labels
    • First observedlist_netclasses
    • First observedlist_nets
    • First observedlist_open_documents
    • First observedlist_pads
    • First observedlist_part_database
    • First observedlist_schematic_text
    • First observedlist_shapes
    • First observedlist_symbols
    • First observedlist_text
    • First observedlist_tracks
    • First observedlist_vias
    • First observedlist_zones
    • First observedmove_footprint
    • First observedping
    • First observedplace_near_pad
    • First observedplace_on_edge
    • First observedplace_relative
    • First observedrefill_zones
    • First observedrender_3d
    • First observedrevert_board
    • First observedrotate_footprint
    • First observedroute_pads
    • First observedrun_action
    • First observedrun_drc
    • First observedrun_erc
    • First observedrun_kicad_cli
    • First observedsave_board
    • First observedsave_board_as
    • First observedsave_schematic
    • First observedselect_items
    • First observedset_active_layer
    • First observedset_copper_layer_count
    • First observedset_footprint_locked
    • First observedset_footprint_value
    • First observedset_items_locked
    • First observedset_part_current
    • First observedset_text_variable
    • First observedset_title_block
    • First observedset_visible_layers
    • First observedsnapshot_board

TDQS

B3.1/5.0

Scored across 102 tools

Disambiguation3/5

The set spans many distinct PCB and project resources, but with 102 tools there are overlapping boundaries among list/get/summary tools, multiple placement/routing helpers, and three general escape hatches (run_action, run_kicad_cli, execute_kipy). Detailed descriptions mitigate most confusion, but an agent can still misselect among near-duplicate inspection, export, and low-level execution tools.

Naming Consistency4/5

Nearly all names use snake_case and follow a verb_noun or noun_verb convention such as save_board, list_footprints, add_track, and export_gerbers. A few outliers like ping, autoroute, kicad_status, and freerouting_status deviate from the dominant pattern, but the set remains readable and broadly consistent.

Tool Count1/5

102 tools is far beyond the 3-15 range for a coherent MCP server and exceeds the 50+ extreme-mismatch threshold. Even for a complex EDA domain, this volume creates a heavy selection burden and many capabilities could be consolidated.

Completeness4/5

Coverage is extensive for PCB work: placement, routing, zones, DRC/ERC, autoroute, netclasses, power analysis, visualization, and many export formats are present. Schematic editing is thinner (no symbol/wire creation or deletion), but execute_kipy and run_kicad_cli provide workarounds for gaps.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    MCP server for creating, modifying, and analyzing KiCAD schematic files using natural language.
    20
    MIT
  • A
    license
    B
    quality
    A
    maintenance
    An MCP server that enables AI assistants to analyze schematics, inspect PCBs, trace connections, validate designs, and generate embedded code for KiCad projects.
    39
    139
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    An MCP server that gives AI agents end-to-end control of KiCad 9+ for rule checks, manufacturing exports, production-readiness certification, and live PCB editor control.
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    An MCP server for controlling KiCad EDA software, enabling schematics, PCB design, manufacturing outputs, design checks, and library management through any MCP-compatible AI assistant.
    MIT