Skip to main content
Glama

mosADD — the comms layer for AI agents

mDM_send_file

Send a FILE to a contact as a first-class mDM file message. Base64 bytes → Storage → message-send file attachment. SCAFFOLD: mDM E2EE seal is TODO (Lane A).

Input Schema

NameRequiredDescriptionDefault
toYesRecipient identity id (UUID). Use mDM_list_contacts to find it.
mimeYesMIME type, e.g. audio/ogg, application/pdf, image/png.
captionNo
filenameNoOriginal filename (file only).
file_base64YesAttachment bytes as base64 (or a data: URL). MCP is JSON-only, so binary is base64-encoded. Max ~15 MB decoded.
reply_to_idNoOptional id of the message being replied to.
thread_labelNoOptional thread label within the conversation (mDM USP: multiple threads per contact).

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A3.7/5.0
Behavior4/5

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

Goes beyond readOnlyHint=false by disclosing the processing pipeline (bytes staged in Storage before send) and honestly flagging that the E2EE seal is not yet implemented — a material caveat for a messaging tool. It stops short of stating what the send returns or any per-call limits beyond the schema.

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?

Three short sentences, front-loaded with the action, then the pipeline, then the caveat. No filler; each clause carries information an agent needs.

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?

No output schema exists, so the description should indicate what a successful send returns (message id, storage ref) or failure modes, and it doesn't. The SCAFFOLD/E2EE caveat and the schema's 86% coverage cover most call mechanics, leaving the return contract as the main gap.

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?

Schema description coverage is 86%, so the schema already documents recipient lookup, MIME examples, base64/data-URL handling, and the ~15 MB decoded cap. The description adds only the conceptual 'base64 bytes → Storage' flow and no new parameter meaning, so baseline 3 applies.

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?

States a concrete verb and resource — 'Send a FILE to a contact as a first-class mDM `file` message' — plus the delivery path (base64 → Storage → attachment). It implicitly separates this from mDM_send (text) and mDM_send_voice, but never names those siblings explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'as a first-class mDM `file` message' hints at when to pick this over mDM_send or mDM_send_unencrypted, but there is no explicit when-to-use/when-not-to-use statement or named alternative. Prerequisite (finding the recipient via mDM_list_contacts) is only stated in the schema, not the description.

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.