Skip to main content
Glama

send_message

Destructive

Send follow-up DMs, replies, voice memos, or InMail to prospects on LinkedIn, and delete recent messages. Manage outreach actions across campaigns.

Instructions

Send follow-ups, replies, voice memos, or InMail to prospects.

Args:
    action: What to do:
        "followup" — Send a follow-up DM after connection accepted
        "reply"    — Reply to a prospect who has messaged you
        "voice"    — Send a voice memo on LinkedIn
        "delete"   — Delete a recently sent message (within 60 min on LinkedIn)
        "inmail"   — Send an InMail to a NON-connection. Preconditions
                     (each fails closed with no send): prospect has a
                     provider_id; they are NOT a 1st-degree connection
                     (use followup/DM for those); no InMail already sent
                     on this outreach; InMail credits remaining > 0.
                     A pending invitation to the same person is allowed
                     — that is the escalation path. Requires outreach_id.
    campaign_id: Which campaign to send from. Uses active if empty.
    outreach_id: Specific outreach to target. Required for inmail.
    format: 'text' (default) or 'voice' (audio via Hume TTS). For followup/reply.
    text: Custom text for voice memo. Auto-generates if empty.
        For delete: optionally pass a Unipile message_id directly.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
textNo
actionNofollowup
formatNotext
campaign_idNo
outreach_idNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.10.375

TDQS

A5/5.0
Behavior5/5

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

Annotations already mark destructive and open-world effects, but the description adds concrete behavior: delete is limited to messages sent within 60 minutes, inmail fails closed if preconditions aren't met, text auto-generates if empty, and empty campaign_id uses the active campaign. These details go well beyond what annotations convey.

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?

The description is organized into a clear Args block with each parameter on its own bullet and action-specific notes. Although detailed, every sentence carries task-relevant information and there is no filler or redundancy.

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 tool with no required parameters and an output schema, the description covers all parameters, defaults, destructive behavior, and action-specific preconditions. It leaves no input ambiguity and the output schema handles return-value documentation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description fully compensates by explaining every parameter: action's allowed values, campaign_id defaulting, outreach_id requirement, format meaning, and text auto-generation plus delete overload. This is exactly the semantic enrichment an agent needs.

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?

The description states a specific verb ('Send') and resource ('follow-ups, replies, voice memos, or InMail to prospects') and enumerates distinct actions with clear outcomes. The LinkedIn context and action list make it distinguishable from sibling messaging tools like send_email.

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?

It gives explicit decision rules: InMail is only for non-connections and lists fail-closed preconditions, while 1st-degree connections should use followup/DM. It also specifies when outreach_id is required, how campaign_id defaults, and which format applies to followup/reply.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.