Skip to main content
Glama

pin_set

Assign peripheral signals to a specific STM32 pin, including ordered multi-signal assignments, to configure pin functions and validate them against available options.

Instructions

Assign a peripheral signal to a pin (set pin <pin> <signal>). Signals must exist in pin_functions; GPIO_Input/GPIO_Output/GPIO_Analog/GPIO_EXTIn are always valid for GPIO pins.

Input Schema

NameRequiredDescriptionDefault
pinYesPin name
signalNoSignal, e.g. USART1_TX
signalsNoApply several signals to the same pin in order
project_idYesProject id

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.1.0

TDQS

A3.6/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full behavioral burden; it does disclose one substantive rule (valid signal set, with GPIO_Input/GPIO_Output/GPIO_Analog/GPIO_EXTIn always allowed on GPIO pins). It does not disclose whether setting a pin overwrites a prior assignment or errors, nor whether locked/reserved pins (see pin_lock, pin_reserve) reject the operation — significant gaps for a mutation tool.

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?

Two sentences with zero filler, leading with the operation and following with the validity constraint. The CLI equivalent is compactly parenthesized rather than given its own sentence.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a four-parameter mutation tool with no annotations and no output schema, the description covers the core validity rule but omits the interaction with pin_lock/pin_reserve and the override/error semantics of reassignment. An agent could call it correctly in the happy path but has no basis for predicting failure or side effects.

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; the description earns an increment by explaining what makes a `signal` value valid (must exist in pin_functions, GPIO pseudo-signals always legal), which the schema's 'e.g. USART1_TX' alone does not convey. It still says nothing about `project_id` or when to use `signals` versus `signal`, but that is adequately covered by 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 ('Assign a peripheral signal to a pin') and even names the underlying CLI form 'set pin <pin> <signal>', which removes ambiguity about the operation. It does not, however, distinguish itself from adjacent siblings such as pin_reset, pin_clear_all, or standalone_pin, so the agent gets a clear purpose but no contrast.

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?

The sentence 'Signals must exist in pin_functions' implies a discovery step via the pin_functions sibling before calling, which is real usage guidance. Missing is any explicit when-not guidance — e.g. when to use pin_reset or pin_clear_all instead, or whether the pin must be unlocked first.

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