Skip to main content
Glama

Create service directory

create_service_directory

Creates a directory at an absolute path on a VPSnet service order, optionally building missing parents and polling slow guest operations for the final result.

Instructions

Create a directory (0755, owned by the parent directory's owner unless that is root). parents=true creates missing parents and answers an existing directory as it is. 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
pathYesAbsolute path inside the server (UTF-8, at most 4096 bytes, no . or .. components)
orderNoYesTenant-owned service order number, e.g. VP12345
parentsNo
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.5/5.0
Behavior5/5

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

Goes far beyond the annotations: it discloses required scopes (files:manage on a FULL-access key, vm:files:write for the hosted connector), security refusals (execution-equivalent targets refused to every key with filesExecEquivalentScopeMissing), availability gates (agent_update_required, node_update_required, feature_disabled), and error codes (202, 409, 423). Few definitions this thoroughly expose failure modes and prerequisites.

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 core action and mode are front-loaded, and the dense remainder is operational detail rather than filler. It is a long wall of prose in a single block, which would benefit from structuring, but nearly every clause carries actionable information.

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?

With no output schema, the description still explains the return shape (final answer, or an operationId after waitSeconds) and the various failure responses. Combined with 80% parameter coverage and full annotation coverage, an agent has enough to invoke and interpret it correctly.

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 80%, and the description compensates for the gap by defining the undocumented 'parents' boolean ('creates missing parents and answers an existing directory as it is') and the waitSeconds polling semantics. It also implicitly explains confirmSystemPath via the 409 filesSystemPathConfirmRequired outcome.

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+resource (create a directory) and immediately qualifies it with the mode and ownership semantics (0755, owner inherited from parent unless root). This distinguishes it cleanly from sibling file tools like write_service_file, move_service_file, and delete_service_files.

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?

Explicitly routes the agent: a slow guest's 202 is polled internally, and after waitSeconds the operationId should be continued via get_service_file_operation with the explicit warning 'never repeat the call'. It stops short of framing the tool-selection decision (when to create a directory versus other file operations), but operational usage is well covered.

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