Skip to main content
Glama

Draft a message

draft_reply
Destructive

Propose a message: a reply to a conversation, or a first message to someone the user has never messaged (a connection from list_connections: pass contact_id). It appears in the person's Quibbly drafts queue with a Send button; a human sends it, one click per draft. Nothing is sent by this tool. When the person has a synced conversation the draft is a reply (kind "reply"); when they have none it is a first message (kind "new") that starts a new LinkedIn conversation when sent. A draft is one LinkedIn message: text, an attachment (an attachment_ref from find_attachments, list_library or upload_attachment), or both, in which case the text is the caption on the same message, the way LinkedIn's own composer sends a file with a note. Give at least one. One live draft per person: a new one replaces the previous. The queue holds at most 20 ready drafts in total; past that the user has to send or skip some first. Timed drafts: give show_at (ISO date-time, in the future, at most 30 days out) for a message meant for a later day; the draft sits in the queue under that day's heading (Today, Tomorrow, or the date) and a person still sends it by hand. Nothing is sent automatically at show_at. A draft expires 7 days after it shows (show_at, or now).

Input Schema

NameRequiredDescriptionDefault
nameNo
textNoThe message, or the caption when an attachment is given
show_atNoISO date-time the draft is meant for (future, within 30 days). It shows under that day's heading in the queue; a person still sends it. Leave out to show it now.
attachmentNoattachment_ref, e.g. library:<id>, message:<urn>#0, snippet:<id>:<id>, upload:<id>
contact_idNoA person from list_connections, get_contact or a conversation; works with or without a conversation
profile_urlNoThe person's LinkedIn profile URL, when there is no contact_id
conversation_urnNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.7/5.0
Behavior5/5

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

Annotations say readOnly=false and destructive=true; the description earns that hint by explaining that one live draft per person means a new draft replaces the previous one. It adds traits annotations cannot express: a 20-draft queue cap, 7-day expiry, and the fact that show_at schedules visibility only, never automatic sending.

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?

Dense and front-loaded: the reply/new model comes first, then inputs, then queue/expiry limits. Some clauses are redundant (the 'human sends it, one click per draft' point is made twice via the show_at paragraph), costing a little tightness in an otherwise well-ordered block.

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?

With 7 params, no required fields, and no output schema, the description fills the biggest gap — that at least one of text/attachment is mandatory — plus caps and expiry. The unexplained name and conversation_urn parameters are the remaining hole, but the agent can draft correctly without them.

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?

Goes well beyond the schema on the parameters that matter: it defines the text+attachment combination as a single message with caption, and imposes an "at least one" rule the schema doesn't enforce (0 required params). It leaves name and conversation_urn unexplained, and show_at's description largely restates the schema, so it isn't fully comprehensive.

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?

Opens with a specific verb and resource ("Propose a message") and immediately splits the two modes: reply vs. first message to a connection. The reply/new distinction and the contact_id routing make it unmistakable against siblings like withdraw_draft or list_drafts.

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 states that nothing is sent by this tool and that a human clicks Send, which frames the whole use case. It names the upstream sources for each input (list_connections for contact_id, find_attachments/list_library/upload_attachment for attachment_ref) and gives the condition for using show_at versus omitting it.

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