Skip to main content
Glama

Préparer un upload de photo

create_upload

Étape 1 pour animer une photo JOINTE dans le chat quand il n'y a pas d'URL publique. Renvoie une URL d'upload : PUT les octets du fichier dessus (en-tête Content-Type), puis confirm_upload. IMPORTANT : si une URL publique de la photo existe, préfère plutôt animate_photo avec image_url (aucun upload, marche partout). Le PUT peut être refusé par l'egress d'un agent sandboxé (403 'host_not_allowed') : dans ce cas ne le retente pas, bascule sur image_url ou fais autoriser api.incarn.co. N'envoie JAMAIS l'image en base64.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
mime_typeYesType MIME de l'image (ex: 'image/jpeg', 'image/png').

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
noteYesMarche à suivre + fallback si le PUT est bloqué.
upload_idYesÀ passer à confirm_upload.
expires_inYesValidité de l'URL, en secondes.
upload_urlYesURL sur api.incarn.co : PUT les octets du fichier dessus.

TDQS

A4.3/5.0
Behavior4/5

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

The annotations only declare readOnlyHint=false, openWorldHint=false, destructiveHint=false, providing little behavioral detail. The description discloses important behavior: the tool returns an upload URL, requires a subsequent PUT and confirm_upload, and the PUT may fail due to sandbox egress restrictions. It also warns against base64 sending. It does not describe all possible response fields, but it covers the key workflow behavior clearly.

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?

The description is moderately compact and front-loaded with the essential purpose and condition. It includes conditional advice and a strong caveat ('N'envie JAMAIS l'image en base64') that is necessary. It is slightly longer than necessary due to the caveats, but each sentence serves a purpose and the structure flows logically from steps to fallback instructions.

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?

The tool is a small multi-step upload workflow with an output schema present, and the description covers both the initial call and the follow-up PUT. It addresses error handling (403) and fallback options, which is complete for the agent. It does not detail the exact format of the response, but the output schema is present, so that is acceptable.

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% coverage for the single parameter mime_type. The description mentions 'en-tête Content-Type' for the subsequent PUT, which adds a bit of context about how the mime_type relates to the upload, but otherwise the schema already documents the parameter. Baseline 3 is appropriate.

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?

The description clearly states the tool's purpose: it's 'Étape 1 pour animer une photo JOINTE dans le chat quand il n'y a pas d'URL publique' and returns an upload URL. It specifies a verb (créer/préparer), a resource (upload de photo), and the condition when it applies, distinguishing it from the sibling alternate 'animate_photo' with an explicit contrast.

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?

The description explicitly states when to use the tool (animated photo with a public URL is unavailable) and when to prefer the alternative (animate_photo with image_url). It also gives an instruction for what to do if the PUT fails with 403, including not retrying and falling back to image_url or requesting authorization.

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

A4.3/5.0
Disambiguation5/5

Each tool has a clearly distinct role: upload creation, upload confirmation, animation triggering, status polling, and example browsing. The two upload-related tools are sequential and their boundaries are explicit.

Naming Consistency5/5

All tool names follow a consistent verb_noun snake_case pattern: create_upload, confirm_upload, animate_photo, get_animation_status, list_examples. This makes the set predictable and easy for an agent to navigate.

Tool Count5/5

Five tools is well-scoped for a focused photo-animation service. Each tool supports a necessary part of the workflow without unnecessary sprawl or overlap.

Completeness5/5

The tool set covers the full animation lifecycle: upload setup, finalization, animation submission, result polling, and example discovery. No essential operation is missing for the stated purpose; cancellation is not a core workflow here.

Resources