Skip to main content
Glama

Push a compiled program

push_program

Send a program compiled on the visitor's machine (Intel HEX text, 48 KiB at most, e.g. arduino-cli's .ino.hex) to the human's browser, which loads it in the simulator without compiling and, if run, starts it. files: the sources, shown read-only in the editor, never compiled. During a turn on a real bench, the bench gets it too. Prefer it to push_to_editor, which is the fallback when the local toolchain is missing.

Input Schema

NameRequiredDescriptionDefault
hexYes
runNo
filesNo
sessionNo
agent_tokenNo

Output Schema

NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed7 schema fields changed
    • addedInput schema / properties / agent_token / anyOf
      Added value: +[
      +  {
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • addedInput schema / properties / agent_token / default
      Added value: +null
    • removedInput schema / properties / agent_token / type
      Removed value: -"string"
    • addedInput schema / properties / session / anyOf
      Added value: +[
      +  {
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • addedInput schema / properties / session / default
      Added value: +null
    • removedInput schema / properties / session / type
      Removed value: -"string"
    • changedInput schema / required
      Previous value: -[
      -  "session",
      -  "agent_token",
      -  "hex"
      -]New value: +[
      +  "hex"
      +]
  2. First observed

TDQS

A4.3/5.0
Behavior4/5

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

Annotations only declare the safety profile (not read-only, non-destructive, closed-world); the description adds what they cannot: the 48 KiB ceiling, that the hex is loaded without recompiling, that the sim auto-starts when run=true, and that 'during a turn on a real bench, the bench gets it too' — a genuine side effect worth flagging. It omits any auth/session expectations, which is the only notable gap.

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-loaded with the core action and constraints; each sentence carries information (format, size, files semantics, bench behavior, sibling preference). The 'bench gets it too' clause is terse to the point of ambiguity but not wasteful.

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?

With an output schema present and annotations covering safety, the description covers format, limits, side effects, and routing. The remaining gap is the two undocumented optional parameters (session, agent_token) for a 5-parameter tool.

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 0%, so the description must carry parameter meaning. It explains hex (Intel HEX text, size limit, arduino-cli example) and files (sources, read-only in editor, never compiled), and implies run's effect ('if run, starts it'), but says nothing about session or agent_token — two of five parameters left unexplained.

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 ('send a program compiled on the visitor's machine ... to the human's browser') plus format (Intel HEX), size cap (48 KiB), and runtime effect (loads in simulator without compiling, starts if run). It is clearly separable from push_to_editor and push_circuit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly recommends itself over a named sibling: 'Prefer it to push_to_editor, which is the fallback when the local toolchain is missing.' That gives both the preferred case and the alternative's condition.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.