Skip to main content
Glama

Create invoice upload URL

create_invoice_upload_url

Mint a short-lived signed URL for uploading an invoice PDF or image. Three steps: (1) call this tool with filename, mimeType, and optional size; (2) HTTP PUT the raw file bytes to signedUploadUrl with Content-Type set to the same mimeType before expiresInSeconds elapses; (3) call invoice_processor with the returned path, bucket, and mimeType. Do not POST the bytes to this tool. Returns signedUploadUrl, path, bucket, expiresInSeconds, maxBytes, and allowedMimeTypes.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
sizeNoFile size in bytes. Rejected if it exceeds the returned maxBytes.
filenameYesOriginal filename including extension (e.g. invoice.pdf).
mimeTypeYesMIME type of the invoice (PDF or image). Must match the Content-Type header on the subsequent HTTP PUT.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.9/5.0
Behavior5/5

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

Annotations only declare the mutation profile (readOnly=false, destructive=false, idempotent=false). The description adds substantive behavior beyond that: the URL is short-lived, it expires after expiresInSeconds, uploads exceeding maxBytes are rejected, and the PUT must carry a matching Content-Type. This is exactly the context annotations cannot convey.

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

Conciseness5/5

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

Front-loads the purpose, then enumerates the steps and outputs in tight sentences. No filler; every clause carries operational information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, but the description enumerates the return fields (signedUploadUrl, path, bucket, expiresInSeconds, maxBytes, allowedMimeTypes), and covers the full initiation-to-handoff flow. Nothing an agent needs to call it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description ties each parameter to the workflow step and reinforces the cross-field constraint that mimeType must equal the subsequent PUT's Content-Type, which aids correct invocation beyond the field-level schema text.

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 precise verb and resource ('mint a short-lived signed URL for uploading an invoice PDF or image') and implicitly distinguishes itself from the sibling create_audio_upload_url by naming the invoice artifact and the downstream invoice_processor.

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?

Gives an explicit three-step workflow, names the required inputs, states the negative constraint ('Do not POST the bytes to this tool'), and routes to the successor tool invoice_processor with the exact fields to pass. Nothing about when/how to use it is left to inference.

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