Skip to main content
Glama

Envoyer un média

ficiel_send_media
Destructive

Envoie une image, une vidéo, un document ou un vocal enregistré dans une conversation existante (échange à deux, ou groupe via conversation_id). Portée « write » requise. Image/vidéo/document : deux façons de donner le fichier, une seule par appel. Un fichier que vous venez de produire ou que vous avez sous la main : media_base64 (son contenu entier en base64), avec mime_type et file_name, jusqu'à 10 Mo. Un fichier déjà en ligne : media_url, une adresse publique accessible sans authentification (max 10 Mo image, 100 Mo vidéo, 50 Mo document). Le type réel du fichier est vérifié sur son contenu : il doit correspondre au type annoncé. Un document dont le texte est connu (Markdown, texte, CSV) part aussi par ficiel_send_document, qui fabrique le fichier, PDF compris, sans base64. Vocal : un des vocaux préenregistrés de votre organisation (voice_clip_id), envoyé tel quel ; aucun vocal n'est généré. Mêmes garde-fous que ficiel_send_message (destinataire nommé vérifié, liste noire, étapes protégées, plafonds, pause de canal). Irréversible.

Input Schema

NameRequiredDescriptionDefault
kindYesType de média à envoyer.
captionNoLégende ou texte accompagnant image/vidéo/document (optionnel).
channelNoCanal de la conversation existante. Requis avec lead_id.
lead_idNoIdentifiant du contact (lead_id), avec channel. Inutile si conversation_id est donné.
file_nameNoNom de fichier affiché, par exemple guide.pdf. Requis avec media_base64, optionnel avec media_url.
media_urlNoAdresse publique du fichier déjà en ligne. Pour image, video et file, à la place de media_base64.
mime_typeNoType du fichier donné en media_base64, par exemple application/pdf, image/png, image/jpeg, video/mp4.
recipientYesOBLIGATOIRE : le destinataire tel que vous le nommez — nom affiché, @pseudo Instagram ou LinkedIn, numéro pour WhatsApp, nom du groupe pour une conversation de groupe. Le serveur le compare au contact réel de la cible avant tout envoi (casse et accents ignorés ; le nom complet, le prénom seul ou le pseudo exact suffisent). Si Ficiel ne connaît AUCUNE identité pour ce contact (ni pseudo, ni nom, ni numéro), indiquez exactement « sans nom » : c'est la façon de dire que vous assumez l'absence de vérification. Omettre le champ reste refusé. En cas de désaccord, l'envoi est refusé (recipient_mismatch) et rien ne part.
media_base64NoContenu entier du fichier en base64 (10 Mo au plus), pour un fichier sans lien public. Pour image, video et file, à la place de media_url. Exige mime_type et file_name.
voice_clip_idNoIdentifiant d'un vocal préenregistré de votre organisation (clip_id de ficiel_list_voice_clips). Requis pour kind=voice.
conversation_idNoIdentifiant de la conversation (conversation_id), échange à deux ou groupe.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changed
    • changedInput schema / properties / file_name / description
      Previous value: -"Nom de fichier affiché (optionnel, déduit sinon)."New value: +"Nom de fichier affiché, par exemple guide.pdf. Requis avec media_base64, optionnel avec media_url."
    • addedInput schema / properties / media_base64
      Added value: +{
      +  "description": "Contenu entier du fichier en base64 (10 Mo au plus), pour un fichier sans lien public. Pour image, video et file, à la place de media_url. Exige mime_type et file_name.",
      +  "maxLength": 14000000,
      +  "type": "string"
      +}
    • changedInput schema / properties / media_url / description
      Previous value: -"Adresse publique du fichier. Requis pour image, video et file."New value: +"Adresse publique du fichier déjà en ligne. Pour image, video et file, à la place de media_base64."
    • addedInput schema / properties / mime_type
      Added value: +{
      +  "description": "Type du fichier donné en media_base64, par exemple application/pdf, image/png, image/jpeg, video/mp4.",
      +  "maxLength": 120,
      +  "type": "string"
      +}
  2. Changed3 schema fields changed
    • removedInput schema / properties / text
      Removed value: -{
      -  "description": "Texte à prononcer. Requis pour kind=voice.",
      -  "maxLength": 1000,
      -  "minLength": 1,
      -  "type": "string"
      -}
    • addedInput schema / properties / voice_clip_id
      Added value: +{
      +  "description": "Identifiant d'un vocal préenregistré de votre organisation (clip_id de ficiel_list_voice_clips). Requis pour kind=voice.",
      +  "format": "uuid",
      +  "type": "string"
      +}
    • removedInput schema / properties / voice_id
      Removed value: -{
      -  "description": "Identifiant de la voix (voir ficiel_list_tags_and_stages, section voices). Requis pour kind=voice.",
      -  "type": "string"
      -}
  3. First observed

TDQS

A4.8/5.0
Behavior5/5

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

Beyond the destructive/non-idempotent annotations, the description discloses write-scope requirement, content-based type verification, per-type size limits, the one-of constraint, and the inherited safeguards (named-recipient verification, blacklist, protected steps, caps, channel pause) plus recipient_mismatch refusal semantics. This is substantive behavioral context the annotations alone do not provide.

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?

Front-loaded with the action and scope, then organized by media type and delivery method. It is long, but the density is largely justified by 11 parameters and four media kinds; a few clauses (e.g. repeated size figures) could tighten.

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?

With no output schema, the description carries the full burden and does so: it covers all parameter roles, the base64/url decision, the voice constraint, the write scope, and the refusal/irreversibility behavior. An agent has everything needed to invoke it correctly.

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 adds meaning by mapping parameters to scenarios: the base64/url one-of choice, voice_clip_id sourcing from ficiel_list_voice_clips, and the mime/file_name coupling. It clarifies cross-field logic beyond the per-field 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 specific verb+resource ('Envoie une image, une vidéo, un document ou un vocal') and scopes it to an existing conversation, 1:1 or group via conversation_id. It explicitly distinguishes itself from siblings by naming ficiel_send_document and referencing ficiel_send_message for the shared safeguards, so an agent can route correctly.

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?

Explicitly says when to use media_base64 vs media_url (file on hand vs already online, one per call), when to prefer ficiel_send_document for text-known documents, and that voice must be a pre-existing clip rather than generated. Alternatives and their selecting conditions are named, leaving nothing 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.