Strategic Flow MCP
Server Details
Give AI agents structural conversion intelligence for SaaS lifecycle messaging. Scores any email against a proprietary 7-point Decision Friction Model and returns a diagnosis with recommended fixes.
- Status
- Healthy
- Uptime
- 100.0% over 37 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 2 tools
ask_strategic_flow is broad Q&A about methodology and services, while audit_email is a scoped, structured audit action. They could overlap if an agent asks audit-related questions through the general tool, but the descriptions delineate the intended boundaries.
Both tool names use snake_case with a verb_object structure (ask_strategic_flow, audit_email), making them predictable and consistent.
Two tools is on the thin side for an MCP server, even for a narrow niche. The set may be sufficient for basic query and audit workflows, but it feels borderline rather than well-scoped.
The surface covers general inquiry and one core audit operation, but lacks retrieval/history, remediation guidance, or follow-up tools that would complete the audit lifecycle. There are notable gaps beyond the initial diagnosis.
Available Tools
2 toolsask_strategic_flowAsk Strategic FlowBInspect
Ask Strategic Flow about email conversion, funnel friction, the Decision Friction Model methodology, or Strategic Flow Tech services.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | Yes | Required API key from /api/mcp/claim-key. | |
| question | Yes | Your question about email conversion, funnel friction, the Decision Friction Model methodology, or Strategic Flow Tech services. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. The description only lists topics; it does not state that this is a non-destructive query operation, what the response format is, how errors or unknown topics are handled, or that an api_key is required for invocation (auth is only discoverable in the schema property description). For a tool with zero annotation coverage, this is a notable gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence with zero filler, front-loading the verb and resource before the topic enumeration. There is no redundancy or wasted wording; the description is appropriately terse for a simple query tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter Q&A tool with no output schema and no annotations, the completeness bar is lower, and the description adequately covers what topics are in scope. However, it omits what constitutes a well-formed question, the expected response shape, and confirmation that this is a read-only operation. The api_key hint implies authentication needs but is not stated in the description itself.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description simply restates the topic list already present in the 'question' parameter description almost verbatim, adding no syntax, format, or quality guidance beyond the schema. The api_key parameter is fully documented in the schema. The description adds minimal value over the schema, so it sits at baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a clear verb ('Ask') and a specific resource (Strategic Flow knowledge), and enumerates its topic domains: email conversion, funnel friction, Decision Friction Model, Strategic Flow Tech services. It informally distinguishes itself from the sibling audit_email by framing itself as a Q&A tool, though it doesn't explicitly name the alternative. Not a tautology and the scope is crisp.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied: agents should use this tool when they have questions about the listed domains. However, there is no explicit when-to-use versus alternative guidance, no exclusions, and no statement of what audit_email should be used for instead. For a tool with only one sibling, naming the trade-off would be meaningful, but the category difference (ask vs. audit) is partially inferable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
audit_emailAudit EmailBInspect
Audit a SaaS lifecycle email using the 7-point Decision Friction Model and return a structured conversion diagnosis.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | The full email body, including its copy and calls to action. | |
| api_key | Yes | Required API key from /api/mcp/claim-key. | |
| subject | Yes | The email subject line to audit. | |
| audience | No | Optional description of the intended email audience. | |
| email_type | No | Optional lifecycle context, such as "trial onboarding", "changelog", or "re-engagement". | |
| preview_text | No | Optional preview or preheader text shown beside the subject. | |
| desired_action | No | Optional action the sender wants the reader to take. |
Output Schema
| Name | Required | Description |
|---|---|---|
| changes | No | Changes made by the audit service. |
| message | No | Friendly usage or next-step message when no diagnosis is returned. |
| variants | No | Alternative rebuild variants returned by the audit service. |
| audits_used | No | Number of audits used after this request. |
| cta_pattern | No | The Decision Friction Model pattern that best describes the CTA. |
| cta_rewrite | No | A specific rewritten CTA for this email. |
| rebuilt_cta | No | The rebuilt call to action. |
| result_type | Yes | Whether the diagnosis was parsed into validated model fields. |
| upgrade_url | No | Upgrade URL returned by the audit service. |
| cta_weakness | No | Concrete explanation of why this CTA is weak. |
| raw_response | No | The upstream diagnosis when it cannot be safely parsed into validated fields. |
| rebuilt_body | No | The rebuilt email body. |
| overall_score | No | Structural email score from 0/10 to 10/10. |
| rebuilt_score | No | Rebuilt structural email score from 0 to 10 for members. |
| cta_exact_line | No | Exact CTA line from the email, or an explicit no-CTA statement. |
| original_score | No | Original structural email score from 0 to 10 for members. |
| audit_record_id | No | Identifier of the stored upstream audit record. |
| rebuilt_subject | No | The rebuilt email subject. |
| short_diagnosis | No | Brief explanation of the core structural conversion friction. |
| audits_remaining | No | Number of audits remaining after this request. |
| original_subject | No | The original email subject sent for rebuilding. |
| structured_fixes | No | Structured email fixes returned by the audit service. |
| cta_pattern_definition | No | Plain-language definition of the CTA pattern. |
| cta_diagnosis_direction | No | Diagnosis and direction for the call to action. |
| primary_friction_pattern | No | The main Decision Friction Model pattern found. |
| secondary_friction_pattern | No | A secondary Decision Friction Model pattern, if present. |
| recommended_structural_change | No | The highest-impact structural change to make. |
| primary_friction_pattern_impact | No | Concrete reason the primary pattern can reduce response or conversion. |
| primary_friction_pattern_evidence | No | Exact problematic phrase from this email showing the primary pattern. |
| secondary_friction_pattern_impact | No | Concrete reason the secondary pattern can reduce response or conversion. |
| primary_friction_pattern_definition | No | Plain-language definition of the primary pattern. |
| secondary_friction_pattern_evidence | No | Exact problematic phrase from this email showing the secondary pattern. |
| secondary_friction_pattern_definition | No | Plain-language definition of the secondary pattern, when present. |
TDQS
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.
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.
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.
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.
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.
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.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
- Changed
audit_email1 field changed- changed
Output schema / properties / structured_fixes / items / requiredPrevious value: -[ - "fix_id", - "field_name", - "before_value", - "after_value", - "pattern", - "element", - "why" -]New value: +[ + "fix_id", + "field_name", + "before_value", + "pattern", + "element", + "why" +]
1 tool update
- Changed
audit_email2 fields changed- added
Output schema / properties / audit_record_idAdded value: +{ + "description": "Identifier of the stored upstream audit record.", + "minLength": 1, + "type": "string" +} - added
Output schema / properties / structured_fixesAdded 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" +}
1 tool update
- Changed
audit_email2 fields changed- added
Output schema / properties / original_scoreAdded value: +{ + "description": "Original structural email score from 0 to 10 for members.", + "maximum": 10, + "minimum": 0, + "type": "number" +} - added
Output schema / properties / rebuilt_scoreAdded value: +{ + "description": "Rebuilt structural email score from 0 to 10 for members.", + "maximum": 10, + "minimum": 0, + "type": "number" +}
1 tool update
- Changed
audit_email3 fields changed- added
Output schema / properties / upgrade_url / anyOfAdded value: +[ + { + "minLength": 1, + "type": "string" + }, + { + "type": "null" + } +] - removed
Output schema / properties / upgrade_url / minLengthRemoved value: -1 - removed
Output schema / properties / upgrade_url / typeRemoved value: -"string"
1 tool update
- Changed
audit_email9 fields changed- added
Output schema / properties / audits_remainingAdded value: +{ + "description": "Number of audits remaining after this request.", + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" +} - added
Output schema / properties / audits_usedAdded value: +{ + "description": "Number of audits used after this request.", + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" +} - added
Output schema / properties / changesAdded value: +{ + "description": "Changes made by the audit service.", + "items": {}, + "type": "array" +} - added
Output schema / properties / original_subjectAdded value: +{ + "description": "The original email subject sent for rebuilding.", + "minLength": 1, + "type": "string" +} - added
Output schema / properties / rebuilt_bodyAdded value: +{ + "description": "The rebuilt email body.", + "minLength": 1, + "type": "string" +} - added
Output schema / properties / rebuilt_ctaAdded value: +{ + "description": "The rebuilt call to action.", + "minLength": 1, + "type": "string" +} - added
Output schema / properties / rebuilt_subjectAdded value: +{ + "description": "The rebuilt email subject.", + "minLength": 1, + "type": "string" +} - added
Output schema / properties / upgrade_urlAdded value: +{ + "description": "Upgrade URL returned by the audit service.", + "minLength": 1, + "type": "string" +} - added
Output schema / properties / variantsAdded value: +{ + "description": "Alternative rebuild variants returned by the audit service.", + "items": {}, + "type": "array" +}
2 tool updates
- Changed
ask_strategic_flow2 fields changed- added
Input schema / properties / api_keyAdded value: +{ + "description": "Required API key from /api/mcp/claim-key.", + "minLength": 1, + "type": "string" +} - changed
Input schema / requiredPrevious value: -[ - "question" -]New value: +[ + "api_key", + "question" +]
- Changed
audit_email1 field changed- changed
Input schema / properties / api_key / descriptionPrevious 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."
1 tool update
- Changed
audit_email2 fields changed- added
Input schema / properties / api_keyAdded 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" +} - changed
Input schema / requiredPrevious value: -[ - "subject", - "body" -]New value: +[ + "api_key", + "subject", + "body" +]
1 tool update
- Changed
audit_email11 fields changed- added
Output schema / properties / cta_exact_lineAdded value: +{ + "description": "Exact CTA line from the email, or an explicit no-CTA statement.", + "minLength": 1, + "type": "string" +} - added
Output schema / properties / cta_patternAdded 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." +} - added
Output schema / properties / cta_pattern_definitionAdded value: +{ + "description": "Plain-language definition of the CTA pattern.", + "minLength": 1, + "type": "string" +} - added
Output schema / properties / cta_rewriteAdded value: +{ + "description": "A specific rewritten CTA for this email.", + "minLength": 1, + "type": "string" +} - added
Output schema / properties / cta_weaknessAdded value: +{ + "description": "Concrete explanation of why this CTA is weak.", + "minLength": 1, + "type": "string" +} - added
Output schema / properties / primary_friction_pattern_definitionAdded value: +{ + "description": "Plain-language definition of the primary pattern.", + "minLength": 1, + "type": "string" +} - added
Output schema / properties / primary_friction_pattern_evidenceAdded value: +{ + "description": "Exact problematic phrase from this email showing the primary pattern.", + "minLength": 1, + "type": "string" +} - added
Output schema / properties / primary_friction_pattern_impactAdded value: +{ + "description": "Concrete reason the primary pattern can reduce response or conversion.", + "minLength": 1, + "type": "string" +} - added
Output schema / properties / secondary_friction_pattern_definitionAdded value: +{ + "description": "Plain-language definition of the secondary pattern, when present.", + "minLength": 1, + "type": "string" +} - added
Output schema / properties / secondary_friction_pattern_evidenceAdded value: +{ + "description": "Exact problematic phrase from this email showing the secondary pattern.", + "minLength": 1, + "type": "string" +} - added
Output schema / properties / secondary_friction_pattern_impactAdded value: +{ + "description": "Concrete reason the secondary pattern can reduce response or conversion.", + "minLength": 1, + "type": "string" +}
1 tool update
- Changed
audit_email1 field changed- removed
Input schema / properties / api_keyRemoved value: -{ - "description": "Free audit key. Claim one instantly with your email at https://mcp.strategicflow.tech/api/mcp/claim-key.", - "type": "string" -}
1 tool update
- Changed
audit_email1 field changed- added
Input schema / properties / api_keyAdded value: +{ + "description": "Free audit key. Claim one instantly with your email at https://mcp.strategicflow.tech/api/mcp/claim-key.", + "type": "string" +}
2 tool updates
- First observed
ask_strategic_flow - First observed
audit_email
Related MCP Servers
- AlicenseAqualityCmaintenanceEnables brand visibility monitoring across major AI platforms like ChatGPT, Claude, Gemini, and Perplexity. It allows users to track visibility scores, analyze competitor data, and receive actionable insights to improve AI-generated brand recommendations.1624 npm1MIT
- AlicenseCqualityBmaintenanceCompetitor Monitor AI - MCP server providing AI-powered tools and automation by MEOK AI Labs1114 npm40 PyPIMIT
- AlicenseAqualityCmaintenanceRevnuvo Company Intelligence tells AI agents what changed at a company, with evidence. It observes company websites, technologies, and DNS over time and returns timestamped, confidence-aware changes, signals, and monitoring.9MIT

industrylens-mcpofficial
AlicenseNot gradedqualityBmaintenanceBrowse IndustryLens's published competitive-intelligence reports and head-to-head competitor comparisons from any AI agent — real, source-backed data.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.