Skip to main content
Glama

Copy Ssh Config

tm_inventory_copy_ssh_config

Copies local SSH config files to multiple inventory hosts at once, using YAML host groups for bulk deployment.

Instructions

Copy ssh config (tm_inventory). Bulk inventory operations against YAML host groups.

Input Schema

NameRequiredDescriptionDefault
cfgNoLocal SSH config path (copy_ssh_config).
cmdNoShell command (run_command).
keyNoShared key path (configure_key_auth)./app/.ssh/id_ed25519
hostNorun_command only. Optional single-host alias to target instead of the whole 'group' fan-out — the safe way to reach ONE inventory host (e.g. 'gb10') without running against 'homelab'. Resolved and authorized through the same alias store tm_remote/tm_hosts use, so the two are one source of truth: an unknown or unauthorized alias is rejected outright, never silently skipped. Takes precedence over 'group' when set.
groupNoTarget group.all
lpathNoLocal file path (send_file).
rpathNoRemote file path (send_file/receive_file).
key_pfxNoPrefix for new keys (rotate_key)./root/.ssh/id_
previewNorun_command only. If true, resolve the exact target host(s) for 'host'/'group' and return them in 'resolved_hosts' WITHOUT running 'cmd' — lets a caller verify scope before executing for real (no surprise fan-out). The real (non-preview) response also always includes 'resolved_hosts' for the same reason.
rmt_cfgNoRemote config path (copy_ssh_config)./root/.ssh/config
timeoutNoCommand timeout in seconds.
key_typeNoKey type: rsa or ed25519.ed25519
parallelNoRun parallel.
inventoryNoYAML inventory path (default: $XDG_CONFIG_HOME/agent-connectors/inventory.yaml)./root/.config/agent-connectors/inventory.yml
max_threadsNoMax threads.
lpath_prefixNoLocal dir prefix (receive_file).

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv3.3.1

TDQS

C2.5/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=false, idempotentHint=false, destructiveHint=false and openWorldHint=true, so the safety profile is partly covered. The description adds nothing beyond that: it does not say that copying a config overwrites rmt_cfg, whether an existing remote config is backed up, whether auth/prerequisites are required, or how failures across a host group are handled. For a mutation tool with a non-idempotent flag, that is a real gap.

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?

It is short and front-loaded, so there is no bloat. But the second sentence does not earn its place: it restates the inventory family theme without adding scope, direction, or constraints. Being terse here is under-specification rather than effective conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained. Still, for a 16-parameter mutation tool in a family of look-alike siblings, the description omits the copy direction, which parameters actually apply, and the group fan-out semantics. An agent cannot reliably invoke this from the description alone.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3 and the schema carries the parameter burden. The description contributes nothing to disambiguate the 16 shared parameters, several of which belong to other tools (cmd, lpath, key_pfx), so it neither adds meaning nor compensates for the ambiguity an agent faces when picking cfg vs rmt_cfg.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

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

The first sentence names a specific verb and resource ("Copy ssh config"), which is better than a tautology. However, it does not distinguish this tool from the direct sibling tm_remote_copy_ssh_config, and it never says whether the copy goes local-to-remote or remote-to-local. The second sentence ("Bulk inventory operations against YAML host groups") is generic family boilerplate rather than a scope statement for this specific tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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

There is no when-to-use guidance and no named alternative, even though tm_remote_copy_ssh_config is an obvious sibling that an agent must choose between. The phrase "Bulk inventory operations against YAML host groups" hints at the group-based scenario but never states it as a selection criterion or gives a when-not.

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