Skip to main content
Glama

draft_outreach_message

Draft a pitch email to the author of a cited page and save it as the page's Outreach draft, replacing any previous draft. Uses the website's team-wide Outreach custom instructions, the saved author name, and the sender's name. Costs 0.1 credits per draft written (billed in whole credits every 10 drafts); free when the page cannot be read. Show the draft to the user before they send it; nothing is sent.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "website_id": "<website_id>",
      "url": "<url>"
    },
    "name": "draft_outreach_message"
  }
}

Input Schema

NameRequiredDescriptionDefault
urlYesCited page URL, e.g. "example.com/blog/best-tools". A contact already saved under this exact URL (for example one the Outreach page saved for a query variant its URL rules list separately) is used first. Otherwise protocol, "www." and the query string (tracking parameters) are ignored, as on the Outreach page. The page is always read at the URL given.
website_idYes
sender_nameNoName to sign the email with. Defaults to the signed-in user's profile name; required for API-key sessions that should sign with a name.

Output Schema

NameRequiredDescriptionDefault
contactNo
createdNoTrue when this call created the page's contact.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed14 schema fields changed
    • removedOutput schema / properties / contact / properties / assignee_email / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / contact / properties / assignee_email / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / contact / properties / author_name / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / contact / properties / author_name / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / contact / properties / contact_page_url / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / contact / properties / contact_page_url / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / contact / properties / email / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / contact / properties / email / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / contact / properties / linkedin / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / contact / properties / linkedin / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / contact / properties / message / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / contact / properties / message / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / contact / properties / subject / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / contact / properties / subject / type
      Added value: +[
      +  "string",
      +  "null"
      +]
  2. Added

TDQS

A4.6/5.0
Behavior5/5

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

Annotations only give the generic readOnly=false/openWorld=true/destructive=false profile, whereas the description adds the material facts: overwrite of the prior draft, billing at 0.1 credits per draft with whole-credit billing every 10, a free path when the page cannot be read, and the reassurance that nothing is actually sent. It also names the inputs synthesized into the draft (team custom instructions, saved author name, sender name).

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 sentences, front-loaded with the action and its side effect, followed by data sources, cost, and safety. Every sentence carries distinct information with no repetition of schema content.

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 an output schema present, the description need not describe return values, and cost, overwrite behavior and non-sending are all covered. Minor gaps remain around permission prerequisites and what happens when no author contact exists for the page, but nothing critical to a caller is missing.

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?

The url and sender_name parameters are already documented in the schema (67% coverage); the description adds value for the undocumented website_id by explaining it selects the website's team-wide Outreach custom instructions. It also clarifies that the saved author name is pulled implicitly rather than passed as a parameter, which the schema alone would not convey.

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 and target ("Draft a pitch email to the author of a cited page") and its persistence side effect ("save it as the page's Outreach draft"). This clearly separates it from read-oriented siblings such as get_pitch, list_pitches and find_outreach_author.

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?

"Show the draft to the user before they send it; nothing is sent" gives clear workflow context for an agent that might fear triggering outbound email, and "replacing any previous draft" sets expectations for repeat calls. However, no sibling is named as an alternative (e.g. find_outreach_author first, or update_outreach_contact), and it does not say what to do when no author is saved.

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