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
changesNoChanges made by the audit service.
messageNoFriendly usage or next-step message when no diagnosis is returned.
variantsNoAlternative rebuild variants returned by the audit service.
audits_usedNoNumber of audits used after this request.
cta_patternNoThe Decision Friction Model pattern that best describes the CTA.
cta_rewriteNoA specific rewritten CTA for this email.
rebuilt_ctaNoThe rebuilt call to action.
result_typeYesWhether the diagnosis was parsed into validated model fields.
upgrade_urlNoUpgrade URL returned by the audit service.
cta_weaknessNoConcrete explanation of why this CTA is weak.
raw_responseNoThe upstream diagnosis when it cannot be safely parsed into validated fields.
rebuilt_bodyNoThe rebuilt email body.
overall_scoreNoStructural email score from 0/10 to 10/10.
rebuilt_scoreNoRebuilt structural email score from 0 to 10 for members.
cta_exact_lineNoExact CTA line from the email, or an explicit no-CTA statement.
original_scoreNoOriginal structural email score from 0 to 10 for members.
audit_record_idNoIdentifier of the stored upstream audit record.
rebuilt_subjectNoThe rebuilt email subject.
short_diagnosisNoBrief explanation of the core structural conversion friction.
audits_remainingNoNumber of audits remaining after this request.
original_subjectNoThe original email subject sent for rebuilding.
structured_fixesNoStructured email fixes returned by the audit service.
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
    • changedOutput schema / properties / structured_fixes / items / required
      Previous value: -[
      -  "fix_id",
      -  "field_name",
      -  "before_value",
      -  "after_value",
      -  "pattern",
      -  "element",
      -  "why"
      -]New value: +[
      +  "fix_id",
      +  "field_name",
      +  "before_value",
      +  "pattern",
      +  "element",
      +  "why"
      +]
  2. Changed2 schema fields changed
    • addedOutput schema / properties / audit_record_id
      Added value: +{
      +  "description": "Identifier of the stored upstream audit record.",
      +  "minLength": 1,
      +  "type": "string"
      +}
    • addedOutput schema / properties / structured_fixes
      Added value: +{
      +  "description": "Structured email fixes returned by the audit service.",
      +  "items": {
      +    "additionalProperties": {},
      +    "properties": {
      +      "after_value": {},
      +      "before_value": {},
      +      "element": {},
      +      "field_name": {},
      +      "fix_id": {},
      +      "pattern": {},
      +      "why": {}
      +    },
      +    "required": [
      +      "fix_id",
      +      "field_name",
      +      "before_value",
      +      "after_value",
      +      "pattern",
      +      "element",
      +      "why"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
  3. Changed2 schema fields changed
    • addedOutput schema / properties / original_score
      Added value: +{
      +  "description": "Original structural email score from 0 to 10 for members.",
      +  "maximum": 10,
      +  "minimum": 0,
      +  "type": "number"
      +}
    • addedOutput schema / properties / rebuilt_score
      Added value: +{
      +  "description": "Rebuilt structural email score from 0 to 10 for members.",
      +  "maximum": 10,
      +  "minimum": 0,
      +  "type": "number"
      +}
  4. Changed3 schema fields changed
    • addedOutput schema / properties / upgrade_url / anyOf
      Added value: +[
      +  {
      +    "minLength": 1,
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • removedOutput schema / properties / upgrade_url / minLength
      Removed value: -1
    • removedOutput schema / properties / upgrade_url / type
      Removed value: -"string"
  5. Changed9 schema fields changed
    • addedOutput schema / properties / audits_remaining
      Added value: +{
      +  "description": "Number of audits remaining after this request.",
      +  "maximum": 9007199254740991,
      +  "minimum": 0,
      +  "type": "integer"
      +}
    • addedOutput schema / properties / audits_used
      Added value: +{
      +  "description": "Number of audits used after this request.",
      +  "maximum": 9007199254740991,
      +  "minimum": 0,
      +  "type": "integer"
      +}
    • addedOutput schema / properties / changes
      Added value: +{
      +  "description": "Changes made by the audit service.",
      +  "items": {},
      +  "type": "array"
      +}
    • addedOutput schema / properties / original_subject
      Added value: +{
      +  "description": "The original email subject sent for rebuilding.",
      +  "minLength": 1,
      +  "type": "string"
      +}
    • addedOutput schema / properties / rebuilt_body
      Added value: +{
      +  "description": "The rebuilt email body.",
      +  "minLength": 1,
      +  "type": "string"
      +}
    • addedOutput schema / properties / rebuilt_cta
      Added value: +{
      +  "description": "The rebuilt call to action.",
      +  "minLength": 1,
      +  "type": "string"
      +}
    • addedOutput schema / properties / rebuilt_subject
      Added value: +{
      +  "description": "The rebuilt email subject.",
      +  "minLength": 1,
      +  "type": "string"
      +}
    • addedOutput schema / properties / upgrade_url
      Added value: +{
      +  "description": "Upgrade URL returned by the audit service.",
      +  "minLength": 1,
      +  "type": "string"
      +}
    • addedOutput schema / properties / variants
      Added value: +{
      +  "description": "Alternative rebuild variants returned by the audit service.",
      +  "items": {},
      +  "type": "array"
      +}
  6. 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."
  7. 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"
      +]
  8. 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"
      +}
  9. 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"
      -}
  10. 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"
      +}
  11. First observed

TDQS

B3.4/5.0
Behavior3/5

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

No annotations are provided, so the description must carry the full burden. It discloses the 7-point Decision Friction Model and that a structured diagnosis is returned, but omits whether the operation is read-only, any permission or rate-limit requirements, and other behavioral traits. The schema does document the api_key requirement, but the description does not reinforce it.

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, front-loaded sentence that contains no filler or redundancy. Every part of the sentence contributes to understanding the tool's purpose and output.

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?

An output schema exists, so return values need not be explained. The description states the tool's purpose and method clearly. It does not address when to use this tool versus the sibling, but otherwise provides sufficient context for an agent to call it correctly given the rich schema.

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%, so all seven parameters are fully documented in the schema. The description adds no additional parameter semantics beyond what the schema already provides, which is the baseline expectation.

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 (audit), resource (SaaS lifecycle email), and output (structured conversion diagnosis). Clearly conveys what the tool does, but does not differentiate it from the sibling ask_strategic_flow.

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

Usage Guidelines2/5

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

Provides no explicit when-to-use guidance, no alternatives, and no exclusions. Usage is only implied by the tool name and description, leaving the agent to infer the appropriate context.

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