Scores website pages for communication quality, tracks regressions, surfaces a fix queue.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Analyze content using all 4 COS frameworks in parallel. Returns comprehensive analysis with: - Overall scores (0-10) for each framework - Dimension breakdowns with weights - Specific recommendations for improvement - Cross-framework insights
The text content to analyze (min 50 characters)
Target platform for optimization (affects scoring weights)
Description of intended audience (improves relevance scoring)
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Analyze content using all 4 COS frameworks in parallel. Returns comprehensive analysis with: - Overall scores (0-10) for each framework - Dimension breakdowns with weights - Specific recommendations for improvement - Cross-framework insights
| Argument | Type | Description |
|---|---|---|
| content* | string | The text content to analyze (min 50 characters) |
| platform | string | Target platform for optimization (affects scoring weights) |
| target_audience | any | Description of intended audience (improves relevance scoring) |
{
"type": "object",
"required": [
"content"
],
"properties": {
"content": {
"type": "string",
"description": "The text content to analyze (min 50 characters)"
},
"platform": {
"enum": [
"twitter",
"linkedin",
"email",
"youtube",
"tiktok",
"instagram",
"facebook",
"medium",
"substack",
"podcast",
"newsletter",
"slack",
"discord",
"general"
],
"type": "string",
"default": "general",
"description": "Target platform for optimization (affects scoring weights)"
},
"target_audience": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Description of intended audience (improves relevance scoring)"
}
},
"additionalProperties": false
}Analyze content using a single specific framework. Faster than full analysis when you only need one perspective. Frameworks: - hape: Engagement Analysis (novelty, relevance, emotional valence) - big_five: Personality Analysis using OCEAN model (openness, conscientiousness, extraversion, agreeableness, neuroticism) - strategic_clarity: Business message clarity (value prop, differentiation, CTA) - framing_strategy: Cognitive frames and power positioning
| Argument | Type | Description |
|---|---|---|
| content* | string | The text content to analyze (min 50 characters) |
| platform | string | Target platform for optimization |
| framework* | string | Which analysis framework to use |
| temperature | any | Optional LLM sampling temperature. Pass 0.0 for deterministic scoring (validation harnesses, classification-agreement gates). Leave unset (None) for the backend default. Forwarded to the analyze endpoint, which has accepted this parameter since cos-bbf. |
| target_audience | any | Description of intended audience |
{
"type": "object",
"required": [
"content",
"framework"
],
"properties": {
"content": {
"type": "string",
"description": "The text content to analyze (min 50 characters)"
},
"platform": {
"enum": [
"twitter",
"linkedin",
"email",
"youtube",
"tiktok",
"instagram",
"facebook",
"medium",
"substack",
"podcast",
"newsletter",
"slack",
"discord",
"general"
],
"type": "string",
"default": "general",
"description": "Target platform for optimization"
},
"framework": {
"enum": [
"hape",
"big_five",
"strategic_clarity",
"framing_strategy"
],
"type": "string",
"description": "Which analysis framework to use"
},
"temperature": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional LLM sampling temperature. Pass 0.0 for deterministic\nscoring (validation harnesses, classification-agreement gates). Leave\nunset (None) for the backend default. Forwarded to the analyze\nendpoint, which has accepted this parameter since cos-bbf."
},
"target_audience": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Description of intended audience"
}
},
"additionalProperties": false
}Run all 7 COS frameworks in parallel for comprehensive analysis. This is the most thorough analysis option, running: - Core 4: HAPE, Big Five, Strategic Clarity, Sovereign Mind - Extended 3: Persuasion (domain-specific), Platform, Quality Use this when you need complete analysis across all dimensions. Takes longer but provides the most comprehensive view.
| Argument | Type | Description |
|---|---|---|
| domain | string | Domain for persuasion analysis |
| content* | string | The text content to analyze (min 50 characters) |
| platform | string | Target platform for optimization |
| target_audience | any | Description of intended audience |
{
"type": "object",
"required": [
"content"
],
"properties": {
"domain": {
"enum": [
"business",
"politics",
"health",
"masculinity",
"comedy"
],
"type": "string",
"default": "business",
"description": "Domain for persuasion analysis"
},
"content": {
"type": "string",
"description": "The text content to analyze (min 50 characters)"
},
"platform": {
"enum": [
"twitter",
"linkedin",
"email",
"youtube",
"tiktok",
"instagram",
"facebook",
"medium",
"substack",
"podcast",
"newsletter",
"slack",
"discord",
"general"
],
"type": "string",
"default": "linkedin",
"description": "Target platform for optimization"
},
"target_audience": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Description of intended audience"
}
},
"additionalProperties": false
}Analyze content using domain-specific persuasion frameworks. Each domain has specialized scoring dimensions: - business: B2B/B2C messaging, ROI framing, objection handling - politics: Political messaging, polarization awareness, coalition building - health: Medical accuracy, safety messaging, behavior change (CRITICAL domain) - masculinity: Identity messaging, status signaling, tribe alignment - comedy: Humor mechanics, timing, callback patterns
| Argument | Type | Description |
|---|---|---|
| domain | string | The domain context for persuasion analysis |
| content* | string | The text content to analyze (min 50 characters) |
| platform | string | Target platform for optimization |
| temperature | any | Optional LLM sampling temperature. Pass 0.0 for deterministic scoring (validation harnesses, classification-agreement gates). Leave unset (None) for the backend default. Forwarded to the persuasion endpoint, which has accepted this parameter since cos-bbf. |
| target_audience | any | Description of intended audience |
{
"type": "object",
"required": [
"content"
],
"properties": {
"domain": {
"enum": [
"business",
"politics",
"health",
"masculinity",
"comedy"
],
"type": "string",
"default": "business",
"description": "The domain context for persuasion analysis"
},
"content": {
"type": "string",
"description": "The text content to analyze (min 50 characters)"
},
"platform": {
"enum": [
"twitter",
"linkedin",
"email",
"youtube",
"tiktok",
"instagram",
"facebook",
"medium",
"substack",
"podcast",
"newsletter",
"slack",
"discord",
"general"
],
"type": "string",
"default": "general",
"description": "Target platform for optimization"
},
"temperature": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional LLM sampling temperature. Pass 0.0 for deterministic\nscoring (validation harnesses, classification-agreement gates). Leave\nunset (None) for the backend default. Forwarded to the persuasion\nendpoint, which has accepted this parameter since cos-bbf."
},
"target_audience": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Description of intended audience"
}
},
"additionalProperties": false
}Analyze content for platform-specific optimization. Evaluates content against platform constraints and algorithm preferences: - Character limits and formatting rules - Algorithm optimization signals - Engagement pattern recommendations - Platform-specific best practices Supported platforms: twitter, linkedin, email, youtube, tiktok, instagram, facebook, medium, substack, podcast, newsletter, slack, discord
| Argument | Type | Description |
|---|---|---|
| content* | string | The text content to analyze (min 50 characters) |
| platform | string | The target platform for optimization |
| target_audience | any | Description of intended audience |
{
"type": "object",
"required": [
"content"
],
"properties": {
"content": {
"type": "string",
"description": "The text content to analyze (min 50 characters)"
},
"platform": {
"enum": [
"twitter",
"linkedin",
"email",
"youtube",
"tiktok",
"instagram",
"facebook",
"medium",
"substack",
"podcast",
"newsletter",
"slack",
"discord",
"general"
],
"type": "string",
"default": "linkedin",
"description": "The target platform for optimization"
},
"target_audience": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Description of intended audience"
}
},
"additionalProperties": false
}Analyze content quality across 5 dimensions. Quality dimensions evaluated: - Clarity: Is the message easy to understand? - Coherence: Does the content flow logically? - Correctness: Grammar, spelling, factual accuracy - Completeness: Are all necessary elements present? - Conciseness: Is the content appropriately tight?
| Argument | Type | Description |
|---|---|---|
| content* | string | The text content to analyze (min 50 characters) |
| platform | string | Target platform context |
| target_audience | any | Description of intended audience |
{
"type": "object",
"required": [
"content"
],
"properties": {
"content": {
"type": "string",
"description": "The text content to analyze (min 50 characters)"
},
"platform": {
"enum": [
"twitter",
"linkedin",
"email",
"youtube",
"tiktok",
"instagram",
"facebook",
"medium",
"substack",
"podcast",
"newsletter",
"slack",
"discord",
"general"
],
"type": "string",
"default": "general",
"description": "Target platform context"
},
"target_audience": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Description of intended audience"
}
},
"additionalProperties": false
}Infer OCEAN personality profile from an audience description. Maps a free-text target audience description into a structured psychological profile suitable for personalized outreach (cold email, ads, sales messaging). Returns: - OCEAN scores (openness, conscientiousness, extraversion, agreeableness, neuroticism) - ocean_confidence (0.0-1.0) — low when signals are weak - elm_route ("central" | "peripheral" | "mixed") — how the audience processes persuasion - dominant_traits + trait_rationale - dominant_moral_foundations (Moral Foundations Theory) - vulnerability_flags — audiences requiring careful ethics review - recommended_persuasion_principle (Cialdini) + persuasion_rationale Common use: feed a CRM Person/Account description (title, industry, recent signals) to get a psychology-grounded targeting profile for that prospect.
| Argument | Type | Description |
|---|---|---|
| domain | string | Campaign domain context (e.g. "B2B", "ecommerce", "health", "financial"). |
| campaign_objective | string | Campaign goal (e.g. "awareness", "conversion", "retention", "cold_outreach"). |
| audience_description* | string | Free-text description of the target audience (10-2000 chars). Include role, industry, behaviors, pain points, recent signals. |
{
"type": "object",
"required": [
"audience_description"
],
"properties": {
"domain": {
"type": "string",
"default": "business",
"description": "Campaign domain context (e.g. \"B2B\", \"ecommerce\", \"health\", \"financial\")."
},
"campaign_objective": {
"type": "string",
"default": "conversion",
"description": "Campaign goal (e.g. \"awareness\", \"conversion\", \"retention\",\n\"cold_outreach\")."
},
"audience_description": {
"type": "string",
"description": "Free-text description of the target audience (10-2000 chars).\nInclude role, industry, behaviors, pain points, recent signals."
}
},
"additionalProperties": false
}Have a conversation with the COS analysis agent. The agent can help you: - Analyze content interactively - Get recommendations for improvement - Understand framework scores - Configure analysis settings
| Argument | Type | Description |
|---|---|---|
| message* | string | Your message to the COS agent |
| conversation_id | any | Optional ID to continue an existing conversation |
{
"type": "object",
"required": [
"message"
],
"properties": {
"message": {
"type": "string",
"description": "Your message to the COS agent"
},
"conversation_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional ID to continue an existing conversation"
}
},
"additionalProperties": false
}Execute a specific template with provided variables. Templates guide the analysis with pre-defined prompts and variable placeholders. First use get_templates to find available templates and their required variables.
| Argument | Type | Description |
|---|---|---|
| platform | string | Target platform for optimization |
| variables* | object | Dictionary of variable values required by the template |
| template_id* | string | The template ID to execute (from get_templates) |
{
"type": "object",
"required": [
"template_id",
"variables"
],
"properties": {
"platform": {
"enum": [
"twitter",
"linkedin",
"email",
"youtube",
"tiktok",
"instagram",
"facebook",
"medium",
"substack",
"podcast",
"newsletter",
"slack",
"discord",
"general"
],
"type": "string",
"default": "general",
"description": "Target platform for optimization"
},
"variables": {
"type": "object",
"description": "Dictionary of variable values required by the template",
"additionalProperties": true
},
"template_id": {
"type": "string",
"description": "The template ID to execute (from get_templates)"
}
},
"additionalProperties": false
}Get detailed information about a specific template. Returns the template's: - Name and description - Required and optional variables with types - Categories and tags - Scoring dimensions and weights
| Argument | Type | Description |
|---|---|---|
| template_id* | string | The template ID to get details for |
{
"type": "object",
"required": [
"template_id"
],
"properties": {
"template_id": {
"type": "string",
"description": "The template ID to get details for"
}
},
"additionalProperties": false
}List available analysis templates. Templates are pre-configured analysis scenarios for common use cases: - Email outreach optimization - LinkedIn post analysis - Sales pitch review - Content marketing assessment
| Argument | Type | Description |
|---|---|---|
| search | any | Search templates by name or description |
| category | any | Filter by template category (e.g., "email", "social", "sales") |
{
"type": "object",
"properties": {
"search": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Search templates by name or description"
},
"category": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Filter by template category (e.g., \"email\", \"social\", \"sales\")"
}
},
"additionalProperties": false
}Generate or refine a personalized cold email for a CRM prospect. Composite tool: combines audience profiling (OCEAN + Cialdini), optional agent profiling from writing samples, draft generation (if no draft is supplied), and persuasion + platform scoring in a single call. Designed for CRM integrations like Clarify, HubSpot, Salesforce — pass a Person/Account context, get back a draft + scoring. Returns: - audience_profile: OCEAN scores, ELM route, Cialdini principle - agent_profile: prospect's writing style (if samples provided) - draft: generated or echoed email body - draft_was_generated: bool — whether COS generated the draft - persuasion + platform: full scoring breakdowns - rewrites: prioritized rewrite suggestions - one_thing: the single most important next step - cialdini_principle: recommended influence principle
| Argument | Type | Description |
|---|---|---|
| name | any | |
| draft | any | Existing draft to score + refine. If None, a draft is generated. |
| title | any | |
| domain | string | Persuasion domain (default "business"). |
| intent | string | Email intent ("cold_outreach", "follow_up", "reactivation", "warm_intro", "demo_request", "discovery_call", "proposal_recap"). |
| company | any | |
| industry | any | |
Profile an agent's personality from their writing samples. Analyzes 1-10 writing samples (3-5 recommended) to infer the author's Big Five (OCEAN) personality traits, communication style, strengths, blind spots, and persuasion profile. This is the inverse of content analysis — instead of "is this content effective?", it answers "who is this writer based on how they communicate?"
| Argument | Type | Description |
|---|---|---|
| samples* | array | List of writing samples from the agent (min 50 chars each, 3-5 recommended) |
| agent_name | string | Name of the agent being profiled |
{
"type": "object",
"required": [
"samples"
],
"properties": {
"samples": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of writing samples from the agent (min 50 chars each, 3-5 recommended)"
},
"agent_name": {
"type": "string",
"default": "Unknown Agent",
"description": "Name of the agent being profiled"
}
},
"additionalProperties": false
}| recent_signals |
| any |
| List of recent activity/triggers from the CRM (e.g. ["downloaded ROI calculator", "viewed pricing 3x"]). |
| sender_context | any | Who the sender is and what they're pitching. |
| include_scoring | any | Run persuasion + platform scoring on the draft. Default (None): scoring runs ONLY when a draft was supplied (refine path). On the generate path scoring is skipped by default (cuts latency from ~45s to ~10s). Set True to force scoring on a generated draft, or False to suppress scoring even when refining. |
| writing_samples | any | 0-5 prospect writing samples (emails, posts). Each ≥50 chars. Profiled if provided. |
| audience_description* | string | REQUIRED. Free-text describing the prospect (role, industry, behaviors, pain points, recent signals). 10-2000 chars. This seeds the audience profile. |
{
"type": "object",
"required": [
"audience_description"
],
"properties": {
"name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null
},
"draft": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Existing draft to score + refine. If None, a draft is generated."
},
"title": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null
},
"domain": {
"type": "string",
"default": "business",
"description": "Persuasion domain (default \"business\")."
},
"intent": {
"enum": [
"cold_outreach",
"follow_up",
"reactivation",
"warm_intro",
"demo_request",
"discovery_call",
"proposal_recap"
],
"type": "string",
"default": "cold_outreach",
"description": "Email intent (\"cold_outreach\", \"follow_up\", \"reactivation\",\n\"warm_intro\", \"demo_request\", \"discovery_call\", \"proposal_recap\")."
},
"company": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null
},
"industry": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null
},
"recent_signals": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string"
}
},
{
"type": "null"
}
],
"default": null,
"description": "List of recent activity/triggers from the CRM\n(e.g. [\"downloaded ROI calculator\", \"viewed pricing 3x\"])."
},
"sender_context": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Who the sender is and what they're pitching."
},
"include_scoring": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "Run persuasion + platform scoring on the draft.\nDefault (None): scoring runs ONLY when a draft was supplied (refine path).\nOn the generate path scoring is skipped by default (cuts latency from\n~45s to ~10s). Set True to force scoring on a generated draft, or\nFalse to suppress scoring even when refining."
},
"writing_samples": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string"
}
},
{
"type": "null"
}
],
"default": null,
"description": "0-5 prospect writing samples (emails, posts).\nEach ≥50 chars. Profiled if provided."
},
"audience_description": {
"type": "string",
"description": "REQUIRED. Free-text describing the prospect\n(role, industry, behaviors, pain points, recent signals).\n10-2000 chars. This seeds the audience profile."
}
},
"additionalProperties": false
}