Skip to main content
Glama

buildVpsInstance

Destructive

buildVpsInstance: Stage an operating system install (or reinstall) on a VPS instance. DESTRUCTIVE: ERASES ALL DATA on the server, including any deployed application, and cannot be undone. The install is asynchronous; afterwards poll getVpsInstanceDetails until buildState is COMPLETE. Requires authentication. Returns an actionId: present the summary to the user, then call executeConfirmedAction with the actionId if they approve.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
swapNoSwap size: 256, 512, or 768 (MB), or 1, 1.5, 2, 3, 4, 5, 6, or 8 (GB).
hostnameNoHostname for the rebuilt server; defaults to the instance's current hostname.
sshKeyIdsNoInteger SSH key ids from listMySshKeys, injected during install; without one you may not be able to log in.
instanceIdYesVPS instance id from listMyVpsInstances.
sessionKeyNoSession key (osk_...) returned by checkDeviceLoginStatus. Pass it on every call when logged in via the in-chat device flow; omit when connected via OAuth.
operatingSystemIdYesInteger OS template id from listVpsOsTemplates, resolved with this same instanceId.

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. Changed5 schema fields changed
    • addedInput schema / properties / hostname / description
      Added value: +"Hostname for the rebuilt server; defaults to the instance's current hostname."
    • addedInput schema / properties / instanceId / description
      Added value: +"VPS instance id from listMyVpsInstances."
    • addedInput schema / properties / operatingSystemId / description
      Added value: +"Integer OS template id from listVpsOsTemplates, resolved with this same instanceId."
    • addedInput schema / properties / sshKeyIds / description
      Added value: +"Integer SSH key ids from listMySshKeys, injected during install; without one you may not be able to log in."
    • addedInput schema / properties / swap / description
      Added value: +"Swap size: 256, 512, or 768 (MB), or 1, 1.5, 2, 3, 4, 5, 6, or 8 (GB)."
  2. First observed

TDQS

A4.5/5.0
Behavior5/5

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

The description goes well beyond the destructiveHint annotation by stating that it ERASES ALL DATA, is irreversible, is asynchronous, requires authentication, and returns an actionId requiring confirmation. This gives the agent a clear picture of consequences and lifecycle.

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?

The description is compact and front-loaded, starting with the destructive warning before explaining the async flow and confirmation step. Every sentence adds necessary operational or safety information.

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, asynchronous tool with no output schema, the description fully covers the lifecycle: prerequisites, destructive effect, completion polling, and confirmation action. An agent can safely and correctly invoke the tool based on this text.

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 schema already documents all six parameters well. The tool description doesn't add per-parameter detail, but it doesn't need to; the baseline of 3 applies.

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 opens with a specific verb+resource: 'Stage an operating system install (or reinstall) on a VPS instance.' It clearly identifies the action and distinguishes it from siblings like orderVps (creating a new instance) and deleteVpsInstance (removing one).

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 provides explicit operational guidance: the install is asynchronous, poll getVpsInstanceDetails until buildState is COMPLETE, and then use executeConfirmedAction with the returned actionId after user approval. It doesn't name explicit when-not/alternatives, but there is no direct sibling for this operation, so the context is sufficient.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

A3.6/5.0
Disambiguation3/5

Most tools target distinct resource-action pairs, but there are several overlapping clusters: six domain-suggestion tools (addPrefixToDomain, addSuffixToDomain, generateDomainSuggestions, bulkDomainSuggestions, spinDomainWords, suggestAlternatives) and overlapping account-info tools (getMyProfile, getAccountSummary, getRecentActivity, getMyAuditLogs). Descriptions help, but with 105 tools an agent will regularly face near-identical choices.

Naming Consistency4/5

The dominant convention is verbNoun camelCase (createContact, listDnsRecords, updateNameservers), which is readable and predictable. Deviations exist in the osirApp* and osirSite* families, where the noun precedes the verb, and a few names like suggestAlternatives and spinDomainWords break the pattern.

Tool Count1/5

105 tools is far beyond a coherent MCP server surface; even if the platform genuinely spans domains, DNS, email, VPS, billing, and app hosting, this should be split into focused servers. Many tools are single-purpose getters that add selection overhead rather than earning their place as one integrated set.

Completeness4/5

The covered services have broad CRUD/lifecycle coverage: contacts, DNS, hosts, domains, email, VPS, SSH keys, invoices, and Osir apps all have create/read/update/delete paths. Some registrar-specific operations (e.g., contact reassignment after registration, domain deletion/redemption) are missing, and the sheer sprawl makes coverage hard to verify.