draft_outreach
Produce two outreach draft variants (A/B) for a lead given an angle. Both drafts are warm and kind by design (P10) — variants differ in angle of helpfulness (subject hook, opening framing, call-to-action) not in tone. Drafts are written to lead_drafts as pending_review. Returns IDs + previews. Us...
This record as markdown: /tools/com-getfreedomos-freedom-mcp/draft-outreach.md
What draft_outreach does on Freedom Mcp
AI agents use draft_outreach to create or update resources in Freedom Mcp, usually the action step of a workflow, after the agent has gathered context. Every call changes real data in your Freedom Mcp environment.
| Parameter | Type | Required | Description |
|---|---|---|---|
angle | string | Yes | The outreach angle to use (e.g., 'deeper_lp3_discovery', 'lighter_touch_different_hook', 'jurisdiction_clarification', 'kind_check_in'). Take from synthesize_le |
lead_id | string | Yes | UUID of the lead. |
reply_to | string | — | Optional Reply-To address to carry on the eventual send (CONTRACT-1 agent thread address). Stamped into both drafts' metadata (best-effort — the metadata column |
companyId | string | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
from_name | string | — | Optional sender display name (e.g., 'Acme Team', 'Alex at Acme'). Used in draft signature. When omitted, the CONTRACT-5 chain resolves it: the company's mcp_con |
eligible_at | string | — | Optional ISO timestamp — the earliest real time this draft may be sent (2026-07-13 send-timing gate). For a sequence step, pass now + that step's delay_hours (a |
sequence_id | string | — | Optional. The outreach_sequences.id the step belongs to. Pass it together with sequence_step_id to enable the A/B prior-stats bias — step ids repeat across sequ |
company_context | string | — | Optional short summary of the company the lead arrived at (e.g., 'Acme Health — pharmacy compounding compliance consulting'). Helps the model pitch correctly. |
journey_summary | string | Yes | Short prose summary of what we know about this lead (their state, recent activity, what they engaged with). Used as context for the draft. Synthesis.intent_summ |
sequence_step_id | string | — | Optional. If this draft is part of an auto-mode sequence step, pass the step_id from outreach_sequences. Otherwise omit (manual one-off draft). |
regenerated_reason | string | — | Optional (regenerate-on-signal, 2026-07-15). When the sequencer re-drafts a not-yet-sent step after a meaningful lead signal (temperature flip to hot, a click), |
variant_b_guidance | string | — | Optional (CONTRACT-3). Sequence-designed seed for the B variant — a distilled subject+body angle persisted on the sequence step (steps jsonb, additive variant_b |
Parameters from the server's own tool schema.
Why draft_outreach is rated Medium
This tool creates new data (outreach draft documents) and persists them to a backend system (lead_drafts table/collection). It is not read-only retrieval, nor does it execute arbitrary external operations, delete data, or commit financial transactions. The [write-tier] approval requirement confirms its write classification.
From the tool's definition Drafts are written to lead_drafts as pending_review. Returns IDs + previews. Tool creates new outreach document variants that are stored in a system, with explicit mention that output is written to a database/collection.
Risk signalsHigh parameter count (12 properties)
Attacks that exploit this kind of access
The rule that runs draft_outreach safely
PolicyLayer is an MCP gateway: it sits between your AI agents and Freedom Mcp, and checks every tool call against a rule you set before the call runs. Nothing changes on the server itself. For draft_outreach, this is the rule to start with:
draft_outreach stays usable, but capped: an agent stuck in a loop can't make hundreds of changes a minute. Everything else on the server is denied unless you say otherwise.
The button opens the PolicyLayer dashboard: create your workspace, connect Freedom Mcp, apply this rule, and every draft_outreach call is checked against it from then on.
Questions about draft_outreach
Produce two outreach draft variants (A/B) for a lead given an angle. Both drafts are warm and kind by design (P10) — variants differ in angle of helpfulness (subject hook, opening framing, call-to-action) not in tone. Drafts are written to lead_drafts as pending_review. Returns IDs + previews. Use after synthesize_lead_hypothesis to draft initial outreach. [write-tier — first use may require a manager's approval; a from-now-on approval makes future calls seamless, a just-once approval re-asks next time.]. It is categorised as a Write tool in the Freedom Mcp MCP Server, which means it can create or modify data. Consider rate limits to prevent runaway writes.
draft_outreach accepts 12 parameters: angle, lead_id, reply_to, companyId, from_name, eligible_at, sequence_id, company_context, journey_summary, sequence_step_id, regenerated_reason, variant_b_guidance. Required: angle, lead_id, companyId, journey_summary. The full parameter table on this page comes from the server's own tool schema.
Register the Freedom MCP server in PolicyLayer and add a rule for draft_outreach: allow, deny, rate-limit, or require approval. Point your MCP client at the PolicyLayer proxy URL and the rule is enforced on every call, before it reaches Freedom Mcp. Nothing to install.
draft_outreach is a Write tool with medium risk. Write tools should be rate-limited to prevent accidental bulk modifications.
Yes. Add a rate_limit block to the draft_outreach rule in your PolicyLayer policy. For example, setting max: 10 and window: 60 limits the tool to 10 calls per minute. Rate limits are tracked per agent session and reset automatically.
Set action: deny in the PolicyLayer policy for draft_outreach. The AI agent will receive a policy violation error and cannot call the tool. You can also include a reason field to explain why the tool is blocked.
draft_outreach is provided by the Freedom MCP server (https://twuluxmoognlwtmaoqgo.supabase.co/functions/v1/freedom-mcp). PolicyLayer sits as a proxy in front of this server to enforce policies before tool calls reach the server.
More on Freedom, and thousands of servers like it.
This server
Across the catalogue