Skip to main content
Glama

Manage outreach

manage_outreach
Destructive

Draft and manage outreach messages to people at companies: accept the terms, draft, edit, redraft, discard, record the outcome and close a thread; build Mailbox campaigns, choose their message, edit or remove their emails and cancel them. Standard drafts first emails to the hiring contacts it revealed; sending, the terms, outcomes and campaigns are Premium. Sending is send_email send_outreach or send_campaign. Actions: accept_terms, draft, edit, discard, regenerate, resolve, close_thread, create_campaign, choose_campaign_template, retry_campaign_templates, write_campaign_emails, edit_campaign_email, cancel_campaign. Call with action "help" for each action's fields.

Input Schema

NameRequiredDescriptionDefault
actionYes
paramsNoFields for the action. Call with action "help" to list each action's fields.
target_idNoOne campaign email's id from get_outreach campaign or campaign_targets (targets[].id).
campaign_idNoA campaign's id from get_outreach campaigns (campaigns[].id).
outreach_idNoAn outreach message or thread id from get_outreach.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changed
    • changedInput schema / properties / action / enum
      Previous value: -[
      -  "accept_terms",
      -  "draft",
      -  "edit",
      -  "discard",
      -  "regenerate",
      -  "resolve",
      -  "close_thread",
      -  "help"
      -]New value: +[
      +  "accept_terms",
      +  "draft",
      +  "edit",
      +  "discard",
      +  "regenerate",
      +  "resolve",
      +  "close_thread",
      +  "create_campaign",
      +  "choose_campaign_template",
      +  "retry_campaign_templates",
      +  "write_campaign_emails",
      +  "edit_campaign_email",
      +  "cancel_campaign",
      +  "help"
      +]
    • addedInput schema / properties / campaign_id
      Added value: +{
      +  "description": "A campaign's id from get_outreach campaigns (campaigns[].id).",
      +  "pattern": "^[a-f0-9]{32}$",
      +  "type": "string"
      +}
    • addedInput schema / properties / target_id
      Added value: +{
      +  "description": "One campaign email's id from get_outreach campaign or campaign_targets (targets[].id).",
      +  "pattern": "^[a-f0-9]{32}$",
      +  "type": "string"
      +}
  2. Added

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true, readOnlyHint=false and idempotentHint=false, and the description's destructive verbs (discard, remove, cancel, close_thread) are consistent with that. It adds genuinely new behavioral context beyond the annotations: which capabilities require a Premium plan and the existence of a terms-acceptance prerequisite. It stops short of saying whether discard/cancel are reversible or what happens to already-sent campaigns.

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?

Front-loaded with the capability enumeration before the Premium and routing caveats, which is the right order for a dispatcher tool. It is dense and long, but each clause maps to a distinct action or constraint, so little is wasted; the run-on sentence structure makes it slightly harder to scan than it could be.

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?

For a 13-action dispatcher with no output schema and a free-form nested params object, the description covers capabilities, tiering, prerequisites and cross-tool routing. The remaining gap is that per-action field requirements are deferred entirely to an extra action "help" call, which the agent must know to make before invoking a real action.

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?

Schema coverage is 80%, so the baseline is 3, but the description adds real value by decoding opaque action names into behaviors (e.g. 'record the outcome' = resolve, 'redraft' = regenerate, 'close a thread' = close_thread) rather than just repeating the enum. It also documents the escape hatch for the nested 'params' object via action "help", though it never explains that object's shape directly.

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?

Names a specific verb (draft/manage) and resource (outreach messages to people at companies), then enumerates the full scope across two sub-domains (messages/threads and Mailbox campaigns). It explicitly carves sending out to send_email send_outreach/send_campaign, so an agent can separate this tool from the sibling that actually sends.

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?

It states the key routing rule ('Sending is send_email send_outreach or send_campaign') and discloses the Premium gate on sending, terms, outcomes and campaigns, which tells the agent when calls will fail. It does not, however, contrast itself with get_outreach (read side) or explain the ordering between accept_terms and the drafting actions, leaving some usage inference to the agent.

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.