Skip to main content
Glama

upload_file

Upload local files to a web page by targeting its file input element, enabling automated form submissions and file selection in Chrome.

Instructions

Upload a file through a provided element.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
uidYesThe uid of the file input element or an element that will open file chooser on the page from the page content snapshot
pageIdYesTargets a specific page by ID.
filePathsYesOne or more files paths to upload. File paths have to be local to the browser instance (not the MCP).
includeSnapshotNoWhether to include a snapshot in the response. Default is false.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

C2.7/5.0
Behavior2/5

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

Annotations only declare readOnlyHint=false, which the one-line description is consistent with, but the description adds no behavioral context: no indication that it may trigger a file chooser, mutate page state, or what happens on failure. For a mutation tool with a bare annotation, more disclosure is warranted.

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?

A single short sentence with no redundancy, front-loading the action. Its brevity comes at the cost of specificity, but there is no wasted text.

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?

With 4 well-documented parameters and no output schema, the schema carries most of the load, so the description need not explain return values. It is still thin on the operational context (element type required, interaction with the file chooser) that an agent invoking a browser mutation would benefit from.

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 100%, so each parameter (uid, pageId, filePaths, includeSnapshot) is already documented in the schema, including that paths must be local to the browser instance. The description adds nothing beyond that, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

It states a specific verb and resource (upload a file), but "through a provided element" is vague and never names the uid/file-input concept that the schema requires. An agent can guess the general intent but cannot confidently distinguish it from siblings like fill or fill_form without opening the schema.

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

Usage Guidelines2/5

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

No when-to-use guidance, no prerequisites, no alternatives. The description does not say the element must be a file input or a chooser-opening element, nor how it relates to click or fill_form, leaving selection to inference.

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