Skip to main content
Glama

Send direct message

dms_send

Send a direct message from an account (X, Bluesky, Mastodon). Sent now, once: a DM the network refuses comes back failed with its error and is not retried. Mastodon sends a status only they see, starting with their @handle. Check first with statuz reach check.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "account": "<account>",
      "to": "<to>",
      "text": "<text>"
    },
    "name": "dms_send"
  }
}

Input Schema

NameRequiredDescriptionDefault
toYesTheir handle
orgNoOrg id (default: your first org)
textYes
accountYesAccount id, handle or platform name (its default account)
idempotencyKeyNoYour key for this DM: sending again with it returns the first DM instead of a second one

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=false, openWorldHint=true and destructiveHint=false, and the description adds real context beyond them: sending is immediate and single-shot, a network-refused DM returns `failed` with its error and is not retried, and Mastodon DMs are visible-only-to-recipient statuses. It never mentions the idempotencyKey escape hatch even though annotations declare idempotentHint=false, leaving the retry-safety story half-told.

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?

Four short clauses, front-loaded with the action and platforms, then the delivery semantics, then the pre-flight pointer. It is dense but every sentence carries information; the telegraphic style ("Sent now, once") is slightly compressed relative to the rest.

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?

For a 5-parameter write tool with no output schema, the description covers the action, target platforms, failure return shape (`failed` plus error), retry behavior, and a prerequisite check. Combined with an 80%-covered schema and full annotations, an agent has what it needs to call this correctly.

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 80%, so the schema already documents account, to, org and idempotencyKey, and the baseline of 3 applies. The description adds only one semantic note beyond that — that Mastodon messages should start with the recipient's @handle — without clarifying handle format for X/Bluesky or the relationship between the idempotencyKey parameter and the declared non-idempotency.

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?

The description states a specific verb and resource ("Send a direct message") and scopes it to three named platforms (X, Bluesky, Mastodon), which distinguishes it from the posting siblings like posts_create or posts_publish. It stops short of naming an alternative tool explicitly, so a 4 rather than a 5.

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?

"Check first with `statuz reach check`" gives an explicit pre-flight step pointing at the sibling reach_check, and the Mastodon caveat tells the agent what outcome to expect on that network. There is no guidance on when not to use this tool (e.g. public posts belong to posts_create), which keeps it out of 5 territory.

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