Skip to main content
Glama

app_update_from_libraries

Drives Altium GUI to update schematic or PCB components from libraries and execute ECO changes, defaulting to dry-run preview before irreversible application.

Instructions

Drive Tools > Update From Libraries, ECO included.

THIS PRESSES BUTTONS IN THE GUI. Update From Libraries has no API: Altium documents it as a dialog, there is no process that launches it, and the operation ends in an Engineering Change Order that only a click can execute. So this matches windows belonging to the Altium process and presses named buttons on them.

WHAT IT WILL DO AT THE END. The last steps press Validate Changes and then EXECUTE CHANGES on the ECO. That applies every pending change to the design and is not undoable through this channel. Take app_checkpoint first.

WHAT IT CANNOT TELL YOU. While the wizard is open Altium's script engine is blocked, so the bridge cannot be asked anything, and an ECO's pending changes sit in a grid that exposes no text to Windows. The reply records the windows and buttons seen; it does NOT contain the change list. Read the Messages panel afterwards for that.

NOTHING IS SCRIPTED. There is no list of expected dialogs. Each one that appears is read, classified, and answered by the ROLE of the buttons it offers, then the screen is read again. That is deliberate: a scripted version failed on live Altium because the editor legitimately shows dialogs no list contained, and waited for a change order that was never coming while an unlisted modal blocked the session.

It STOPS rather than guessing when a dialog reports an error, asks a question it was not sent to answer, or offers no button whose meaning is recognised.

RUN IT DRY FIRST, WHICH IS THE DEFAULT. A dry run reads the first dialog, reports what it is and what it would press, and presses nothing.

LAUNCHING. already_open (the default) attaches to a wizard you have opened yourself, which avoids depending on a menu path nobody has verified. menu asks the bridge to fire the menu first; that request will not return until the wizard closes, which is expected and is why it is issued without waiting.

Args: target: schematic for Tools > Update From Libraries, or pcb for Tools > Update From PCB Libraries. launch: already_open or menu. dry_run: report without pressing. Default true. confirm_execute_eco: must be true for a real run, and it is named for the specific consequence rather than being a general "confirm", because the irreversible part is the ECO and not the wizard. answer_confirmations: answer routine "carry on?" prompts. Altium asks "Continue and create ECO?" before every change order, so with this off the run stops there and can never finish. A confirmation mentioning anything irreversible (delete, overwrite, cannot be undone) is still left alone whatever this is set to. first_step_timeout: seconds to wait for the FIRST dialog to appear. Raise it when launching by menu on a large project.

Returns: Dict with ok, dry_run, committed, stopped_for_a_human, finished explaining how the run ended, and steps: for every dialog, what it was, what it said, what it offered, what was pressed and WHY.

Input Schema

NameRequiredDescriptionDefault
launchNoalready_open
targetNoschematic
dry_runNo
first_step_timeoutNo
confirm_execute_ecoNo
answer_confirmationsNo
menu_may_steal_focusNo

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 full burden and does so well: it discloses that the final step is irreversible and not undoable through this channel, that the script engine is blocked while the wizard is open, that no API exists, and that it halts on unrecognized dialogs. The one gap is that menu_may_steal_focus is never mentioned, so a focus-stealing side effect of the menu launch path goes undisclosed.

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?

Long (roughly 450 words) but front-loaded with a clear statement of the mechanism, then sectioned with capitalized headers (WHAT IT WILL DO AT THE END, WHAT IT CANNOT TELL YOU, LAUNCHING) that let an agent scan. Some redundancy between 'NOTHING IS SCRIPTED' and 'It STOPS rather than guessing' costs it the top score, but the length is justified by the irreversibility of 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, yet the description still adds useful return-value framing (ok, dry_run, committed, stopped_for_a_human, finished, steps with the WHY per dialog), which is more valuable than the bare schema. Combined with the mutation, launch, and failure-mode coverage, only the undocumented menu_may_steal_focus keeps it from being 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?

Schema coverage is 0% and the schema has no enums or per-field descriptions, so the description must compensate; it does for six of seven parameters, giving concrete values for target ('schematic'/'pcb') and launch ('already_open'/'menu') and explaining the consequence-named confirm_execute_eco and the timeout tuning. menu_may_steal_focus is left entirely undocumented.

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: it drives Altium's Tools > Update From Libraries wizard by pressing GUI buttons, through to executing the ECO. It distinguishes itself from the generic siblings (app_drive_dialogs, app_run_menu, app_press_dialog_button) by naming the exact Altium dialog and target variant, so an agent can tell what it 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 Guidelines5/5

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

Explicit routing: dry_run defaults to true and the text says 'RUN IT DRY FIRST', launch defaults to already_open to avoid an unverified menu path, and it directs the agent to take app_checkpoint first and to read the Messages panel afterwards for the change list. It also states when it stops rather than proceeding, which is the key exclusion an agent needs.

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