Skip to main content
Glama

mcp_sensor_config

Configure a named sensor on an agent to run a script and use its output as the reading. Set remove=true to delete the sensor.

Instructions

Configure a named sensor on agent. A sensor runs a script and its output is the reading. script is " [args...]": a bare filename in the agent's scripts/ folder (no paths - that folder is the only allowed location), with letters/digits-only arguments. On a Raspberry Pi it is a shell script run with sh; on a Pico a .py file the agent execs in-process. Pass remove=true to delete the sensor.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameYes
agentYes
removeNo
scriptNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.9.23

TDQS

A4.2/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 discloses the platform-dependent execution model (`sh` on a Raspberry Pi vs in-process .py exec on a Pico), the sandbox constraint (scripts/ folder is the only allowed location, no paths), the argument charset restriction, and that remove=true deletes the sensor. It omits what happens when reconfiguring an existing sensor name and any error behavior, keeping it short of 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 sentences, all front-loaded and information-dense: identity, what a sensor is, the script contract, then the delete flag. Nothing is repeated from the schema and every sentence earns its place.

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 4-param mutation tool with no annotations and no output schema, the description covers creation semantics, the script contract, and deletion. Missing only overwrite/reconfiguration behavior on an existing name and error outcomes, which is a modest gap rather than a blocking one.

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 0%, so the description must compensate, and it does for the hardest parameter: `script` gets its exact grammar ('<script-file> [args...]', bare filename, letters/digits-only args) plus platform semantics. `remove` is defined as deletion. `agent` and `name` are only implied by 'a named sensor on `agent`', leaving two parameters without explicit definitions.

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+resource ('Configure a named sensor on `agent`') and immediately disambiguates from the read-side sibling by describing the script/execution model rather than readings. An agent can tell this apart from mcp_sensor_read without opening either schema.

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 only implied: the description explains what a sensor is and that remove=true deletes it, but never states when to call this versus mcp_sensor_read, nor any prerequisites or when-not-to-use conditions. The delete path is the only explicit routing signal.

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