Skip to main content
Glama
flisk-sh

Flisk App Builder

Official

resource_run

Destructive

Run one-off commands such as seed scripts or status checks with a resource's environment and return the exit code, stdout, and stderr for quick debugging.

Instructions

Run a one-off command (a seed script, a status check, printenv) with the environment one resource has in the stack, and return its exit code, stdout and stderr (the last 64 KB of each). A container resource must be running (start it with up); a local-process resource runs from its folder. No input is passed. Names come from resource_list. Set projectPath when the MCP server is not running from the project root.

Input Schema

NameRequiredDescriptionDefault
commandYesThe program and its arguments, for example ["printenv", "DATABASE_URL"]
resourceYesName of the resource whose environment the command gets
projectPathNoAbsolute path to the Flisk project root; run this operation from that directory.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv1.4.25

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already flag destructiveHint=true and openWorldHint=true; the description adds valuable behavior the annotations don't: exit code plus the last 64 KB of stdout and stderr, no stdin is passed, and the resource must be in a running state. It doesn't warn that arbitrary commands execute with the resource's environment/permissions, which is the main risk the destructive hint implies, so it's not a 5.

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?

Four short sentences, all front-loaded with capability, then return values, then state prerequisites, then the edge-case parameter. No sentence is redundant.

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?

No output schema exists, and the description covers return values, truncation, and required resource state, so an agent can call it correctly. The remaining gap is that it never says the command runs with the resource's privileges and can have side effects, which matters given destructiveHint=true.

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 coverage is 100%, so the baseline is 3, but the description adds meaning: 'No input is passed' clarifies the command is the only input channel (no stdin), and it explains the projectPath trigger condition ('when the MCP server is not running from the project root') more concretely than the schema's generic wording.

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?

States a specific verb and resource ('Run a one-off command ... with the environment one resource has in the stack') and gives concrete examples (seed script, status check, printenv) that separate it from siblings like `logs`, `status` or `up`. An agent can tell exactly what this does without opening the schema.

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 preconditions: a container resource must be running ('start it with `up`'), a local-process resource runs from its folder, and names come from `resource_list`. It stops short of stating when NOT to use it (e.g. use `logs` for streaming output, `exec`-style alternatives), so it's strong but not exhaustive.

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