Skip to main content
Glama

Move service file

move_service_file
Destructive

Rename or move one file or symlink on a VPSnet server within the same filesystem, using overwrite control and explicit confirmation.

Instructions

Rename or move one entry (a symlink itself, not its target); never across file systems (filesCrossFilesystem) and never onto an existing name unless overwrite=true (a directory is never replaced). A mount point answers filesBusy. Set confirm=true only after the user approved this exact rename or move. A slow guest answers 202 with an operation: this tool polls it itself and returns the final answer, or, after waitSeconds, the operationId to continue with get_service_file_operation (never repeat the call). Requires files:manage on a FULL-access API key as an explicit grant; the hosted connector needs vm:files:write. Execution-equivalent targets (authorized_keys, cron, systemd units, sudoers, PAM, profile files) are refused to every API key (filesExecEquivalentScopeMissing). Availability: Firecracker servers need the updated guest agent (filesUnavailable reason agent_update_required; node_update_required while the host node is not updated yet) and Cloud VPS (KVM) servers need the VDS file-manager switch (reason feature_disabled while it is off); relay any unavailable reason verbatim and never work around it. A server whose 2FA lock is on answers 423.

Input Schema

NameRequiredDescriptionDefault
toYesAbsolute path inside the server (UTF-8, at most 4096 bytes, no . or .. components)
fromYesAbsolute path inside the server (UTF-8, at most 4096 bytes, no . or .. components)
confirmYesThe user approved this exact rename or move
orderNoYesTenant-owned service order number, e.g. VP12345
overwriteNo
waitSecondsNoHow long this tool waits for a slow guest's operation before returning its operationId (default 30, recursive delete and extract 60)
confirmSystemPathNoSet true only after the user explicitly approved changing this operating-system path (otherwise 409 filesSystemPathConfirmRequired)

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv2.3.17

TDQS

A4.8/5.0
Behavior5/5

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

Adds substantial context beyond the destructiveHint annotations: full permission requirements (files:manage on a FULL-access key, vm:files:write), hard refusals for exec-equivalent paths, 423 on 2FA lock, and 202 async handling with namespaced error codes. This is exactly the behavioral disclosure a mutation tool 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?

Front-loaded with the core purpose and constraint, and nearly every clause carries decision-relevant information. It is a dense single block, though, and splitting the availability/error notes from the core semantics would improve scanability.

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 7-parameter mutating tool with no output schema, this covers the async return shape (final answer or operationId after waitSeconds), error conditions, permissions, and per-platform availability. Nothing an agent needs to call it correctly is missing.

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 already 86%, yet the description still adds meaning: overwrite cannot replace a directory, confirm gates on user approval of the exact operation, and waitSeconds governs the poll-return tradeoff. Minor gap: confirmSystemPath is only indirectly referenced via the filesSystemPathConfirmRequired error.

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 precise verb+resource ('Rename or move one entry') and immediately scopes it: a symlink itself, not its target. This cleanly distinguishes it from siblings like write_service_file, create_service_directory, and upload_service_file.

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 when/when-not: never across file systems, never onto an existing name unless overwrite=true, set confirm=true only after user approval, and route the async case to get_service_file_operation rather than repeating the call. Availability constraints and permission prerequisites are spelled out.

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