Skip to main content
Glama

sch_place_dblib_component

Places a DbLib part on a schematic sheet at specified coordinates using a database row key, verifying the part's database link upon placement.

Instructions

Place one database library (DbLib) part on a schematic sheet.

Acts on a .SchDoc: the active sheet, or sheet_path. The part is built by Altium from the database row (symbol, footprints and parameters, with its database link) and dropped at (x, y). NOT INTERACTIVE: nothing is attached to the cursor and nothing waits for a click.

THE DbLib MUST BE AVAILABLE TO ALTIUM. Altium finds a DbLib part by the library's file name among its available libraries, so the DbLib has to be installed (lib_install_library) or in the project. The call refuses before touching the sheet when it is not, or when table is not one the DbLib declares.

database_linked reads the placed part's DatabaseTableName back: True means the part carries its database link, False that Altium built it without one. lib_reference is the symbol it used.

Do not draw a schematic part by part with this. A sheet comes from a DesignPlan through design_execute_plan; this is for adding a part a person picked from their company library.

Args: library_path: Full path of the .DbLib file. table: A table the DbLib declares. key: The row's key value (key in a lib_dblib_search result). x, y: Location in mils. rotation: 0, 90, 180 or 270. designator: Optional designator to stamp on the part. sheet_path: Optional .SchDoc path; default the active sheet. part_id: Which part of a multi-part component to place, from 1 (A). Left out, Altium's default part is placed.

Returns: {"placed", "library_path", "table", "key", "lib_reference", "database_table", "database_linked", "x", "y", "rotation", "part_id", "part_count", "part_id_applied", "designator"}. part_id is read back off the placed part; a part_id above part_count is not applied and part_id_applied says so.

Input Schema

NameRequiredDescriptionDefault
xYes
yYes
keyYes
tableYes
part_idNo
rotationNo
designatorNo
sheet_pathNo
library_pathYes

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?

With no annotations, the description carries the full burden and does well: it declares the mutation (part built by Altium and dropped at x/y), the non-interactive behavior, and a hard precondition with a refusal path ("The call refuses before touching the sheet"). It also explains what database_linked and lib_reference read back. It stops short of stating undo/persistence semantics or what happens to the current selection.

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, then prerequisites, then the anti-pattern, then args/returns — a sensible reading order with no filler sentences. It runs long, and some of the Args/Returns text restates what the schema already lists, which costs a point.

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 9-parameter, 5-required mutating tool with no annotations, it covers purpose, prerequisites, failure modes, and even return-field semantics (including the part_id above part_count edge case) despite an output schema existing. An agent has everything needed to call it correctly or know why it will be refused.

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 for all nine parameters: it clarifies that table must be one the DbLib declares, that key is the value from a lib_dblib_search result, that x/y are in mils, that rotation is limited to 0/90/180/270, and that part_id is 1-based (A) with a default when omitted. This meaningfully exceeds the bare titles 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 and resource ("Place one database library (DbLib) part on a schematic sheet") and immediately narrows scope to .SchDoc targets. It explicitly separates itself from both the non-DbLib placement route and from design_execute_plan, so an agent can distinguish it 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 an explicit when-not ("Do not draw a schematic part by part with this... this is for adding a part a person picked from their company library") and names the alternative (design_execute_plan). What's missing is differentiation from the closest siblings in the catalog, sch_place_components and sch_place_vault_components, which an agent could equally reach for.

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