Skip to main content
Glama

Open document upload

source_upload_handoff
Read-onlyIdempotent

Returns authenticated Replai document upload for client/browser bytes; sources_list shows uploads.

For a file the host cannot pass as a download URL, such as a local path or a Claude chat attachment. This call accepts no bytes or upload.

Input Schema

NameRequiredDescriptionDefault
localeNoLanguage of the authenticated document-upload page.en
agent_idYesAgent ID from agents_list or agent_create.

Output Schema

NameRequiredDescriptionDefault
resumeYes
statusYes
handoffYes
agent_idYes
browser_urlYes
browser_pathYes
workspace_idYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • addedInput schema / properties / agent_id / description
      Added value: +"Agent ID from agents_list or agent_create."
    • addedInput schema / properties / locale / description
      Added value: +"Language of the authenticated document-upload page."
  2. First observed

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnly/non-destructive/idempotent/closed-world, so the bar is lower; the description's real contribution is disambiguating that an 'upload' tool is nevertheless a read that returns an authenticated page. That preempts a genuine misread of readOnlyHint=true on a tool named 'upload'. It does not cover the lifetime or format of the returned handoff, though the output schema covers shape.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Reasonably short and front-loads the return value, but the opening sentence ('Returns authenticated Replai document upload for client/browser bytes') is grammatically awkward and takes a re-read. The 'sources_list shows uploads' clause is tangential to the caller's decision and could be cut.

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 full param coverage, the description only needs to sell the use case and the handoff semantics, which it does. An agent knows when to call it and what it does not do; only the follow-up action after receiving the handoff remains implicit.

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%, with both agent_id (uuid, sourced from agents_list/agent_create) and locale (enum, controls page language) documented in the schema. The description adds no parameter-level meaning beyond that, so baseline 3 applies.

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 identifies the resource as an authenticated document-upload handoff rather than a byte transfer, and explicitly states 'This call accepts no bytes or upload,' which is the key distinction from an actual upload. What's missing is an explicit contrast with the nearest sibling, source_upload, which is the tool an agent would most plausibly confuse this with; the pointer given is to sources_list, a listing tool.

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?

'For a file the host cannot pass as a download URL, such as a local path or a Claude chat attachment' is a concrete, actionable precondition with examples. The negative constraint ('accepts no bytes') further bounds usage. It stops short of naming source_upload as the alternative for hosts that can supply bytes, leaving that inference to the agent.

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.

Resources