Skip to main content
Glama

apps_tool

Server scripts environment on the selected site (call select_site first). Not modules_tool (panel modules), not files_tool or ftp_tool (the site storefront). uAPI: status, activate, visitor encryption key, login keys. Environment (DirectAdmin): session, files, archives, MySQL, PHP/Node/Python, FTP, cron, account backup, phpMyAdmin SSO. Order: get_guide, status, ensure_ready (confirm only after the user approves creating the account). File paths are relative to the environment home. Do not prefix /home and do not invent folders from status.domain; use session selected_domain or files_list path=domains. The download link uses the technical domain public_html via https://{site}/apps/mcp_dl/.... Large and binary files return that public URL instead of bytes. SQL export/import returns a phpMyAdmin link and does not send the dump. Login key main is stored for this site and is not included in the response. MySQL names are prefixed with {username}. FTP create uses type=ftp. Cron delete uses select0 (cron_id from cron_list). confirm:true is required for activate, key rotation/deletion, file/db/app removal, cron/ftp deletion, backup, and legacy file edit.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
idNoAlias of key_id.
hourNoCron hour. Default *.
nameNoDatabase, database user, or FTP user short name. The username_ prefix is added for MySQL.
pathNoHome-relative file path. Not /home/... .
permNoPermission bits as a number, for example 644.
userNoFTP username without @domain.
hostsNoMySQL host patterns.
limitNoListing limit.
mergeNomergeAndOverwrite for copy-to, move-to, and extract.
monthNoCron month. Default *.
partsNoBackup components: domain, database, ftp, email, subdomain. Default domain.
pathsNoHome-relative paths for delete or chmod.
queryNoFile name query (files_search).
trashNoMove to trash instead of deleting.
actionYesOperation. get_guide explains the order of calls.
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.
minuteNoCron minute. Default 0.
offsetNoListing offset.
paramsNoExtra CloudLinux params. PHP extension changes were rejected on the uCoz test environment.
pluginNoCloudLinux plugin for selector: phpselector, nodejs_selector, python_selector.
sourceNoHome-relative source path.
app_uriNoPublic path. /hello is served as https://{site}/apps/hello.
charsetNoMySQL charset.
commandNoCron shell command. This path may be absolute /home/{username}/... .
confirmNoRequired after explicit user approval for destructive actions and activate.
contentNoUTF-8 file text for files_write, files_patch, or files_legacy_edit.
cron_idNoCron id from cron_list, for example 000. Sent as select0.
membersNoArchive member names. Empty means all.
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.
versionNoPHP version (8.2, 8.3, native), Node version (default 22), or Python version (default 3.11).
app_modeNoNode only: development or production. Default production. Not sent for Python.
app_rootNoApplication directory relative to home, or /home/{username}/....
cron_idsNoSeveral cron ids to delete (select0, select1, ...).
databaseNoMySQL database. Prefixed with {username}_ when missing.
env_varsNoOptional environment variables for a new Node or Python app.
passwordNoPassword for a new DB user, FTP account, or DirectAdmin login key. Omit to let the environment generate a DB password.
collationNoMySQL collation.
dayofweekNoCron day of week. Default *.
overwriteNoOverwrite on write/copy/move. files_write defaults to true.
dayofmonthNoCron day of month. Default *.
new_stringNoReplacement text (files_patch).
old_stringNoText to replace. Must occur once (files_patch).
privilegesNoMySQL privilege map. Defaults to the full set on create.
allow_loginNoDirectAdmin login key may open the panel. Defaults to false. confirm is required when true.
destinationNoHome-relative destination path.
entry_pointNoPython WSGI callable inside the startup file (CloudLinux entry-point), for example application. A value ending in .py is sent as startup-file when startup_file is omitted.
interpreterNoCloudLinux interpreter for selector: php, nodejs, or python.
new_passwordNoReplacement database password (at least 8 characters).
startup_fileNoCloudLinux startup-file. Node default app.js. Python default passenger_wsgi.py. Required by the Python interpreter.
deny_commandsNoDirectAdmin login key command deny list.
allow_commandsNoDirectAdmin login key command allow list.
allow_networksNoDirectAdmin login key network allow list.
destination_dirNoHome-relative destination directory for copy-to, move-to, and extract.
selector_methodNoCloudLinux method for selector: get, set, create, start, stop, restart, destroy, install-modules.
current_passwordNoCurrent password, only if a DirectAdmin login-key call requires it.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A3.9/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does it well: it discloses confirm:true requirements for a concrete list of destructive actions, that login key 'main' is stored but omitted from responses, that SQL export/import returns a phpMyAdmin link rather than a dump, and that large/binary files return a public URL instead of bytes. Remaining gaps (rate limits, per-action side effects) are minor against how much non-obvious behavior is already surfaced.

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?

Dense and telegraphic, but nearly every clause carries a distinct constraint (path rules, download link domain, MySQL prefixing, confirm list) rather than filler. Front-loading the scope and sibling exclusions before the caveat pile-up is the right structure; the fragment style is terse but hard to scan.

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?

For a 58-parameter, 95-action tool with no annotations and no output schema, the description covers setup order, path semantics, response quirks, and destructive-action gating, and points to get_guide for the rest. Given the complexity, it is complete enough to call safely, though per-action return behavior is necessarily deferred.

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 the schema is unusually detailed, so the baseline is 3. The description's parameter notes ('FTP create uses type=ftp', 'Cron delete uses select0', path-prefix rules) largely restate what the schema already encodes in select0/cron_id/name descriptions.

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 states a specific domain (server scripts environment on the selected site) and explicitly rules out the three nearest siblings: modules_tool, files_tool, and ftp_tool. What holds it below 5 is the sheer breadth – 95 enum actions spanning uAPI, DirectAdmin env, MySQL, files, cron, FTP, Node/Python – so 'what it does' is clear as a category but diffuse as a single verb+resource.

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?

Provides real sequencing guidance ('call select_site first', 'Order: get_guide, status, ensure_ready') and predicates prerequisites on user approval. It does not give per-action when-to-use guidance for the 95 operations, but the get_guide pointer and the confirm gating cover the main routing decisions.

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.