Skip to main content
Glama

AEO Backlink

Generate outreach email

generate_outreach_email
Read-onlyIdempotent

Draft a short, personalized cold outreach email from a contact + context object using your own LLM key (BYOK). Returns a subject line and body. The API key is request-scoped and is never persisted or logged.

Input Schema

NameRequiredDescriptionDefault
modelYesModel id (e.g. claude-sonnet-4-20250514).
apiKeyYesBYOK API key — request-scoped, never persisted or logged.
contactYesThe recipient. All fields optional; more detail yields better personalization.
contextYesThe outreach angle and sender context.
providerYesLLM provider for @advance-labs/llm.
maxTokensNo
temperatureNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and non-destructive, so the safety bar is low, yet the description still adds real value: it names the return shape (subject line and body) and discloses the BYOK key handling — request-scoped, never persisted or logged. That's meaningful context beyond the annotations. It stops short of describing provider-side failure/rate-limit behavior.

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?

Three tight sentences, front-loaded with the action and inputs, followed by the return value and the security guarantee. No filler; every sentence carries information.

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 correctly supplies the return shape (subject + body) and the key-handling guarantee, and hints at brevity via 'short'. It leaves out error/fallback behavior across the five providers and any length or rate constraints, so it's strong but not exhaustive for a 7-param, nested-schema tool.

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 coverage is 71%, so the schema already documents most parameters (contact fields, context.tone/notes/reason, provider enum, apiKey). The description only restates the contact/context framing and the apiKey scoping, adding little for model, provider, maxTokens, or temperature. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Draft a short, personalized cold outreach email') and names the exact inputs (contact + context) and output (subject line and body). It doesn't need sibling differentiation since no sibling generates content, but it also makes no explicit contrast with extract_contact_info or find_prospects, which would have earned a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the use case (cold outreach with a personalized angle) but gives no explicit when-to-use/when-not guidance, no prerequisites beyond BYOK, and no pointer to any alternative tool. An agent must infer that it should gather contact/context data from the sibling tools first.

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.