Skip to content

MCP Server Reference

Model Context Protocol (MCP) Server

AICMOHQ exposes its full capability catalog over the open Model Context Protocol (MCP), enabling AI coding tools like Codex, Claude Code, Cursor, and Windsurf to trigger marketing actions.

Running over stdio

Add AICMOHQ to your Claude or Codex configuration:

{
"mcpServers": {
"aicmo": {
"command": "npx",
"args": ["-y", "@aicmohq/mcp"]
}
}
}

Available MCP Tools

  • capabilities.list: List supported chatbot, CLI, and MCP capabilities with risk and confirmation metadata.
  • strategy.run: Run the full strategy loop: extract git context and generate ICP-validated drafts into the queue (LinkedIn, X, Reddit).
  • scout.research: Find marketing opportunities based on product and keywords.
  • writer.generate: Draft content from a topic or from recent git commits. Set enqueue=true to put the draft in the queue for LinkedIn/X publish.
  • credits.costs: List the credit cost of each AICMOHQ agent action. Local, read-only; no auth required.
  • connections.list: List connected platforms (check LinkedIn before publishing).
  • queue.list: List content queue items for the authenticated AICMOHQ account.
  • queue.get: Fetch one content queue item by id.
  • queue.delete: Permanently delete a queued draft.
  • queue.update: Update the content of a queued draft.
  • queue.approve: Approve a draft queue item so it can be published.
  • queue.publish: Publish an approved queue item (requires platform connection, e.g. LinkedIn).
  • queue.reject: Reject a draft so it will not publish.
  • queue.best_time: Suggest the best publish time for a platform — the workspace’s measured engagement history when available, else the platform’s researched golden-hour window. Advisory only; scheduling still goes through queue_schedule.
  • queue.schedule: Schedule an approved queue item for cron publish (ISO timestamp).
  • queue.proof: Save a live post URL for Hacker News or Product Hunt (no API). Then call queue_publish to mark the item published.
  • reddit.status: Inspect the connected Reddit account’s conservative warm-up stage and engagement limits.
  • reddit.warmup: Use the connected Reddit OAuth account to find value-first threads. Saves opportunities only; never comments or publishes.
  • command.chat: Send a natural-language mission to AICMOHQ Agent. Persists session memory and returns a proposed plan (approval-first; does not publish). When the response includes a plan, executionPolicy tells you the next step: call command_run with message.id to execute (auto=true only when auto_run_eligible), or command_status with runId to inspect a running one.
  • command.sessions: List recent AICMOHQ Agent chat sessions (shared memory with dashboard + CLI).
  • command.run: Execute a proposed command plan by assistant message id. Rejects auto=true when approval is required. Streams NDJSON progress.
  • command.status: Inspect a durable command run and its approval-gated steps.
  • command.approve_step: Approve one bound CMO step so execution resumes (expires in 15 minutes).
  • workspace.context: Read the workspace strategy context (product, ICPs, positioning, brand voice) agents ground drafts on.
  • workspace.get: Read the raw workspace record (company profile, positioning, ICPs) the agents ground on.
  • products.list: List the products in the workspace. Most agent work needs a product_id from here first.
  • products.create: Add a product to the workspace so scans and drafts can be scoped to it.
  • products.update: Update a product’s name, tagline, description, or url.
  • products.archive: Delete a product. Its past artifacts stay, but new work can no longer target it.
  • artifacts.list: List agent artifacts (research briefs, drafts, reports) produced for this workspace.
  • listening.list: List captured listening mentions — places the product or its category was discussed.
  • listening.scan: Run a listening scan for new mentions of the product. Costs credits.
  • signals.scan: Search external sources for demand signals matching a query.
  • trends.list: Read trending topics for the day or week to ground timely content.
  • opportunities.list: List scored growth opportunities derived from listening and signals.
  • opportunities.draft: Draft content for an opportunity. Costs credits; the draft still needs human approval to publish.
  • opportunities.queue: Move an opportunity’s draft into the content queue as a pending item.
  • geo.status: Read current GEO (AI-citation) status: which AI answers mention the product.
  • geo.scan: Run a GEO scan to check whether AI assistants cite the product. Costs credits.
  • geo.checklist: Read the GEO readiness checklist (signal, status) plus which sources already cite the product.
  • geo.competitors: List competitor citation share and latest GEO visibility data.
  • geo.uncited: List high-value GEO queries where the product is not cited.
  • echo.mentions: List tracked brand and competitor mentions.
  • echo.scan: Scan tracked sources for brand and competitor mentions.
  • voice.get: Read canonical workspace brand voice.
  • voice.set: Update canonical workspace brand voice with optimistic revision control.
  • audience.import: Import subscribers from CSV with a required consent source.
  • recommendations.list: List the CMO’s current recommendations for the workspace.
  • recommendations.generate: Regenerate the recommendation set from the latest workspace data.
  • recommendations.decide: Accept or dismiss one recommendation. Accepting is what changes prioritization.
  • campaigns.list: List campaigns (multi-step marketing graphs) in the workspace.
  • campaigns.create: Create a campaign. Pass a node/edge graph to define its steps, or omit it for an empty draft.
  • campaigns.get: Read one campaign including its full step graph.
  • campaigns.update: Update a campaign’s name, status (draft/active/archived), or step graph.
  • campaigns.archive: Delete a campaign.
  • workflows.start: Start a background workflow (e.g. reddit_scan, hn_scan, content drafts) for a product. Costs credits.
  • workflows.execute: Execute a named workflow synchronously with a small input map. Costs credits.
  • workflows.status: Read a running workflow’s status and step results.
  • tasks.list: List agent tasks, optionally filtered by status or agent.
  • tasks.create: Queue a task for one of the agents (scout, writer, publisher, engage, analyst).
  • tasks.get: Read one task with its input, result, and error.
  • tasks.update: Update a task’s status, result, or error.
  • tasks.approve: Approve a task that is waiting for a human decision. Never approve your own work.
  • tasks.execute: Run an approved task now instead of waiting for the scheduler.
  • approvals.list: List items waiting for a human approval decision.
  • approvals.approve: Record a human approval, which releases the item to publish. Agents must not call this on their own drafts.
  • approvals.reject: Reject a pending approval so the item is never published.
  • launch.prepare: Prepare launch assets (Product Hunt / Hacker News copy) for a product. Submission stays human-assisted.
  • listings.list: List directory launch listings (Product Hunt, Hacker News, directories) tracked for the workspace.
  • listings.create: Track a new directory launch listing. Records intent only; submission stays human-assisted.
  • listings.update: Update a tracked launch listing (status, URL, notes).
  • listings.archive: Remove a tracked launch listing.
  • prospects.scan: Scan for prospects matching the workspace ICP. Costs credits.
  • inbox.list: List inbox conversations with prospects across email and DMs.
  • inbox.get: Read one contact’s full inbox thread.
  • outreach.draft: Draft an outreach message to a contact and queue it for human approval. Nothing is sent — approve and publish the queued item to actually deliver it.
  • crm.sync: Push a contact to the connected HubSpot CRM. Writes to an external system, so it needs approval.
  • analytics.overview: Read aggregate performance over the last N days: totals per metric, per platform, and queue status.
  • analytics.attribution: Read attribution: which content and channels drove signups.
  • analytics.pagespeed: Run a PageSpeed check on a public url and return its performance scores.
  • analytics.report: Read the rolled-up performance report for the last N days (default 7).
  • feed.list: Read the agent activity feed — what the agents did and what needs attention.
  • feed.update: Mark one feed item as read or acted on.
  • ga4.pull: Pull the latest metrics from the connected GA4 property.
  • github.repos: List repos visible through the connected GitHub account, for shipping-log content.
  • connections.health: Check each connected platform’s token health before trying to publish.
  • agent_mode.get: Read the publishing mode (approve or autonomous) plus any per-agent overrides.
  • agent_mode.set: Change the publishing mode. Switching to autonomous removes the human approval gate, so it needs a human.
  • billing.status: Read the active plan, credit balance, and renewal date.
  • me.get: Read the authenticated identity: user id, token type, and granted scopes.
  • audience.list: List the email marketing audience for the workspace, with status and segment filters.
  • audience.create: Add one subscriber to the email audience. A consent source is recorded for compliance (defaults to manual).
  • brief.get: Read the most recent stored daily brief: yesterday’s shipped items, engagement, pending actions, and alerts.
  • creative.plan: Derive a launch-video brief and storyboard. Creates an approval; does not render or publish.
  • creative.render: Start rendering an approved storyboard. Heavy work runs on the media worker.
  • creative.status: Read a creative run, its stages, and signed preview URLs.
  • creative.review: Read the storyboard awaiting approval for a run.
  • creative.assets: List signed output assets for a completed creative run.
  • creative.cancel: Cancel a creative run and refund unstarted stages.
  • creative.queue: Create content_queue drafts from a completed creative run. Does not publish.
  • creative.models: List the active Creative Studio generation models with their credit cost per billing unit.
  • creative.generate: Generate a Creative Studio image or video. Debits credits and drafts the result into the content queue for approval; never publishes.
  • creative.gallery: List Creative Studio generation jobs with signed output URLs, newest first.
  • creative.job: Read one Creative Studio generation job and its signed output URL.
  • creative.abort: Abort an in-flight Creative Studio generation job; credits are refunded when the provider had not yet spent them.
  • creative.revise: Open a new storyboard revision that supersedes a previous run. Does not render or publish.
  • adlib.search: Collect competitor ads from the public ad libraries (Meta/Google/LinkedIn/TikTok/X) for a query, persist them, and return the scored page. Costs ad_library_scan credits; a live scan can take 15-40s.
  • adlib.browse: Browse ads already stored in the workspace’s ad library. Tiers are high_conf | winner | emerging | loser (not the winner_engine vocabulary).
  • adlib.get_ad: Read one stored ad by its ad_id.
  • adlib.saved: List saved ads with per-board counts.
  • adlib.save_ad: Save an ad to a swipe-file board (default board when omitted).
  • adlib.unsave_ad: Remove an ad from a board (default board when omitted).
  • adlib.alerts: Competitor ads seen for the first time — the launch-alert feed.
  • adlib.ack_alerts: Mark launch alerts read. Omit ad_ids to acknowledge everything unread.
  • adlib.competitors: List the competitor watchlist merged with advertisers already seen in the library.
  • adlib.track_competitor: Add a competitor name to the watchlist (idempotent).
  • adlib.untrack_competitor: Remove a competitor from the watchlist.
  • adlib.sync_competitor: Track a competitor and refresh-pull its live ads now. Costs ad_library_scan credits; new ads raise alerts.
  • adlib.clone: Remix an ad’s hook into 3 deterministic variants for your own creatives.
  • ads.launch: Plan (dry_run=true, default) or execute an ad launch. Execution is policy-gated: winner score >= 60 creates a paused campaign draft, below that it lands pending_approval for human sign-off — nothing ever goes live directly.
  • ads.launches: List launched/paused/pending ad campaigns in the workspace.
  • ads.get: Read one ad launch by id.
  • ads.manage: Manage one launch: action approve|activate|pause|archive (approve pending_approval -> paused; activate paused -> active; pause active -> paused; archive any -> archived) and/or set daily_budget.
  • ads.performance: Performance for one launch: spend, impressions, clicks, conversions, CTR, CPA, ROAS. synced:false + zeros until a platform metrics sync has written data.
  • autopilot.status: Autopilot rollup: active loops, cycles run, pending proposals, learnings this week, plus every loop’s last-run state.
  • autopilot.learnings: The readable learning files the loops append to each run — winner/miss/audit/digest lessons per channel with the rows that earned them.
  • autopilot.run: Run one autopilot cycle now (or the weekly audit with loop=audit). Deterministic — grades signals, writes learnings, proposes actions. No credits; proposals still need approval.
  • autopilot.actions: List autopilot proposals — pending ones awaiting a decision, or applied/dismissed history.
  • autopilot.decide: Decide one autopilot proposal: apply executes it (scale budget / pause launch / pause loop), dismiss closes it without side effects.
  • advocacy.list: Advocate leaderboard: repeat positive engagers scored on reach(momentum), loyalty, content and amplification, tiered micro_influencer/loyal_customer/ugc_creator/advocate.
  • advocacy.outreach: Ready-to-send DM template for one advocate, worded per tier (micro-influencer affiliate offer, loyal-customer early access, UGC feature request).
  • advocacy.set_status: Mark an advocate contacted / partner / dismissed once you’ve reached out.
  • sentiment.series: Daily per-platform sentiment rollup (positive/neutral/negative %) plus live anomalies vs the 7-day baseline — the crisis early-warning feed.

Discovery Endpoint

The MCP server manifest is also hosted publicly at https://aicmohq.com/mcp.json.