Skip to main content
Glama

Copy a file to a QNX target

file_put
Destructive

Copies a host file to a QNX target under /tmp or /data, verifies size, mode, and SHA-256, then installs it atomically; refuses symlinks/directories and won't overwrite unless enabled.

Instructions

Copy one host file to the target (below /tmp or /data, never into qnx-mcp's own directory) through a temporary name, verify size, mode and SHA-256 on the target, then install it atomically. Destinations that are directories or symlinks, and parent directories that are symlinks, are refused. Never replaces an existing file unless overwrite=true.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "target": "<target>",
      "local_path": "<local_path>",
      "remote_path": "<remote_path>"
    },
    "name": "file_put"
  }
}

Input Schema

NameRequiredDescriptionDefault
modeNoOctal permissions, e.g. 0644 or 07550644
max_mbNo
targetYesTarget name such as 'tb' (lowercase letters, digits, '-', '_'); must be inside the server allowlist
overwriteNo
local_pathYesHost path of the file to copy
remote_pathYesAbsolute destination on the target, e.g. /tmp/app/config.json

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.3.0

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true, readOnlyHint=false, and idempotentHint=false, so the description does not have to re-state the safety profile. It adds substantial context the annotations cannot express: the temporary-name-plus-verify-then-atomic-install sequence, the path allowlist, the symlink and directory refusals, and the exact overwrite semantics. It does not contradict anything in the annotations; if anything it clarifies why destructiveHint is true.

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

Conciseness5/5

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

Two sentences, front-loaded with the verb and resource, then the mechanism, then the restrictions, ending with the overwrite caveat. Every clause carries distinct information (scope, atomicity, verification, refusals, overwrite), with no padding or repetition of schema fields.

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 destructive mutation tool with six parameters and full annotations, the description covers the destination allowlist, symlink handling, atomic install behavior, verification steps, and the overwrite guard. An output schema exists, so return values need not be described. The only gaps are max_mb's truncation behavior and whether refused destinations raise errors, both minor against the overall coverage.

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 67%, with three parameters (mode, max_mb, overwrite) documented only by the schema, so the description does not need to repeat default values or octal mode examples. The description does add real meaning for overwrite (never replaces an existing file unless overwrite=true) and for remote_path constraints (/tmp or /data, not qnx-mcp's own directory) beyond the schema's absolute-path note. The baseline for this coverage level is 3, and the description meets it but does not add meaning for max_mb or mode beyond what the schema provides.

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 specifies the verb (copy/install a host file onto a QNX target), the mechanism (temporary name, verify size/mode/SHA-256, atomic install), and the allowed destination scope (/tmp or /data, never qnx-mcp's own directory). It clearly distinguishes itself from file_get and file_list, the other file-oriented siblings, by naming the host-to-target direction.

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 concrete usage constraints: destinations must be below /tmp or /data, directory or symlink destinations and symlinked parents are refused, and existing files are preserved unless overwrite=true. It does not explicitly name a sibling alternative (e.g., file_get for the reverse direction), but the direction and scope are unambiguous enough to route correctly.

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