Skip to main content
Glama

lib_move_components

Moves matching schematic library components, including symbols, parameters, and models, between .SchLib files in bulk by explicit names or regex, with optional source deletion.

Instructions

Move matching components (symbol + params + models) between SchLibs.

Bulk analog of lib_copy_component: copies every matching component from source_schlib to dest_schlib (Replicate carries the whole symbol, its parameters and its models) in one pass, then removes them from source unless delete_from_source is False. This is the piece that makes a full library split a single call.

Provide either names (explicit LibReferences) or name_regex (matched against the source's component names). With names it is one IPC call; with name_regex the source component list is fetched first to resolve the matches, then the move runs. A component already present in dest is skipped unless overwrite=True.

Args: source_schlib: source .SchLib path. dest_schlib: destination .SchLib path. names: explicit list of component LibReferences to move. name_regex: regex matched against source component names when names is not given. delete_from_source: remove moved components from source (default True). overwrite: replace a same-named component already in dest. dry_run: resolve the selection and report it WITHOUT moving anything. Worth doing whenever name_regex is used: the pattern is applied with search, not a full match, so R selects every name containing an R, and the default is to delete them from the source afterwards.

Returns: {"success": true, "moved": N, "skipped": N, "failed": N}, or in dry-run {"dry_run", "resolved", "count", ...} with nothing sent to the bridge.

A failed copy does not delete: the handler counts it in failed and moves on, so the source keeps it. What is NOT recoverable is overwrite=True replacing a different component of the same name in the destination, which is why dry_run reports both flags.

Input Schema

NameRequiredDescriptionDefault
namesNo
dry_runNo
overwriteNo
name_regexNo
dest_schlibYes
source_schlibYes
delete_from_sourceNo

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.6.1

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 behavioral burden and does so thoroughly: it discloses that components are removed from source by default, that failed copies are not deleted, that overwrite=True is irreversible for same-named components, and that dry_run reports resolved selections without moving anything. This is exactly the kind of destructive-operation context an agent needs.

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 long but warranted given 7 undocumented parameters and destructive behavior. It is front-loaded with purpose and selection behavior, though the Returns paragraph is somewhat redundant because an output schema exists.

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, 0% schema coverage, and lack of annotations, the description provides complete coverage of selection modes, side effects, error handling, and parameter meanings. An agent has everything needed to invoke it safely.

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%, but the description documents all 7 parameters in an Args section, giving meaning for names, name_regex, delete_from_source, overwrite, dry_run, and both paths. This fully compensates for the schema's lack of 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?

The description states a specific verb and resource ('Move matching components between SchLibs') and immediately distinguishes it from the sibling lib_copy_component by calling it the 'bulk analog'. An agent can tell exactly what this tool does and how it differs from the copy tool.

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?

It explicitly specifies the two selection modes (names or name_regex), gives a concrete warning to use dry_run whenever name_regex is used because matching uses `search` not full match, and explains overwrite/skip semantics. This is clear when-to-use guidance with an explicit alternative named.

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