Skip to main content
Glama
pico-bay

pico-bay

Official

Install firmware on a bootloader-mode board

pico_install
Destructive

Installs MicroPython on a Pico in BOOTSEL mode or supported ESP32 in DOWNLOAD mode, checking compatibility first and requiring explicit confirmation before writing firmware.

Instructions

Install MicroPython on a Pico in BOOTSEL mode or a supported ESP32 in DOWNLOAD mode. Always call action check first. A Pico may require mounting and a Wi-Fi model choice. An ESP32 uses the detected chip-specific generic build. Obtain explicit confirmation before calling action install.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "board_id": "<board_id>",
      "action": "<action>",
      "firmware": "<firmware>"
    },
    "name": "pico_install"
  }
}

Input Schema

NameRequiredDescriptionDefault
wifiNoWhether a Pico is a W model with Wi-Fi. Required only for Pico installation.
actionYes
board_idYesStable board UID returned by pico_boards_list, or its current serial device path.
firmwareYes
confirmedNoMust be true after the user explicitly confirms installation.
initialize_storageNoErase and initialize ESP32 filesystem storage during installation. Defaults to true for ESP32.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true and readOnlyHint=false, so the safety profile is covered; the description adds the workflow context annotations cannot express — the mandatory check-first step and the explicit user-confirmation requirement before install. It also discloses that ESP32 installs use the detected chip-specific generic build, which is useful behavior beyond the schema. It stops short of saying that install overwrites existing firmware or what happens on a failed flash.

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?

Four short sentences, front-loaded with what the tool does and what state the board must be in, then the two hard procedural constraints. Every sentence carries weight; only 'A Pico may require mounting' is slightly underspecified for a sentence that sounds like a prerequisite.

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 6-parameter destructive tool with no output schema, the description covers the important ground: target states, mandatory check-first ordering, user confirmation, and board-family-specific firmware selection. Remaining gaps are failure behavior and the fact that installation replaces existing firmware, which an agent about to flash a device would benefit from knowing.

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?

With 67% schema coverage the schema already documents board_id, wifi, confirmed, and initialize_storage, so the description only needs to fill gaps. It adds real meaning for two of them — the Pico 'W model' condition behind wifi and the chip-specific build behind the single-valued firmware enum — but says nothing about the action enum's two modes beyond the sequencing sentence, and nothing about initialize_storage's default-true erase behavior.

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?

The description gives a specific verb and resource (install MicroPython firmware) plus the exact preconditions of the target state (Pico in BOOTSEL mode, supported ESP32 in DOWNLOAD mode). It separates this from board-preparation siblings like pico_board_bootloader by naming the required mode, but it never distinguishes itself from pico_ctrlpi_install, the other install-flavored sibling, so an agent still has to infer which installer to pick.

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?

Strong explicit sequencing: 'Always call action check first' and 'Obtain explicit confirmation before calling action install' tell the agent exactly how to order the two enum actions and what gate must pass before the destructive path. What is missing is when NOT to use this tool — no mention of pico_ctrlpi_install as the alternative for a different install target.

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