Skip to main content
Glama

RunProjectAction

Destructive

One project action: start, stop or restart services, recreate one, back up, restore, cancel an operation, change the source, delete an undeclared volume or the project. Recreate, back up, restore, delete and set_source's deploy run as operations, waited for (wait_seconds), as is the end of a cancelled one; the others are done on return. Answers with the project as it then is. restore_snapshot takes the project's own snapshots only. A database's snapshot as a new database is the person's to make, in the panel (the database's Backups tab, Restore as a new database): no tool makes one.

Input Schema

NameRequiredDescriptionDefault
back_upNoBacks up the directory and volumes now, live. An operation. FAILED_PRECONDITION = backups off (Machine.backups_enabled).
project_idNo
set_sourceNoChanges the source. To files: keeps the current files. To github: only the fields set change, e.g. {github: {auto_deploy: true}} follows pushes again; from files, repository is required. Deploys the newest commit if auto_deploy is on and the files are not at it. FAILED_PRECONDITION = as CreateProject. Where the files come from (THE PROJECT IS ITS DIRECTORY). At most one of files, github.
operation_idNoAs DeployProject's, for the actions that run as operations.
wait_secondsNoAs DeployProject's, for the actions that run as operations.
delete_volumeNoA volume compose.yaml no longer declares (Volume.declared false). Its data then lives only in snapshots. FAILED_PRECONDITION = declared or in use.
stop_servicesNoStops services, each with its grace period. A machine restart may start them, per restart policy.
delete_projectNoAn operation: a final backup while backups are on, then containers, volumes, files, hosts, logs. Snapshots stay (GetMachine.deleted_projects), and restoring one brings the project back, source included; with backups off there is none, and it is gone for good.
start_servicesNoStarts stopped services and reruns jobs, not their dependencies. FAILED_PRECONDITION = no container yet (deploy or recreate_service), or a published machine port is taken.
cancel_operationNoStops a running or starting operation: it ends CANCELLED, leaving what a failure would; one only starting answers CANCELLED from its own call. FAILED_PRECONDITION = a delete past its final backup.
recreate_serviceNoA new container: a fresh filesystem outside volumes. An operation.
restart_servicesNoRestarts processes in the same containers. Codes as start_services.
restore_snapshotNoFrom a snapshot of this project. An operation.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4/5.0
Behavior5/5

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

Annotations already declare destructive/non-idempotent/open-world, and the description adds substantial behavior beyond them: which actions run as asynchronous operations and block on wait_seconds versus completing on return, that the response is the project as it then is, that delete_project leaves snapshots restorable, and that stop honors each service's grace period and restart policy.

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?

Front-loaded with the action list, and each sentence carries information (operation semantics, return value, snapshot restriction). Some passages are densely telegraphic ('as is the end of a cancelled one'), but nothing is purely filler.

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 13-parameter, 0-required, no-output-schema tool, the description supplies the missing return-value statement and the async/sync split for each action. It is close to complete, with the remaining gap being explicit sibling routing for deploy and operation polling.

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 description coverage is 92%, so the schema carries most parameter detail (baseline 3). The description still adds meaning by tying operation_id/wait_seconds to the specific actions that run as operations and by stating that restore_snapshot only accepts this project's own snapshots, which the schema text does not make as explicit.

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 enumerates the concrete verbs and resources this polymorphic tool performs (start/stop/restart services, recreate, back up, restore, cancel, set_source, delete volume/project) and states that exactly one action runs. It is clearly distinguishable from read-only siblings like GetProject, but it never explicitly says that deploying is DeployProject's job, leaving one ambiguity against that sibling.

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 implied through the action enumeration and the schema-level 'at most one of ...' constraint rather than stated as when/when-not. It does give one explicit exclusion ('A database's snapshot as a new database is the person's to make, in the panel'), but no routing to siblings such as DeployProject or GetOperation for polling operations.

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.

Resources