MCP Server

COS Monitor

io.github.internexio/cos-monitor

What this MCP does

Scores and improves marketing and sales communications using messaging, audience, persuasion, quality, and platform-specific analyses.

analyze_content
Analyze Content
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
Input schema
{'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': None, 'description': 'Description of intended audience (improves relevance scoring)'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'additionalProperties': True}
analyze_framework
Analyze Framework
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
Input schema
{'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': None, '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': None, 'description': 'Description of intended audience'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'additionalProperties': True}
analyze_full_comms
Analyze Full Comms
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.
Input schema
{'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': None, 'description': 'Description of intended audience'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'additionalProperties': True}
analyze_persuasion
Analyze Persuasion
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
Input schema
{'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': None, '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': None, 'description': 'Description of intended audience'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'additionalProperties': True}
analyze_platform
Analyze Platform
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
Input schema
{'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': None, 'description': 'Description of intended audience'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'additionalProperties': True}
analyze_quality
Analyze Quality
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?
Input schema
{'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': None, 'description': 'Description of intended audience'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'additionalProperties': True}
audience_profile
Audience Profile
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.
Input schema
{'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}
Output schema
{'type': 'object', 'additionalProperties': True}
chat
Chat
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
Input schema
{'type': 'object', 'required': ['message'], 'properties': {'message': {'type': 'string', 'description': 'Your message to the COS agent'}, 'conversation_id': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Optional ID to continue an existing conversation'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'additionalProperties': True}
execute_template
Execute Template
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.
Input schema
{'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}
Output schema
{'type': 'object', 'additionalProperties': True}
get_template_details
Get Template Details
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
Input schema
{'type': 'object', 'required': ['template_id'], 'properties': {'template_id': {'type': 'string', 'description': 'The template ID to get details for'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'additionalProperties': True}
get_templates
Get Templates
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
Input schema
{'type': 'object', 'properties': {'search': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Search templates by name or description'}, 'category': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Filter by template category (e.g., "email", "social", "sales")'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'additionalProperties': True}
optimize_email_for_prospect
Optimize Email For Prospect
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
Input schema
{'type': 'object', 'required': ['audience_description'], 'properties': {'name': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}, 'draft': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Existing draft to score + refine. If None, a draft is generated.'}, 'title': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}, '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': None}, 'industry': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}, 'recent_signals': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'default': None, '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': None, 'description': "Who the sender is and what they're pitching."}, 'include_scoring': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'default': None, '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': None, 'description': '0-5 prospect writing samples (emails, posts).\nEach â\x89¥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}
Output schema
{'type': 'object', 'additionalProperties': True}
profile_agent
Profile Agent
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?"
Input schema
{'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}
Output schema
{'type': 'object', 'additionalProperties': True}
Added
optimize_email_for_prospect
Sept. 17, 2026, 12:42 p.m.
Added
audience_profile
Sept. 17, 2026, 12:42 p.m.
Added
profile_agent
Sept. 17, 2026, 12:42 p.m.
Added
analyze_full_comms
Sept. 17, 2026, 12:42 p.m.
Added
analyze_quality
Sept. 17, 2026, 12:42 p.m.
Added
analyze_platform
Sept. 17, 2026, 12:42 p.m.
Added
analyze_persuasion
Sept. 17, 2026, 12:42 p.m.
Added
get_template_details
Sept. 17, 2026, 12:42 p.m.
Added
chat
Sept. 17, 2026, 12:42 p.m.
Added
execute_template
Sept. 17, 2026, 12:42 p.m.
Added
get_templates
Sept. 17, 2026, 12:42 p.m.
Added
analyze_framework
Sept. 17, 2026, 12:42 p.m.
Added
analyze_content
Sept. 17, 2026, 12:42 p.m.