Skip to main content
Glama
Meteor-Simulation

BULC MCP

Official

Spr set head spray

spr_set_head_spray
Idempotent

Configure or reset per-head sprinkler spray settings for pipe-network, obstacle, and DEVC heads by IDs, groups, or networks, and link them to shared profiles.

Instructions

Set per-head spray settings on one or many sprinkler heads — pipe-network heads, obstacle sprinklers and DEVC sprinklers alike (the GUI spray dialog "this head only" path). Pick heads with all / group (interlock or deluge group) / network_of_node / head_ids / node_ids / obstacle_ids / device_ids. profile_id links them to a shared profile (pipe heads take its K, activation temperature and RTI unless keep_head_values). prop / part override single FDS keys for these heads only; inherit lists keys to hand back to the profile (prop/part keys or orientation, rotation, pipe_index, activation); reset drops every override. orientation / rotation / pipe_index / activation are DEVC values. head_type applies to pipe heads (upright still sprays down). All heads are checked first; if any would be an FDS error nothing changes. Pipe heads whose K changed need spr_run_calc then spr_apply_to_fds. [bulc-mcp rules] DEVC-001, SPR-010, SPR-011 — bulc_knowledge_search ""

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
allNoevery sprinkler head in the project (pipe network, obstacle and DEVC sprinklers)
partNoPer-head &PART droplet overrides — same keys and units as spr_upsert_spray_profile.part
propNoPer-head &PROP overrides — same keys and units as spr_upsert_spray_profile.prop
groupNosprinkler interlock/deluge group id or name — all its members
resetNoDrop every per-head spray override first (pipe heads: K / activation / RTI back to the profile)
inheritNoKeys to remove from the heads so they follow the profile again
head_idsNopipe-network head ids (spr_list_summary)
node_idsNopipe-network sprinkler node ids (all heads on them)
rotationNoDEVC ROTATION (deg)
head_typeNoPipe-network head type
activationNoHow the head opens: link (heat, default), time (DEVC TIME + SETPOINT), ctrl (CTRL_ID), initial (open at t=0).
device_idsNoDEVC sprinklers (add_sprinkler / list_devices)
pipe_indexNoDEVC PIPE_INDEX (pipe network number for PRESSURE_RAMP / OPEN NOZZLES)
profile_idNoLink the heads to this spray profile
orientationNoDEVC ORIENTATION spray axis (default [0,0,-1]; sidewall e.g. [1,0,0])
obstacle_idsNoobstacle sprinklers (list_obstacles)
network_of_nodeNopipe node id — every head in the pipe network connected to it
keep_head_valuesNoWith profile_id: pipe heads keep their own K / activation temperature / RTI

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv4.0.0

TDQS

A4.5/5.0
Behavior5/5

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

Adds substantial behavior beyond the annotations: all-or-nothing validation ('All heads are checked first; if any would be an FDS error nothing changes'), the exact semantics of reset/inherit/keep_head_values, and the fact that pipe heads whose K changed require spr_run_calc plus spr_apply_to_fds. These are real operational constraints not derivable from idempotentHint/destructiveHint.

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-loads purpose, then selection, then semantics, then the downstream-step caveat; every sentence carries information about an 18-parameter tool. It is dense with semicolon-chained clauses, which slightly taxes scanning but avoids padding.

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 an 18-param mutation tool with nested objects and no output schema, it covers selection semantics, atomic validation, override/inheritance behavior, and follow-up calc. It omits any indication of what is returned or error reporting, a minor gap given no output schema exists to carry that.

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 already 100%, so baseline is 3, but the description meaningfully enriches it: profile_id inheritance rules, how prop/part override single FDS keys, what inherit hands back, and the pipe-head-vs-DEVC split for head_type/orientation/rotation/pipe_index/activation. A few params (rotation, orientation) get only restated schema-level meaning, keeping it below 5.

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 ('Set per-head spray settings on one or many sprinkler heads') and enumerates the three head families it operates on (pipe-network, obstacle, DEVC). It names the GUI analog and downstream siblings, so an agent can place it precisely without opening schemas.

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?

Explains how to select heads via all/group/network_of_node/head_ids/node_ids/obstacle_ids/device_ids, which is effectively when-to-use guidance for each param. It also names the follow-up pipeline (spr_run_calc then spr_apply_to_fds when K changes) and cites rule ids. It stops short of explicitly excluding sibling tools like spr_update_sprinkler_head.

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

Deploy Server

Other Tools