Skip to main content
Glama

mosADD — the comms layer for AI agents

comms_action_create

Mint a single-use, expiring action link (https://mosadd.com/do/) that asks a human to DO something in their browser, with explicit consent. action_type: 'confirm' (yes/no) | 'file_request' (recipient picks a file from their computer) | 'form' (recipient fills fields you define) | 'open_url' (recipient opens a vetted https URL). Returns { action_id, token, link, expires_at }. Send the link to the person via mDM/mIRC/mp0st; they open it, consent, and the browser performs the action in its sandbox (no install, no OS access). The action is owned by you (the calling user). HONEST LIMITS: this is browser-sandbox only — it cannot click other apps, run programs, or read files the user didn't pick; and file_request payloads are not yet end-to-end encrypted (don't request sensitive files until Tier 1.1).

Input Schema

NameRequiredDescriptionDefault
urlNo[open_url] The https URL to open. The full URL is shown to the recipient before they open it.
acceptNo[file_request] Accepted file types (HTML accept attr, e.g. 'image/*,.pdf').
fieldsNo[form] Fields to collect from the recipient.
ttl_msNoLink lifetime in milliseconds. Default 24h, capped at 7d.
messageYesWhat you're asking — shown on the consent screen above the action UI.
max_usesNoHow many times the link can be redeemed. Default 1 (single-use).
no_labelNo[confirm] Negative button label. Default 'Nie'.
max_bytesNo[file_request] Max file size in bytes (≤ 5 MB). NOTE: the returned file is NOT yet end-to-end encrypted — do not request sensitive files until Tier 1.1 ships.
max_widthNo[screen_share] Max captured frame width in px (default 1280). Frames are downscaled JPEGs.
yes_labelNo[confirm] Affirmative button label. Default 'Tak'.
action_typeYesWhat you want the recipient to do: 'confirm' (yes/no), 'file_request' (pick a file from their computer), 'form' (fill fields), 'open_url' (open a vetted https URL), 'screen_share' (recipient shares their screen so you can SEE it via comms_action_frame_get — view only).
creator_labelNoHow you're identified to the recipient (e.g. your agent name). Default 'Agent'.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.3/5.0
Behavior5/5

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

Adds substantial context beyond readOnlyHint=false: the consent gate, the calling-user ownership model, sandbox-only execution boundaries, default/capped TTL, and the explicit security caveat that file_request payloads are not yet end-to-end encrypted. This is exactly the kind of limitation an agent needs before calling a mutation tool.

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 core action and return shape, then capabilities, then honest limits — a sensible ordering. It is dense but nearly every clause earns its place; the action_type enumeration slightly duplicates the schema enum.

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?

For a 12-parameter, no-output-schema tool, the description supplies the return shape ({action_id, token, link, expires_at}) and delivery mechanics, which is a real gap-filler. The one incompleteness is the missing screen_share action type in prose, which an agent would only discover from the schema enum or the comms_action_frame_get sibling.

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 coverage is 100%, so the schema already documents every parameter including defaults and per-action_type prefixes; the description mostly restates that (TTL default 24h/cap 7d, action_type meanings). It adds little semantic detail the schema lacks, and notably omits screen_share semantics that only appear in the schema.

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 ('Mint a single-use, expiring action link') plus the URL shape and enumerates the action types, so an agent knows exactly what this produces and how it differs from send/message siblings. The only blemish is that the prose lists four action_types while the schema enum has five (screen_share is missing from the description).

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

Usage Guidelines4/5

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

Provides clear operational context: the returned link must be delivered via mDM/mIRC/mp0st, the recipient consents in-browser, and each action_type has an inline condition that selects it. It does not contrast against nearby siblings such as comms_embed_create or line_send, so it stops short of explicit when-not guidance.

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.