Skip to main content
Glama

Strategic Flow MCP

Audit Email

audit_email

Audit a SaaS lifecycle email using the 7-point Decision Friction Model and return a structured conversion diagnosis.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
bodyYesThe full email body, including its copy and calls to action.
api_keyYesRequired API key from /api/mcp/claim-key.
subjectYesThe email subject line to audit.
audienceNoOptional description of the intended email audience.
email_typeNoOptional lifecycle context, such as "trial onboarding", "changelog", or "re-engagement".
preview_textNoOptional preview or preheader text shown beside the subject.
desired_actionNoOptional action the sender wants the reader to take.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
messageNoFriendly usage or next-step message when no diagnosis is returned.
cta_patternNoThe Decision Friction Model pattern that best describes the CTA.
cta_rewriteNoA specific rewritten CTA for this email.
result_typeYesWhether the diagnosis was parsed into validated model fields.
cta_weaknessNoConcrete explanation of why this CTA is weak.
raw_responseNoThe upstream diagnosis when it cannot be safely parsed into validated fields.
overall_scoreNoStructural email score from 0/10 to 10/10.
cta_exact_lineNoExact CTA line from the email, or an explicit no-CTA statement.
short_diagnosisNoBrief explanation of the core structural conversion friction.
cta_pattern_definitionNoPlain-language definition of the CTA pattern.
cta_diagnosis_directionNoDiagnosis and direction for the call to action.
primary_friction_patternNoThe main Decision Friction Model pattern found.
secondary_friction_patternNoA secondary Decision Friction Model pattern, if present.
recommended_structural_changeNoThe highest-impact structural change to make.
primary_friction_pattern_impactNoConcrete reason the primary pattern can reduce response or conversion.
primary_friction_pattern_evidenceNoExact problematic phrase from this email showing the primary pattern.
secondary_friction_pattern_impactNoConcrete reason the secondary pattern can reduce response or conversion.
primary_friction_pattern_definitionNoPlain-language definition of the primary pattern.
secondary_friction_pattern_evidenceNoExact problematic phrase from this email showing the secondary pattern.
secondary_friction_pattern_definitionNoPlain-language definition of the secondary pattern, when present.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / api_key / description
      Previous value: -"Required API key from /api/mcp/claim-key, unless this call comes from the trusted Claude MCP connector session."New value: +"Required API key from /api/mcp/claim-key."
  2. Changed2 schema fields changed
    • addedInput schema / properties / api_key
      Added value: +{
      +  "description": "Required API key from /api/mcp/claim-key, unless this call comes from the trusted Claude MCP connector session.",
      +  "minLength": 1,
      +  "type": "string"
      +}
    • changedInput schema / required
      Previous value: -[
      -  "subject",
      -  "body"
      -]New value: +[
      +  "api_key",
      +  "subject",
      +  "body"
      +]
  3. Changed11 schema fields changed
    • addedOutput schema / properties / cta_exact_line
      Added value: +{
      +  "description": "Exact CTA line from the email, or an explicit no-CTA statement.",
      +  "minLength": 1,
      +  "type": "string"
      +}
    • addedOutput schema / properties / cta_pattern
      Added value: +{
      +  "anyOf": [
      +    {
      +      "enum": [
      +        "Filing Label Subject",
      +        "Feature-First Bias",
      +        "Consequence-After-Caveat",
      +        "Missing Visual Hierarchy",
      +        "Implied Transformation",
      +        "Buried or Zero Social Proof",
      +        "Guest Language CTA"
      +      ],
      +      "type": "string"
      +    },
      +    {
      +      "const": "None identified",
      +      "type": "string"
      +    }
      +  ],
      +  "description": "The Decision Friction Model pattern that best describes the CTA."
      +}
    • addedOutput schema / properties / cta_pattern_definition
      Added value: +{
      +  "description": "Plain-language definition of the CTA pattern.",
      +  "minLength": 1,
      +  "type": "string"
      +}
    • addedOutput schema / properties / cta_rewrite
      Added value: +{
      +  "description": "A specific rewritten CTA for this email.",
      +  "minLength": 1,
      +  "type": "string"
      +}
    • addedOutput schema / properties / cta_weakness
      Added value: +{
      +  "description": "Concrete explanation of why this CTA is weak.",
      +  "minLength": 1,
      +  "type": "string"
      +}
    • addedOutput schema / properties / primary_friction_pattern_definition
      Added value: +{
      +  "description": "Plain-language definition of the primary pattern.",
      +  "minLength": 1,
      +  "type": "string"
      +}
    • addedOutput schema / properties / primary_friction_pattern_evidence
      Added value: +{
      +  "description": "Exact problematic phrase from this email showing the primary pattern.",
      +  "minLength": 1,
      +  "type": "string"
      +}
    • addedOutput schema / properties / primary_friction_pattern_impact
      Added value: +{
      +  "description": "Concrete reason the primary pattern can reduce response or conversion.",
      +  "minLength": 1,
      +  "type": "string"
      +}
    • addedOutput schema / properties / secondary_friction_pattern_definition
      Added value: +{
      +  "description": "Plain-language definition of the secondary pattern, when present.",
      +  "minLength": 1,
      +  "type": "string"
      +}
    • addedOutput schema / properties / secondary_friction_pattern_evidence
      Added value: +{
      +  "description": "Exact problematic phrase from this email showing the secondary pattern.",
      +  "minLength": 1,
      +  "type": "string"
      +}
    • addedOutput schema / properties / secondary_friction_pattern_impact
      Added value: +{
      +  "description": "Concrete reason the secondary pattern can reduce response or conversion.",
      +  "minLength": 1,
      +  "type": "string"
      +}
  4. Changed1 schema field changed
    • removedInput schema / properties / api_key
      Removed value: -{
      -  "description": "Free audit key. Claim one instantly with your email at https://mcp.strategicflow.tech/api/mcp/claim-key.",
      -  "type": "string"
      -}
  5. Changed1 schema field changed
    • addedInput schema / properties / api_key
      Added value: +{
      +  "description": "Free audit key. Claim one instantly with your email at https://mcp.strategicflow.tech/api/mcp/claim-key.",
      +  "type": "string"
      +}
  6. First observed

TDQS

A3.5/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. 'Audit' plus 'return a diagnosis' implies a non-mutating analysis, which is useful behavioral context. However, it does not disclose external API dependencies implied by the api_key parameter, potential cost, latency, or data-handling behavior, which an agent would benefit from knowing.

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?

A single sentence with no wasted words: it names the target (SaaS lifecycle email), the method (7-point Decision Friction Model), and the return value (structured diagnosis). Everything is front-loaded and readable at a glance.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The presence of an output schema and 100% parameter coverage means the description need not explain return values or parameter details. The main gaps are usage guidance (no alternative routing, no when-not-to-use) and behavioral context such as external API/cost implications. Reasonably complete for a moderate-complexity tool, but with clear gaps.

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 every parameter (including the three required ones) already has a meaningful description. The tool description adds no per-parameter detail, but with full schema coverage the baseline of 3 applies. The mention of the 7-point model only vaguely communicates how body/desired_action feed the analysis.

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 ('Audit a SaaS lifecycle email') and names the analytical lens (7-point Decision Friction Model) plus output form ('structured conversion diagnosis'). This clearly separates it from the generic sibling ask_strategic_flow, though the description never names that sibling explicitly.

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 when to use it: whenever a SaaS lifecycle email needs conversion auditing. However, it gives no explicit when-to-use versus ask_strategic_flow, no exclusions, and no statement about what situations are inappropriate for this tool. The usage context is implied rather than stated.

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