Skip to main content
Glama

browser_upload

Destructive

Uploads one or more files to a specified browser tab without opening the native Windows file dialog, and blocks files from protected secrets folders.

Instructions

Uploads one or more files (e.g. .aab, .apk, .zip) without opening or blocking on the native Windows file dialog. Refused (by the bridge itself) for any file in a secrets folder: ~/.nexus, ~/.nexusagy, ~/.ssh, ~/.codex, ~/.claude, ~/.gemini, ~/.android, ~/.git-credentials, ~/.config/gcloud, %APPDATA%/gcloud, Chrome profile, the user's secrets vault... (normalized paths: \?, \localhost\C$, links and junctions resolved).

Input Schema

NameRequiredDescriptionDefault
filesYes
tab_idYesYour tab's id (from browser_new_tab, or a tab adopted with browser_adopt_tab).
selectorNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv2.31.6
    • changedOutput schema / (root)
      Previous value: -{
      -  "properties": {
      -    "result": {
      -      "title": "Result",
      -      "type": "string"
      -    }
      -  },
      -  "required": [
      -    "result"
      -  ],
      -  "title": "browser_uploadOutput",
      -  "type": "object"
      -}New value: +null
  2. First observedv0.1.0

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already cover the safety profile (destructive=true, not idempotent, open world), and the description adds real behavioral context the annotations don't: no blocking dialog, bridge-level refusal for a long list of secrets paths, and path normalization. It falls short of explaining what 'destructive' means here (e.g. overwriting an existing file-input selection) or auth/permission needs.

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 its key behavioral difference. The secrets-folder enumeration is long but earns its place as a hard refusal rule; the parenthetical on normalized paths is dense but functional. Slightly verbose overall.

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 destructive, non-idempotent upload with no output schema, the description covers the file types and a crucial refusal rule, but leaves gaps on selector semantics, behavior when files already selected, and what the call returns (success/failure signal). Adequate but with clear gaps for a mutation 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 low (33%): only tab_id is documented in the schema. The description partially compensates by clarifying files is a list of uploadable paths with example extensions, but it never states whether paths must be absolute, and says nothing about selector's role (targeting the file input). Baseline 3 for partial compensation.

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 ('Uploads'), resource ('one or more files'), and a key differentiator versus siblings: it avoids opening or blocking on the native Windows file dialog. An agent can tell this apart from browser_fill_form or browser_fill with no schema inspection.

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 usage context is implied (attach files to a page) and there's a valuable exclusion rule (refused for secrets folders), but it never explicitly says when to prefer this over browser_fill_form or how the selector/tab_id interplay selects the target. No named alternatives.

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