Skip to main content
Glama

design_connect_bus

Wires a parallel bus across multiple parts in one call, joining the i-th pin of each endpoint into one net per bit to keep wide interfaces aligned without manual net-by-net wiring.

Instructions

Wire a parallel bus across two+ parts in one call.

A wide interface -- an 8-bit data bus between an MCU and a display, an address bus to a memory -- is otherwise N near-identical net objects where bit i of one side is easily misaligned with bit i+1 of the other. This joins the i-th pin of every endpoint into one net per bit, so alignment is structural and the whole bus is one call. It creates NO parts: the endpoints reference parts already in the plan. The nets share one part-set -- the signature the pipeline uses to DRAW a >=4-bit bus as a bus glyph automatically.

Args: plan_json: the DesignPlan as a JSON string or dict. endpoints: one dict per part on the bus, {"refdes": str, "pins": [pin, ...]}. Every endpoint must list the same number of pins (the bus width); bit i joins pins[i] of each endpoint. net_names: explicit name per bit (length must equal the width); omitted -> f"{net_prefix}{start_index+i}" (D0, D1, ...). net_prefix: prefix for auto-named bits. start_index: first bit number for auto-naming.

Returns: {ok, plan, added: {nets, extended_nets}, notes, validation} -- same shape as design_add_circuit_block. ok is False on a bad endpoint / width mismatch / schema error.

Input Schema

NameRequiredDescriptionDefault
endpointsYes
net_namesNo
plan_jsonYes
net_prefixNoD
start_indexNo

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.6.1

TDQS

A4.5/5.0
Behavior4/5

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

No annotations exist, so the description carries the burden and does so well: it discloses the mutation scope (creates nets and extended_nets, creates no parts), a downstream side effect (shared part-set triggers automatic bus-glyph drawing for >=4-bit), and failure modes (ok False on bad endpoint / width mismatch / schema error). It does not mention idempotency, permissions, or whether existing nets are overwritten.

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-call benefit and the misalignment rationale are front-loaded before the Args block, and every parameter note earns its place. The middle explanatory sentence about misaligned bits is slightly rhetorical but justifies the tool's existence, so it is only marginally verbose.

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 an output schema, the description covers purpose, part-creation semantics, parameter shapes, naming behavior, return shape, and failure conditions. An agent can invoke it correctly without opening the schema, which is the standard for completeness.

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?

With 0% schema description coverage the description must compensate, and it does: endpoints is documented with its exact shape ({"refdes", "pins"}), the equal-width constraint, and the bit-i-to-pins[i] join rule; net_names length constraint is stated; net_prefix and start_index are tied to the auto-naming pattern 'D0, D1, ...' with default prefix D. This adds 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.

Purpose5/5

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

Specific verb+resource: 'Wire a parallel bus across two+ parts in one call', followed by a concrete scenario (8-bit data bus between an MCU and a display, an address bus to memory). It is clearly distinguishable from sibling net/part tools like sch_place_bus and design_add_circuit_block because it operates on existing parts and produces one net per bit.

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 frames the situation where this is the right tool ('otherwise N near-identical net objects where bit i of one side is easily misaligned') and states the constraint 'It creates NO parts: the endpoints reference parts already in the plan'. No sibling tool is named as an alternative, so it stops short of a full when/when-not routing.

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

Deploy Server

Other Tools