Skip to main content
Glama
irfanfath123

homelab-monitor-mcp

by irfanfath123

run_command

Execute a single allowlisted dev command (tests, build, typecheck, git) in a specified project directory on a local or remote host; approval is required before execution.

Instructions

Run a dev command (tests, build, typecheck, git) inside a project directory. EXECUTION action — your MCP client will ask for approval before running it. Single command only; the binary must be in HOMELAB_ALLOW_COMMANDS.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
hostNoServer name from HOMELAB_HOSTS (e.g. 'sil-baru'). Omit to run on the local machine.
commandYese.g. 'npm test' or 'npx tsc --noEmit' (no shell metacharacters)
workdirYesAbsolute project path inside HOMELAB_PROJECT_DIRS
timeout_secsNoTimeout in seconds (default 120, max 600)

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4/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 well: it flags this as an EXECUTION action, warns that the MCP client will prompt for approval, and pins the security boundary to HOMELAB_ALLOW_COMMANDS. It stops short of describing return contents (stdout/stderr/exit code) or failure behavior.

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?

Three short sentences, front-loaded with purpose, then the safety/approval note, then the constraints. Every clause carries information; nothing is redundant or buried.

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 mutating execution tool with no output schema, the description covers approval, allowlisting, and single-command limits, which is what an agent most needs before invoking. Minor gap: no hint about how results (exit code, stdout/stderr) are surfaced to the caller.

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%, so all four parameters (host, command, workdir, timeout_secs) are already documented, which sets the baseline at 3. The description reinforces the 'single command' nature of `command` and the project-directory constraint on `workdir`, but adds 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?

States a specific verb and resource ('Run a dev command') with concrete examples (tests, build, typecheck, git) and scope ('inside a project directory'). It clearly reads as an execution tool, distinct from read_file/edit_file siblings, though it never names an alternative tool explicitly.

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?

Gives clear operating context and hard constraints: an approval prompt will fire before execution, only a single command is allowed, and the binary must be present in HOMELAB_ALLOW_COMMANDS. It does not, however, compare against alternatives such as docker_* or db_query tools for related tasks.

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