stop_app
Stop a running app by scaling its Docker service to 0 replicas. The app will become inaccessible to visitors until started again.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| app | Yes | App ID (UUID) or subdomain |
Stop a running app by scaling its Docker service to 0 replicas. The app will become inaccessible to visitors until started again.
| Name | Required | Description | Default |
|---|---|---|---|
| app | Yes | App ID (UUID) or subdomain |
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description covers the key behavioral consequence: the app becomes inaccessible to visitors. By noting 'until started again,' it implies reversibility. It does not cover additional side effects like data persistence or prerequisites, but it adequately discloses the primary effect for a stop operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that states purpose, mechanism, and consequence without any filler. Every phrase adds meaningful information, making it highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, no output schema, no annotations), the description covers the essential context: what action is performed, how it is performed, and the user-visible effect. It does not describe return values or edge cases (e.g., already stopped), but these are less critical for a stop operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter 'app' is fully documented in the schema with the description 'App ID (UUID) or subdomain,' providing 100% coverage. The tool description does not add additional parameter-level detail beyond what the schema already provides, so the baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the action (stop), the resource (running app), and the mechanism (scaling Docker service to 0 replicas). It distinguishes this from sibling tools like start_app or restart_app, making the purpose explicit and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool: to make an app temporarily inaccessible while preserving the ability to start it again. However, it does not explicitly name alternative tools or state when not to use it, so it falls short of fully explicit usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Add one secure layer between your agents and this server.
Most tools have clearly distinct purposes, but a few pairs could be confused: get_app vs. get_app_status both report on app state, and update_app vs. set_node_version both modify runtime configuration. Descriptions are detailed enough to mitigate most ambiguity, but the overlap is notable.
Tool names largely follow a consistent verb_noun snake_case pattern (e.g., list_apps, create_app, delete_file). Minor deviations include the bare verb 'login' and the noun-first 'git_info', which break the pattern slightly but are still understandable.
At 37 tools, the set is on the heavy side, well above the typical 3-15 range. However, the server covers a broad PaaS domain (auth, app lifecycle, file management, packages, versions, git, metrics), and each tool addresses a distinct operation. It feels over-engineered in places but not gratuitously so.
The tool surface is impressively complete for a deployment platform: authentication, app CRUD, start/stop/restart, file operations (read/write/delete/rename/search/upload), package management, version snapshots and restore, git remote and push/pull, logs, metrics, and configuration. No critical dead-ends are apparent.