Skip to main content
Glama

upload_file

Upload a file to the user's Drive. The file must be base64-encoded. Max file size: 10 MB. Allowed types: PDF, DOC, DOCX, XLS, XLSX, PPT, PPTX, TXT, CSV, JPG, JPEG, PNG, GIF, WEBP, SVG, BMP. Filenames are sanitized (spaces to underscores, special characters removed).

upload_file

When to use

Upload a file to the user's Drive. The file must be base64-encoded. Max file size: 10 MB. Allowed types: PDF, DOC, DOCX, XLS, XLSX, PPT, PPTX, TXT, CSV, JPG, JPEG, PNG, GIF, WEBP, SVG, BMP. Filenames are sanitized (spaces to underscores, special characters removed).

Parameters to validate before calling

  • filename (string, required) — Original filename with extension (e.g., "report.pdf", "logo.png")

  • mime_type (string, required) — MIME type of the file (e.g., "application/pdf", "image/png", "text/csv")

  • file_data (string, required) — Base64-encoded file content

  • private (boolean, optional) — Privacy flag. Default: true (file is private to the user).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
privateNoPrivacy flag. Default: true (file is private to the user).
filenameYesOriginal filename with extension (e.g., "report.pdf", "logo.png")
file_dataYesBase64-encoded file content
mime_typeYesMIME type of the file (e.g., "application/pdf", "image/png", "text/csv")

TDQS

B3.3/5.0
Behavior4/5

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

The description adds meaningful behavioral details beyond the annotations: base64 requirement, max file size, allowed types, and filename sanitization. Since annotations only declare readOnly=false and idempotent=false, these constraints provide valuable context, though the description does not disclose success responses or failure modes.

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?

The description is organized but redundant: the introductory paragraph is repeated almost word-for-word under '## When to use', and the parameter list duplicates schema descriptions. It could be condensed into a single, non-repetitive paragraph while preserving all key information.

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 four parameters and no output schema, the description covers input constraints and file type limits thoroughly, but it omits what happens after a successful upload (e.g., file ID, URL, or how to reference the file). This is a significant gap for an upload tool, despite the otherwise useful detail.

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?

The input schema already provides 100% parameter descriptions, so the baseline is 3. The description repeats these in a 'Parameters to validate before calling' section but adds only marginal emphasis (e.g., reinforcing base64 encoding and sanitization) without introducing new semantic meaning.

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 clearly states the tool uploads a file to the user's Drive and specifies key constraints (base64 encoding, 10 MB max, allowed types). However, it does not differentiate from sibling tools like send_file or get_file_url, so the purpose is clear but not uniquely distinguished.

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?

A 'When to use' section exists but it merely restates the same purpose without any guidance on when not to use this tool or which sibling to choose instead. No alternatives or exclusions are mentioned, leaving the agent without decision support.

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.

TDQS

A3.6/5.0
Disambiguation4/5

Most tools follow a clear resource+action pattern (fetch_* for lists, get_* for single items, create/update/delete for writes), making them distinguishable. A few near-overlaps exist (fetch_billing_transactions vs fetch_wallet_transactions, draw_winners vs schedule_drawing) but the descriptions clarify the boundaries.

Naming Consistency4/5

Tool names consistently use snake_case verb_noun, with fetch_ for list operations and get_ for single-item retrieval. Some verb variation (add_participant, count_participants, draw_winners, schedule_drawing) deviates from the dominant create/fetch/update/delete pattern but remains predictable and readable.

Tool Count1/5

With 83 tools, this is far beyond a well-scoped server (typically 3-15, with 25+ considered too many). Even though the platform has broad functionality, the sheer number of tools creates significant agent confusion and selection overhead.

Completeness4/5

The sweepstakes domain is thoroughly covered: lifecycle management, participants, groups, rules, drawings, winners, calendar, notes, todos, tickets, surveys, invoices, billing, files, and entry settings. A few minor gaps exist (e.g., no general participant field update, no archive action) but the surface is remarkably complete for its scope.

Resources