{
  "$schema": "https://modelcontextprotocol.io/schemas/server-card.json",
  "name": "heycmo",
  "displayName": "HeyCMO",
  "description": "HeyCMO MCP server — 70+ tools wrapping the marketing-team agents (Sam, Riley, Avery, Mia, Jordan, Ronan, Sage, Drew, Phoenix, Quinn).",
  "version": "1.0.0",
  "vendor": {
    "name": "HeyCMO",
    "url": "https://heycmo.ai",
    "contactEmail": "hello@heycmo.ai"
  },
  "serverUrl": "https://heycmo.ai/mcp/sse",
  "transport": "sse",
  "alternateTransports": [
    {
      "transport": "http",
      "url": "https://heycmo.ai/mcp/message"
    }
  ],
  "authentication": {
    "type": "query",
    "param": "token",
    "format": "hcmo_live_*",
    "obtainUrl": "https://heycmo.ai/signin",
    "documentation": "https://docs.heycmo.ai/docs/api/authentication"
  },
  "documentation": "https://docs.heycmo.ai/docs/api/endpoints#mcp",
  "rateLimits": {
    "requestsPerMinute": 30,
    "scope": "per_customer"
  },
  "tools": [
    {
      "name": "run_research",
      "description": "Run the daily research pipeline — keywords, competitors, trends, prioritized ideas. Emits real-time progress notifications."
    },
    {
      "name": "research_progress",
      "description": "Get the current progress of a research-pipeline run by runId."
    },
    {
      "name": "run_content_creation",
      "description": "Create content from research-pipeline ideas; suspends for human approval before publishing."
    },
    {
      "name": "resume_workflow",
      "description": "Resume a suspended workflow run (typically after human approval)."
    },
    {
      "name": "resume_research",
      "description": "Resume a suspended research pipeline run."
    },
    {
      "name": "run_engagement_check",
      "description": "Check and respond to comments / DMs across connected social platforms."
    },
    {
      "name": "run_analytics",
      "description": "Trigger an analytics report for the customer for a given period."
    },
    {
      "name": "run_optimization",
      "description": "Run the weekly self-optimization loop."
    },
    {
      "name": "run_launch_plan",
      "description": "Generate a launch plan for a product or campaign."
    },
    {
      "name": "run_product_content",
      "description": "Generate content from a product URL or product spec."
    },
    {
      "name": "ask_cmo",
      "description": "Ask the CMO agent (Sam) a strategic marketing question."
    },
    {
      "name": "generate_carousel",
      "description": "Generate a multi-slide carousel image with consistent brand voice and design."
    },
    {
      "name": "generate_reel",
      "description": "Generate a vertical-video reel (script + scene plan) for Reels / TikTok / YouTube Shorts."
    },
    {
      "name": "generate_image",
      "description": "Generate a single AI image from a prompt with brand-aware styling."
    },
    {
      "name": "compose_image",
      "description": "Compose multiple layers (background, product, text, overlay) into a final image."
    },
    {
      "name": "generate_meme",
      "description": "Generate a meme using a known template plus brand-relevant copy."
    },
    {
      "name": "list_meme_templates",
      "description": "List available meme templates."
    },
    {
      "name": "get_brand_context",
      "description": "Return the customer's saved brand kernel — voice, audience, positioning, palette."
    },
    {
      "name": "get_content_calendar",
      "description": "Return the customer's scheduled and pending content calendar."
    },
    {
      "name": "schedule_content",
      "description": "Schedule a piece of content for publication on a target platform / time."
    },
    {
      "name": "list_pending_approvals",
      "description": "List content pieces awaiting human approval in the queue."
    },
    {
      "name": "list_content",
      "description": "List all content pieces (filterable by status, platform, date)."
    },
    {
      "name": "find_recyclable_content",
      "description": "Find evergreen pieces eligible for republishing."
    },
    {
      "name": "recycle_content",
      "description": "Republish an evergreen piece, optionally with platform-specific adaptation."
    },
    {
      "name": "list_workflow_runs",
      "description": "List recent workflow runs (filterable by status, workflow, date)."
    },
    {
      "name": "analyze_brand_url",
      "description": "Analyse a URL to extract brand voice, audience, positioning, and key facts."
    },
    {
      "name": "onboard_from_url",
      "description": "Run the full onboarding flow starting from a URL — extract brand, propose voice, queue for confirmation."
    },
    {
      "name": "voice_lint",
      "description": "Lint marketing copy (hero, CTA, blog body, email subject) for AI-slop, buzzword pile-ups, empty CTAs, and voice violations. Returns issues, score, and Marc Lou heuristic test results. Refuses to ship copy with hard-error rules. Pair with regenerate loops."
    },
    {
      "name": "here",
      "description": "MCP tool here."
    },
    {
      "name": "run_launch_retro",
      "description": "Run a structured post-launch retrospective. Pulls actual performance vs targets per channel, classifies each as flop/miss/on-target/win/unexpected-win, generates hypotheses for misses, and emits a 3-bullet \"do differently next launch\" memo plus a markdown retro doc."
    },
    {
      "name": "discover_influencers",
      "description": "Discover relevant influencers via Exa-backed search across YouTube/X/LinkedIn/IG/TikTok/newsletters/podcasts. Pass niche + audience descriptor + platforms; returns up to 50 candidates with handles, URLs, and relevance score. Pair with score_influencer to rank."
    },
    {
      "name": "score_influencer",
      "description": "Apply the 6-dimension HeyCMO influencer scoring framework (Relevance / Engagement Quality / Authenticity / Reach Efficiency / Recency / Tier Strategic Fit) to a single creator. Returns 0-100 score, A-F grade, tier classification, dimension breakdown, and strengths/concerns."
    },
    {
      "name": "track_influencer_campaign",
      "description": "Aggregate per-creator influencer campaign performance. UTM-tagged CPA + ROAS leaderboard with renew/drop recommendations per creator. Flags zero-conversion creators for tracking-failure investigation."
    },
    {
      "name": "run_attribution_audit",
      "description": "Multi-touch attribution audit. Compares first-touch / last-touch / linear / time-decay / position-based credit allocation side-by-side across all journey touchpoints. Flags channels where models disagree (discovery vs closing). Pure deterministic math, no LLM. Pair with query_ga4 to source journey data."
    },
    {
      "name": "list_lifecycle_flows",
      "description": "List canonical lifecycle email/SMS flow patterns (welcome, onboarding, abandoned-cart, trial-expiring, re-engagement, win-back, churn-save, referral, vip-upgrade, birthday, review-request, post-purchase). Filter by industry (saas/ecommerce/consumer/b2b/all)."
    },
    {
      "name": "get_lifecycle_flow",
      "description": "Retrieve the full template for one lifecycle flow — trigger, exit conditions, segmentation rules, sequence of emails with subject + body skeletons + send timing, success metric, research-backed benchmark."
    },
    {
      "name": "locale_lint",
      "description": "Locale-aware copy linter for 14 locales (ES, PT, FR, DE, IT, NL, JA, ZH, KO, RU, TR, PL, AR, HI). Catches local equivalents of AI-slop and empty CTAs that voice_lint misses (e.g., \"empoderar\" in ES, \"革新的\" in JA, \"颠覆\" in ZH). Run AFTER translate_content. Fix instructions returned in target language."
    },
    {
      "name": "experiment_decide",
      "description": "Statistical decision tool for A/B tests. Frequentist z-test (with Bonferroni correction for multi-arm) + Bayesian beta-binomial posterior + Monte Carlo beats-probability. Returns ship / iterate / stop / extend decision with reasoning. Pure deterministic math — no LLM call."
    },
    {
      "name": "audit_affiliate_links",
      "description": "Audit affiliate links for UTM tracking consistency. Flags missing UTM params, missing/wrong affiliate IDs, parsing errors, and cross-URL duplicates."
    },
    {
      "name": "build_affiliate_leaderboard",
      "description": "Top-N affiliate leaderboard with new/up/down rank changes vs prior period. Includes movers section flagging biggest jumps and drop-outs."
    },
    {
      "name": "reconcile_affiliate_payouts",
      "description": "Reconcile affiliate payouts. Computes earned vs paid vs pending vs owed per affiliate. Flags overpayments + discrepancies. Pure money math."
    },
    {
      "name": "detect_affiliate_fraud",
      "description": "Detect affiliate fraud: self-referrals, IP collision clusters (cookie-stuffing), and high-velocity conversion bursts (bots). Conservative — flags for human review, never auto-suspends."
    },
    {
      "name": "discover_podcasts",
      "description": "Discover podcasts to pitch as a guest. Exa-backed search across Apple/Spotify/Pocketcasts/Overcast/Podchaser. Returns shortlist with show name, host, recent episodes, contact-finding hint."
    },
    {
      "name": "plan_podcast_clips",
      "description": "Score and select 5-10 short-form clips from a timestamped podcast transcript. Heuristic ranking on stats / contrarian takes / personal stories / quotable phrasing. Returns clip start/end times, suggested platforms, and caption skeletons."
    },
    {
      "name": "analyze_podcast_attribution",
      "description": "Estimate podcast appearance attribution. Correlates site-traffic spikes + branded-search lift + unique-slug visits across the post-release window. Returns conservative attribution estimate with confidence (high/medium/low) — does not claim attribution it cannot prove."
    },
    {
      "name": "score_lead_fit",
      "description": "Score a B2B lead's ICP fit (0-100). Combines firmographic match (industry/size/geo/tech-stack/funding) + persona match (seniority/decision-maker) + engagement signals (pricing visit, asset download, email score, demo booking). Subtracts negative signals (competitor / student / opted-out). Returns score, A-F grade, dimension breakdown, reasons."
    },
    {
      "name": "promote_to_sql",
      "description": "Decide whether to promote a lead from MQL to SQL (sales qualified). Combines fit_score with BANT signals (Budget / Authority / Need / Timeline). Returns promote / hold / needs-info decision with handoff packet (lead summary, talking points, suggested talk track, recent touches, qualifying questions for missing data)."
    },
    {
      "name": "cro_audit",
      "description": "Run a conversion-rate-optimisation audit on a URL; returns ranked experiment ideas."
    },
    {
      "name": "track_experiment",
      "description": "Record an experiment definition + hypothesis + start state for later evaluation."
    },
    {
      "name": "generate_sales_content",
      "description": "Generate sales-enablement assets (decks, one-pagers, proposals)."
    },
    {
      "name": "generate_lead_magnet",
      "description": "Generate a lead magnet (ebook outline, checklist, ROI calculator) tied to a target ICP."
    },
    {
      "name": "log_lead",
      "description": "Log a new lead into the customer's CRM with intent + fit scores."
    },
    {
      "name": "search_lead_intel",
      "description": "Search for intelligence about a lead (company facts, recent news, signals)."
    },
    {
      "name": "generate_schema_markup",
      "description": "Generate JSON-LD schema markup for a page (Organization, Product, FAQ, etc.)."
    },
    {
      "name": "ai_seo_audit",
      "description": "Run an AI-search-readiness audit on a URL; returns prioritised checklist."
    },
    {
      "name": "generate_llms_txt",
      "description": "Generate a high-quality llms.txt file for a URL based on its content."
    },
    {
      "name": "check_ai_visibility",
      "description": "Check whether a brand or page appears in ChatGPT / Perplexity / Gemini / AI Overviews for given queries."
    },
    {
      "name": "publish_to_social",
      "description": "Publish or schedule a post to a connected social platform (X, LinkedIn, IG, FB, TikTok, Pinterest)."
    },
    {
      "name": "social_connections",
      "description": "List the customer's connected social platforms and their auth status."
    },
    {
      "name": "social_post_analytics",
      "description": "Fetch analytics for a published social post (impressions, engagement, clicks)."
    },
    {
      "name": "research_competitor",
      "description": "Run a deep-research pass on a named competitor."
    },
    {
      "name": "analyze_competitor",
      "description": "Analyse a competitor URL (positioning, content cadence, keywords, social)."
    },
    {
      "name": "analyze_competitor_pricing",
      "description": "Resolve a competitor name or domain to its homepage and pricing page; extract pricing tiers, positioning, and battle-card bullets. Useful when you only have the brand name."
    },
    {
      "name": "track_competitor_changes",
      "description": "Track a competitor URL for changes over time; alerts on diff."
    },
    {
      "name": "process_podcast",
      "description": "Process a podcast episode — transcript, key quotes, derived posts."
    },
    {
      "name": "scrape_product_url",
      "description": "Extract product details (name, description, price, features) from a product URL."
    },
    {
      "name": "query_ga4",
      "description": "Query Google Analytics 4 for a metric over a date range."
    },
    {
      "name": "track_revenue",
      "description": "Record or query revenue events tied to attribution."
    },
    {
      "name": "translate_content",
      "description": "Translate a piece of content into a target language with brand-aware tone preservation."
    },
    {
      "name": "detect_language",
      "description": "Detect the language of a text snippet."
    },
    {
      "name": "check_budget",
      "description": "Check whether a planned spend fits within the customer's configured budget caps."
    },
    {
      "name": "get_budget_status",
      "description": "Get current spend vs cap for daily / weekly / monthly windows."
    },
    {
      "name": "record_spend",
      "description": "Record an actual spend amount against a category."
    },
    {
      "name": "get_autonomy_levels",
      "description": "Get the per-skill autonomy level configuration (L1–L5)."
    },
    {
      "name": "set_autonomy_level",
      "description": "Set the autonomy level for a skill, category, or globally."
    },
    {
      "name": "list_installed_skills",
      "description": "List the dynamic skills currently installed for the customer."
    },
    {
      "name": "get_skill_info",
      "description": "Get details on a specific installed skill."
    },
    {
      "name": "execute_skill",
      "description": "Execute an installed skill by id with input."
    },
    {
      "name": "capture_performance_snapshot",
      "description": "Capture a performance snapshot for the daily / weekly self-improvement loop."
    },
    {
      "name": "get_performance_trend",
      "description": "Fetch the performance trend over a window."
    },
    {
      "name": "get_learning_insights",
      "description": "Fetch the system's learned insights from past performance."
    },
    {
      "name": "hashtag_analytics",
      "description": "Fetch hashtag performance analytics for a topic / platform."
    },
    {
      "name": "list_industry_packs",
      "description": "List available industry-specific creative + content packs."
    },
    {
      "name": "get_industry_templates",
      "description": "Get templates for a specific industry pack."
    },
    {
      "name": "plan_video_scenes",
      "description": "Plan a video scene-by-scene (script + visual notes + duration)."
    },
    {
      "name": "generate_video",
      "description": "Generate a video from a scene plan."
    },
    {
      "name": "generate_video_ad",
      "description": "Generate a video ad creative."
    },
    {
      "name": "generate_product_video",
      "description": "Generate a product video (B-roll + voice-over + captions)."
    },
    {
      "name": "generate_avatar_video",
      "description": "Generate an avatar-fronted video (script-to-talking-head)."
    },
    {
      "name": "add_background_music",
      "description": "Add background music to a video."
    },
    {
      "name": "list_music_tracks",
      "description": "List available background music tracks."
    },
    {
      "name": "generate_product_photoshoot",
      "description": "Generate AI product photoshoot images (multiple angles, scenes, styles)."
    }
  ]
}
