Skip to main content
Glama

Funkel AI

draft_message

Generate a personalised draft for one lead. Reads the lead's profile (industry, role, headline, optional reference hook) and returns a single message body. Does NOT send. After the user reviews and approves, call send_message to actually deliver. ALWAYS call get_lead first to inspect reply_state — refuse to draft for opted-out / replied / rejected leads.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
toneNoVoice register
lead_idYesLead id (from a prior find_leads / get_lead) (UUID format, e.g. 550e8400-e29b-41d4-a716-446655440000)
referenceNoOptional specific hook (recent post, role transition, milestone) the user wants referenced

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.4/5.0
Behavior4/5

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

Annotations only give the safety profile (readOnlyHint=false, destructiveHint=false, non-idempotent). The description adds real behavioral context beyond them: what input data is read (industry, role, headline, hook), that no message is sent, and the guard conditions on reply_state. It does not cover rate limits or output variability for an openWorld, non-idempotent generation, leaving a small gap.

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?

Four tightly packed sentences, front-loaded with purpose then sequencing then preconditions; every clause carries a distinct operational constraint (no send, approval gate, get_lead check, refusal set) with no filler.

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 no output schema, the description usefully states the return is a single message body, and it covers precondition checks and refusal cases. It is nearly complete, though it omits what the draft does with `tone` and whether the generated body persists anywhere for later retrieval.

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 100% and the enum on `tone` is self-documenting, so the baseline is 3. The description's mention of an "optional reference hook" largely restates the schema's `reference` description and adds no format or syntactic detail, and it never explains how `tone` interacts with the generated draft.

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+resource ("Generate a personalised draft for one lead") and the return ("a single message body"). It immediately disambiguates from sending siblings with "Does NOT send", so an agent can tell it apart from send_message/send_conversation_reply without opening a schema.

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?

Explicit sequencing ("After the user reviews and approves, call send_message"), an explicit prerequisite ("ALWAYS call get_lead first"), and explicit when-not conditions (refuse for opted-out / replied / rejected leads). Nothing about when to use vs. avoid is left to inference.

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