Skip to main content
Glama

finisma – ZUGFeRD e-invoices

Upload-Link für PDF anfordern

request_upload_link

Erzeugt einen kurzlebigen Upload-Link für eine PDF-Rechnung. Nötig für Chat-Clients (ChatGPT, Claude), die eine angehängte Datei nicht zuverlässig als pdf_base64 an ein Tool übergeben können. Zwei Wege: Der Nutzer lädt die PDF über upload_url im Browser hoch, ODER der Client mit Shell und Netzzugriff lädt sie selbst hoch, per POST als Multipart-Feld 'file' an upload_api_url (curl -F "file=@rechnung.pdf"). Für den direkten Weg muss die Domain finisma.de erreichbar sein; in Claude-Umgebungen mit Netz-Sandbox heißt das, finisma.de in der Domain-Allowlist einzutragen. Die zurückgegebene upload_id kann danach bei create_zugferd/verify_zugferd anstelle von pdf_base64 verwendet werden.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
upload_idYesAn create_zugferd/verify_zugferd als 'upload_id' übergeben.
expires_atYesISO-8601-Zeitpunkt, ab dem der Link verfällt.
upload_urlYesDem Nutzer zum Öffnen im Browser geben, dort die PDF hochladen.
upload_api_urlYesDirekter Upload-Endpunkt für Clients mit Netzzugriff auf finisma.de: die PDF per POST als Multipart-Feld 'file' hierher senden, dann entfällt der Browser-Schritt.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.8/5.0
Behavior5/5

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

Annotations only declare the safety profile (readOnly=false, idempotent=false, destructive=false); the description adds the lifespan ('kurzlebige'), the two operating modes, the exact multipart field name and curl form, and a real environmental prerequisite (finisma.de must be reachable, and added to the sandbox allowlist). That is substantive operational context beyond the structured fields.

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?

Purpose is front-loaded in the first sentence, followed by rationale, then the two paths and the prerequisite. Every sentence carries information, but the path/sandbox explanation runs long and could be tightened without loss.

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?

An output schema exists, so return values need not be re-explained, and the description still adds the prerequisites and workflow an agent needs. Nothing required to invoke this zero-parameter tool 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?

The tool takes zero parameters, so there is nothing for the description to disambiguate and the baseline is 4. The description names the returned identifiers (upload_url, upload_api_url, upload_id), which helps but is not required since the schema has no inputs.

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 and resource ('Erzeugt einen kurzlebigen Upload-Link für eine PDF-Rechnung') rather than restating the tool name. It also explicitly positions itself against siblings by framing the link as an alternative input to create_zugferd/verify_zugferd, so an agent can distinguish it without opening any schema.

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 when-to-use trigger ('Nötig für Chat-Clients ... die eine angehängte Datei nicht zuverlässig als pdf_base64 übergeben können') and then enumerates two concrete usage paths with the conditions that select each (browser upload vs. client-side multipart POST). The alternative route (reusing pdf_base64 with create_zugferd) is also named.

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