Skip to main content
Glama

Delete from server environment

apps_delete
Destructive

Deletes files, databases and database users, FTP accounts, cron jobs, Node.js and Python apps and keys of the server environment. Cannot be undone.

Input Schema

NameRequiredDescriptionDefault
idNoAlias of key_id.
nameNoDatabase, database user, or FTP user short name. The username_ prefix is added for MySQL.
pathNoFile path relative to the environment home, without the /home/... prefix. Site folders live under domains/{selected_domain} (selected_domain from session, or list domains with files_list path=domains); status.domain is the technical account domain and may not be the folder you need.
userNoFTP username without @domain.
pathsNoHome-relative paths for delete or chmod.
trashNoMove to trash instead of deleting.
actionYesOperation to run. Each oneOf entry describes one action and lists its parameters.
dbuserNoMySQL user. Prefixed with {username}_ when missing.
domainNoEnvironment domain for an app, FTP account, or backup form. Defaults to selected_domain, not a file path.
key_idNoLogin key id. Defaults to main on create. Letters and digits only.
paramsNoExtra selector parameters. PHP extension changes were rejected on the uCoz test environment.
pluginNoLanguage selector plugin: phpselector, nodejs_selector, python_selector.
sourceNoHome-relative source path.
confirmYesPass true only after the user approves this change. Required by: node_destroy, python_destroy, selector_destroy, files_delete, db_delete, db_delete_user, ftp_delete, cron_delete, login_key_delete, da_login_key_delete, visitor_key_delete.
cron_idNoId of a cron job: jobs[].id of cron_list, such as 000.
select0NoFTP account to delete: the short username from ftp_list. user@domain is accepted and the domain part is dropped. Also an alias of cron_id.
sourcesNoHome-relative paths for copy-to, move-to, or create-archive.
app_rootNoApplication directory relative to home, or /home/{username}/....
cron_idsNoIds of several cron jobs to delete (jobs[].id of cron_list).
databaseNoMySQL database. Prefixed with {username}_ when missing.
interpreterNoSelector interpreter: php, nodejs, or python.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / required
      Previous value: -[
      -  "action"
      -]New value: +[
      +  "action",
      +  "confirm"
      +]
  2. Changed3 schema fields changed
    • changedInput schema / properties / action / oneOf
      Previous value: -[
      -  {
      -    "const": "node_destroy",
      -    "description": "Destroys a Node.js application. Required: app_root, confirm."
      -  },
      -  {
      -    "const": "python_destroy",
      -    "description": "Destroys a Python application. Required: app_root, confirm."
      -  },
      -  {
      -    "const": "selector_destroy",
      -    "description": "Runs the destroy method of a language selector. Required: plugin, interpreter, confirm. Optional: params."
      -  },
      -  {
      -    "const": "files_delete",
      -    "description": "Deletes paths, sources, source or path. Required: confirm. Optional: paths, sources, source, path, trash."
      -  },
      -  {
      -    "const": "db_delete",
      -    "description": "Deletes a MySQL database (name in database or name). Required: confirm. Optional: database, name."
      -  },
      -  {
      -    "const": "db_delete_user",
      -    "description": "Deletes a MySQL user (name in dbuser or name). Required: confirm. Optional: dbuser, name."
      -  },
      -  {
      -    "const": "ftp_delete",
      -    "description": "Deletes an environment FTP account (short username from ftp_list in select0, user or name). Required: confirm. Optional: select0, user, name, domain."
      -  },
      -  {
      -    "const": "cron_delete",
      -    "description": "Deletes cron jobs by cron_id (or cron_ids) from cron_list. Required: confirm. Optional: cron_id, cron_ids, select0."
      -  },
      -  {
      -    "const": "login_key_delete",
      -    "description": "Deletes a login key record (default main). Required: confirm. Optional: key_id, id."
      -  },
      -  {
      -    "const": "da_login_key_delete",
      -    "description": "Deletes a panel login key. Required: key_id, confirm. Optional: id."
      -  },
      -  {
      -    "const": "visitor_key_delete",
      -    "description": "Deletes the visitor encryption key. Required: confirm."
      -  }
      -]New value: +[
      +  {
      +    "const": "node_destroy",
      +    "description": "Destroys a Node.js application. Required: app_root, confirm."
      +  },
      +  {
      +    "const": "python_destroy",
      +    "description": "Destroys a Python application. Required: app_root, confirm."
      +  },
      +  {
      +    "const": "selector_destroy",
      +    "description": "Runs the destroy method of a language selector. Required: plugin, interpreter, confirm. Optional: params."
      +  },
      +  {
      +    "const": "files_delete",
      +    "description": "Deletes paths, sources, source or path. Required: confirm. Optional: paths, sources, source, path, trash."
      +  },
      +  {
      +    "const": "db_delete",
      +    "description": "Deletes a MySQL database (name in database or name). Required: database or name, confirm."
      +  },
      +  {
      +    "const": "db_delete_user",
      +    "description": "Deletes a MySQL user (name in dbuser or name). Required: dbuser or name, confirm."
      +  },
      +  {
      +    "const": "ftp_delete",
      +    "description": "Deletes an environment FTP account (short username from ftp_list in select0, user or name). Required: confirm. Optional: select0, user, name, domain."
      +  },
      +  {
      +    "const": "cron_delete",
      +    "description": "Deletes cron jobs by cron_id (or cron_ids) from cron_list. Required: confirm. Optional: cron_id, cron_ids, select0."
      +  },
      +  {
      +    "const": "login_key_delete",
      +    "description": "Deletes a login key record (default main). Required: confirm. Optional: key_id, id."
      +  },
      +  {
      +    "const": "da_login_key_delete",
      +    "description": "Deletes a panel login key. Required: key_id or id, confirm."
      +  },
      +  {
      +    "const": "visitor_key_delete",
      +    "description": "Deletes the visitor encryption key. Required: confirm."
      +  }
      +]
    • changedInput schema / properties / cron_id / description
      Previous value: -"Cron id from cron_list, for example 000. Sent as select0."New value: +"Id of a cron job: jobs[].id of cron_list, such as 000."
    • changedInput schema / properties / cron_ids / description
      Previous value: -"Several cron ids to delete (select0, select1, ...)."New value: +"Ids of several cron jobs to delete (jobs[].id of cron_list)."
  3. Added

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already flag destructiveHint=true, but the description adds the important permanence trait ('Cannot be undone') and the breadth of destruction targets, which is real context beyond a generic destructive flag. It stops short of describing the confirm/user-approval gate or any permission requirements, which live only in the schema.

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 short sentences, front-loaded with the resource scope and closed with the irreversible-outcome warning. No filler, nothing repeated from the name/title.

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

Completeness3/5

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

For a 21-parameter, multi-action destructive tool, the description establishes purpose and irreversibility but omits the operational workflow: that an action is required to select the deletion type, that confirm must only be passed after user approval, and that ids should come from listing tools. With a fully documented schema these gaps are partly absorbed, but the description alone would leave an agent underspecified.

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% and each action's oneOf entry already lists required and optional parameters, so the schema does the parameter work. The description only implies a mapping between listed resource types and the action enum, adding no syntax or format detail beyond the schema.

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

Purpose4/5

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

The description names a specific verb (deletes) and enumerates the exact resource families covered: files, databases, database users, FTP accounts, cron jobs, Node.js/Python apps and keys, matching the action enum. It is clear what the tool does, though it doesn't explicitly carve out territory versus overlapping siblings such as files_delete or ftp_delete.

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

Usage Guidelines3/5

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

Usage is only implied through the scope phrase 'of the server environment'. There is no statement about when to pick apps_delete over apps_write or the narrower files_delete/ftp_delete/cron-style siblings, and no prerequisites (e.g. gather ids from cron_list/ftp_list first) are mentioned.

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.