Skip to main content
Glama

lib_get_component_details

Retrieves complete details for one library component in a single call: metadata, all pins, parameters, models, and label style records. Use it to inspect symbols before wiring or footprint placement.

Instructions

Get full inspection of one library component in a single call.

Returns metadata, every pin, every parameter (as a flat dict), AND visual-style records for the designator, comment, pins, and each parameter (font_id, color, is_hidden, x, y, orientation, justification). The integer font_id can be expanded to {name, size, bold, italic} via obj_get_font_spec when style detail is needed; the round-trip default keeps it compact.

If library_path is provided and isn't already focused, the library is opened (focus changes), so the next lib_* call operates on it without an explicit open. Saves are deferred, opening doesn't write anything to disk.

DATASHEET DISCIPLINE: This response is the highest-density device-fact surface in the library API (pins, parameters, Manufacturer/MPN). Treat every value as a hint to find the manufacturer datasheet, not as ground truth. The response carries _datasheet_guidance and _datasheet_parts, fetch the PDF and cite a section/page before stating any pin or rating.

Args: component_name: Component LibRef as it appears in the .SchLib. library_path: Optional .SchLib full path. When omitted the currently focused library is used. component_index: Alternative to component_name. The integer index from lib_get_components. Use this to reach a component whose LibReference carries bytes you cannot reproduce (an embedded double-quote, or a control char left by a broken import) -- the name never has to round trip through the caller. Provide exactly one of component_name / component_index.

Returns: Dict with: - name, library_path, description, alias_name, part_count, pin_count - designator: {text, font_id, color, is_hidden, x, y, orientation, justification} - the on-canvas designator label (NOT just the prefix string). - comment: {text, font_id, color, is_hidden, x, y, orientation, justification} - the on-canvas comment / value label. - pins: list of {designator, name, electrical_type, x, y, orientation, hidden, label_hidden}. Pin font / color are not exposed by the Altium SDK on ISch_Pin and therefore not surfaced here. - parameters: flat dict of name -> value (cheap lookups). - parameter_styles: list of {name, value, style:{font_id, color, is_hidden, x, y, orientation, justification}} in the same order parameters appear on the symbol. - models: list of the component's implementations (footprint / SPICE / 3D links), each {model_name, model_type, is_current, datafile_links:[{entity_name, file_kind, location}]}. datafile_links is the model's source (the library it resolves from); empty when the footprint binds by name only. Empty list when the part carries no models. - _datasheet_guidance + _datasheet_parts.

Input Schema

NameRequiredDescriptionDefault
library_pathNo
component_nameNo
component_indexNo

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.6.1

TDQS

A4.6/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 thoroughly: it discloses that providing library_path changes focus, that saves are deferred, and that opening writes nothing to disk. It also describes the response shape in depth, including caveats like pin font/color not being exposed by the SDK.

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

Conciseness3/5

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

The description is front-loaded with a clear summary, but it is quite long and includes an extensive Returns section that largely duplicates the existing output schema. While well-organized, it could be trimmed significantly without losing essential guidance.

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 the tool's complexity, the lack of annotations, and the presence of an output schema, the description is complete. It covers side effects, parameter alternatives, return contents, and datasheet discipline, leaving no critical gaps for an agent to invoke it 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 compensate completely. It explains each parameter: component_name as the LibRef, library_path as an optional path to focus a library, and component_index as an alternative integer from lib_get_components, including the constraint to provide exactly one of component_name or component_index.

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 begins with a specific verb and resource: 'Get full inspection of one library component in a single call.' It immediately distinguishes this from listing tools by emphasizing 'full inspection' of a single component, and it enumerates exactly what is returned (metadata, pins, parameters, styles).

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 clear guidance on when to use component_index instead of component_name (when the LibReference has unrepresentable bytes) and when to follow up with obj_get_font_spec for expanded font details. However, it does not explicitly compare against siblings like lib_get_components or lib_get_pin_list, leaving some inference to the agent.

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