Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

AfterLaunch: the agentic growth marketing engine

REMOTE · AFTERLAUNCH.IO · SCANNED SEP 20

Growth marketing, SEO and GEO as agent tools: ranked moves, ship them, AI answer visibility.

Available components

0 this week 90 Trust /100
Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →

Endpoint Security97
Transport & Reachability100
Schema Quality & AI Usability71
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 7834 tokens (~139/item across 56 items; 56 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management96
  • Stability check failed: schema churn in the 30 days we've observed: 1 tool removals, 1 breaking changes, 0 auth/transport breaks, 15 additions. See how to fix → Fail
Tool Coverage90
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 69% of tool parameters carry a description.Partial
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • All 1 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
  • An AI judge read all 57 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities40
  • Spec-recency check failed: implements MCP spec 2025-03-26; the latest is 2026-07-28. See how to fix → Fail
Install

How do I install the AfterLaunch: the agentic growth marketing engine MCP server?

AfterLaunch: the agentic growth marketing engine is a hosted endpoint at https://afterlaunch.io/api/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

remote · afterlaunch.io

# add to Claude Code
claude mcp add --transport http io-afterlaunch-agentic-growth-marketing 'https://afterlaunch.io/api/mcp'
// .cursor/mcp.json
{
  "mcpServers": {
    "io-afterlaunch-agentic-growth-marketing": {
      "url": "https://afterlaunch.io/api/mcp"
    }
  }
}
// .vscode/mcp.json
{
  "servers": {
    "io-afterlaunch-agentic-growth-marketing": {
      "type": "http",
      "url": "https://afterlaunch.io/api/mcp"
    }
  }
}
# ~/.codex/config.toml
[mcp_servers.io-afterlaunch-agentic-growth-marketing]
url = "https://afterlaunch.io/api/mcp"
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "io-afterlaunch-agentic-growth-marketing": {
      "type": "remote",
      "url": "https://afterlaunch.io/api/mcp",
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add io-afterlaunch-agentic-growth-marketing --url 'https://afterlaunch.io/api/mcp' --transport streamable-http
# ~/.hermes/config.yaml
mcp_servers:
  io-afterlaunch-agentic-growth-marketing:
    url: "https://afterlaunch.io/api/mcp"
// ~/.netclaw/config/netclaw.json
{
  "McpServers": {
    "io-afterlaunch-agentic-growth-marketing": {
      "Transport": "http",
      "Url": "https://afterlaunch.io/api/mcp"
    }
  }
}
# add to Vellum
assistant mcp add io-afterlaunch-agentic-growth-marketing -t streamable-http -u 'https://afterlaunch.io/api/mcp'
// mcp.json
{
  "mcpServers": {
    "io-afterlaunch-agentic-growth-marketing": {
      "type": "http",
      "url": "https://afterlaunch.io/api/mcp"
    }
  }
}

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 19 Sept 26 0
    • Tool “get_business_context” rewrote its description, which is the text the model reads security
  • 16 Sept 26 0
    • Tool “record_content” rewrote its description, which is the text the model reads security
    • New tool “get_experiments” functional
  • 13 Sept 26 0
    • “accept_move” reworded the description of “expected_legacy_state” cosmetic
    • “review_move” reworded the description of “expected_legacy_state” cosmetic
    • “ship_move” reworded the description of “expected_legacy_state” cosmetic

    3 cosmetic changes on this day. Switch on “Show cosmetic changes” to see them.

  • 12 Sept 26 0
    • Tool “get_move” rewrote its description, which is the text the model reads security
    • Tool “record_content” rewrote its description, which is the text the model reads security
    • “record_content” added an optional parameter “adopt_legacy” cosmetic
    • “record_content” added an optional parameter “expected_updated_at” cosmetic
    • “record_content” added an optional parameter “research” cosmetic
  • 11 Sept 26 −1
    • Tool coverage: 77% → 70% functional
    • New tool “get_content_calendar” functional
    • New tool “record_content” functional
    • “redraft_output” added an optional parameter “draft_fence” cosmetic
    • “update_draft” added an optional parameter “draft_fence” cosmetic
  • 10 Sept 26 0
    • Tool “get_output” rewrote its description, which is the text the model reads security
  • 9 Sept 26 −1
    • Stability: pass → fail security
    • A breaking change shipped without a version bump: still 1.0.0 security
    • The server rewrote its instructions, which are the text every model session reads security
    • Tool “get_move” rewrote its description, which is the text the model reads security
    • Tool “list_queue” rewrote its description, which is the text the model reads security
    • Tool “pick_up_job” rewrote its description, which is the text the model reads security
    • Tool “report_job” rewrote its description, which is the text the model reads security
    • Tool “ship_move” rewrote its description, which is the text the model reads security
    • Tool coverage: 96% → 77% functional
    • “pick_up_job” added a required parameter “attempt_id”, so existing callers break functional
    • “report_job” added a required parameter “attempt_id”, so existing callers break functional
    • “ship_move” added a required parameter “attempt_id”, so existing callers break functional
    • “ship_move” added a required parameter “completion_kind”, so existing callers break functional
    • “ship_move” added a required parameter “founder_confirmed”, so existing callers break functional
    • “ship_move” added a required parameter “job_id”, so existing callers break functional
    • New tool “accept_move” functional
    • New tool “review_move” functional
    • “report_job” added an optional parameter “prepared_content” cosmetic
    • “ship_move” added an optional parameter “expected_legacy_state” cosmetic
    • “ship_move” added an optional parameter “expected_legacy_updated_at” cosmetic
    • “ship_move” added an optional parameter “expected_move_state” cosmetic
    • “ship_move” added an optional parameter “expected_move_updated_at” cosmetic
    • “ship_move” added an optional parameter “note” cosmetic
    • “ship_move” added an optional parameter “published_url” cosmetic
    • “report_job” reworded the description of “asset_url” cosmetic
    • “ship_move” dropped the optional parameter “asset_url” cosmetic
  • 7 Sept 26 0
    • The server rewrote its instructions, which are the text every model session reads security
    • Tool “get_move” rewrote its description, which is the text the model reads security
    • Tool “list_feed” rewrote its description, which is the text the model reads security
    • “list_feed” reworded the description of “verbosity” cosmetic
Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 20 Sept 2026 · Probed https://afterlaunch.io/api/mcp

TLS valid

Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .

Subject Issuer Valid from Valid until Key Signature Serial
CN=afterlaunch.io CN=YE1,O=Let's Encrypt,C=US 16 Sept 2026 15 Dec 2026 ECDSA 256 ECDSA-SHA384 6bca2c8bf02047fd49a536f12b2873c6753
SANs: *.afterlaunch.io, afterlaunch.io
CN=YE1,O=Let's Encrypt,C=US (CA) CN=Root YE,O=ISRG,C=US 3 Sept 2025 2 Sept 2028 ECDSA 384 ECDSA-SHA384 5ddd70dd31f801c85c186a7a04b80afe
CN=Root YE,O=ISRG,C=US (CA) CN=ISRG Root X2,O=Internet Security Research Group,C=US 13 May 2026 2 Sept 2032 ECDSA 384 ECDSA-SHA384 872165fc34b6e5fba8add5b3705fb53a
CN=ISRG Root X2,O=Internet Security Research Group,C=US (CA) CN=ISRG Root X1,O=Internet Security Research Group,C=US 13 May 2026 2 Sept 2032 ECDSA 384 SHA256-RSA 6c8f1dc727c7117f7baf853ac980f9cd

Background: What to check on a remote MCP endpoint →

DNSSEC insecure

Validation of afterlaunch.io. Not signed

Zone DS Keys Algorithms Outcome
. trust_anchor 20326, 38696 8, 8 Verified
io. present 57355 8 Verified
afterlaunch.io. absent Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation
Authentication Enforced and verified

The endpoint asked for a token and published valid RFC 9728 metadata describing how to get one.

Result Enforced and verified
Enforced On tool calls
HTTP status 200

WWW-Authenticate challenge Bearer resource_metadata="https://afterlaunch.io/.well-known/oauth-protected-resource/api/mcp", scope="read act write"

Bearer resource_metadata="https://afterlaunch.io/.well-known/oauth-protected-resource/api/mcp", scope="read act write"
Header Value
strict-transport-security max-age=31536000; includeSubDomains
x-content-type-options nosniff
x-frame-options DENY
referrer-policy strict-origin-when-cross-origin
permissions-policy camera=(), microphone=(), geolocation=(), interest-cohort=()

Protected resource metadata

Document https://afterlaunch.io/.well-known/oauth-protected-resource/api/mcp
Retrieved Yes
Resource https://afterlaunch.io/api/mcp
Authorisation server https://afterlaunch.io

Background: How OAuth 2.1 works in the 2026 MCP spec →

Transports 2 probes
Transport URL Outcome Status Location
streamable-http https://afterlaunch.io/api/mcp Verified 200
http (plaintext) http://afterlaunch.io/api/mcp HTTPS enforced 301 https://afterlaunch.io/api/mcp
MCP tools · 56 exposed · ~7,111 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
accept_move ~168

Accept a move only after the founder says yes. This records one durable preparation attempt and may start the configured worker only when launch_won is true. A repeat never starts another worker. Free; requires the 'act' scope.

NameTypeReqDescription
expected_attempt_idstring|nullRequired for retry. Pass the exact managed attempt, or null for a legacy job.
expected_legacy_statestring|nullget_move: prepared_result.legacy_state ?? state.
expected_legacy_updated_atstring|null
move_idstringyesMove id (uuid).
notestring|null
operationstringDefaults to accept. Retry requires expected_attempt_id; use null only with the exact legacy state and updated_at.
targetstringyes

No output schema declared.

No examples provided.

archive_move ~60

Archive a growth move: a lighter dismissal than skip, with no verdict recorded. Free; requires the 'act' scope. Idempotent on an already-archived move.

NameTypeReqDescription
move_idstringyesMove id (uuid), from list_feed.

No output schema declared.

No examples provided.

create_checkout ~84

Create a Founder-tier checkout link for THIS product run, the way to unlock the Founder-only growth controls and more metered marketing work. Returns a checkout_url the founder opens to pay; the upgrade lands automatically once payment succeeds. Reachable on a free trial because it is the path TO Founder. Requires the 'act' scope, and it is always bound to your own enrollment.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

create_topup ~117

Create a credit top-up checkout link for THIS product run, to refill the credits that pay for metered growth marketing work. Pass pack_id: small, medium or large. Returns a checkout_url the founder opens to pay; the credits land automatically once payment succeeds. Requires the 'act' scope and the Founder plan (on a free trial use create_checkout first). Always bound to your own enrollment.

NameTypeReqDescription
pack_idstringyesThe refill pack size: small, medium or large. The founder sees the price on the checkout page.

No output schema declared.

No examples provided.

disconnect_connection ~95

Disconnect a growth data source or distribution channel and delete the credential stored for it (for Google it is also revoked at Google). Idempotent: disconnecting something that was never connected changes nothing. It narrows what the growth engine can measure and where it can distribute, so confirm with the founder first. Free.

NameTypeReqDescription
providerstringyesWhich connector to disconnect: ga4, gsc, gbp, linkedin or reddit.

No output schema declared.

No examples provided.

dismiss_gap ~197

Set aside one AI visibility (GEO) gap the founder is not going to act on: a tracked question where rivals get named and this product does not. The same verdict as skip_move, on the AI visibility surface, and it resolves the gap in ONE place: it stops being re-proposed here AND on the growth Feed, and the reason improves what gets ranked next. Free; requires the 'act' scope, and available on every plan because telling the agent "not this one" is never a paid feature. Idempotent: a gap already shipped or archived is left as it is.

NameTypeReqDescription
prompt_idstringyesThe tracked question id, from get_visibility.
prompt_textstringyesThe tracked question text, from get_visibility. Both fields are required: together they identify the gap.
reasonstringWhy it is being set aside. Closed vocabulary; unknown keys are ignored by the learning loop.

No output schema declared.

No examples provided.

get_activity ~79

The product timeline: what the growth agent and the founder already did and why (drafts, ships, skips, scans, observations, decisions with their rationale), newest first. Read before acting so you never redo recent work. Read-only, free.

NameTypeReqDescription
limitintegerHow many entries to return (1 to 200, default 50).

No output schema declared.

No examples provided.

get_business_context ~93

Structured business positioning, audience, ICP, pricing, features and competitors, plus growth_strategy: the latest saved stage, bottleneck, bets and non-goals with version, source and date. Read before planning or writing. Strategy is dated judgement, not measured evidence or proof of results; check it against current founder intent. Missing facts or strategy are null. Read-only and free; never generates or revises a strategy.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_claims ~124

The claim library: the measured numbers this founder will stand behind in public, for replies, posts and any marketing writing. Each carries the claim in one sentence, the number with its unit, keywords saying when it is relevant, and a caveat stated against the founder's own interest. READ THIS BEFORE CITING ANY NUMBER about this product, and never quote a claim without its caveat: the caveat is what makes the number safe to say. A claim marked held is NOT for use. An empty library is an answer, not an error. Read-only, free.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_competitors ~75

The competitor roster with the measured stat battery for you and each rival (performance, SEO, Core Web Vitals, authority, G2 and Product Hunt presence, content freshness), plus the founder's own edits. Read before any competitor or outreach work so a rival is never treated as a pitch target. Read-only, free.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_content_calendar ~40

Growth content calendar, source drafts, current Feed state and X production switch. Read-only. Check linkage and calendar_sync; saved words are not publication proof.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_enrollment ~52

The product run summary for this growth engine: product_url, tier, trial_ends_at, timezone, whether autonomous work is active, and delivery settings. Credits once metering is live. Read-only, free.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_experiments ~62

Growth content experiments already run, newest first, with scoped evidence. Read-only; never runs one. Each is an observation, not a rate.

NameTypeReqDescription
experiment_idstring
idea_idstring
limitinteger

No output schema declared.

No examples provided.

get_kb_page ~61

One Memory page by slug, with its full markdown body: the record the growth marketing engine drafts from. Slugs come from list_kb_pages. Read-only, free.

NameTypeReqDescription
slugstringyesThe page slug, from list_kb_pages.

No output schema declared.

No examples provided.

get_loop_status ~82

The automated growth marketing loops provisioned for this product (AI visibility, competitors, channel distribution) with their autonomy level, plus runnable_loop_types, what run_loop accepts. A runnable type only runs once a loop of that type is provisioned and enabled here.

NameTypeReqDescription
loop_typestringOptional loop type, e.g. daily_brief or linkedin_post.

No output schema declared.

No examples provided.

get_move ~102

One growth move: evidence, source material, instructions and prepared_result. linked_article is earlier work to reuse, not a completed revision. Ready means awaiting review, not published. Closed post-trial access withholds bodies without asserting absence. tracked_link_state explains a null link (no_link, unavailable, withheld); null clicks means unreadable. Read-only, free.

NameTypeReqDescription
move_idstringyesMove id (uuid), from list_feed or get_standup.

No output schema declared.

No examples provided.

get_outcomes ~51

What the shipped growth moves earned: tracked-link clicks per move, shipped counters, the weekly movement scoreboard, and whether GA4 and Search Console are connected. Call it after ship_move. Read-only, free.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_output ~52

Read a queue draft by id. SEO linked_article {id,title,content} adds the full Markdown article. redraft_output edits the queue draft only.

NameTypeReqDescription
output_idstringyesThe output id (uuid).

No output schema declared.

No examples provided.

get_scoreboard ~176

Did the growth work move anything? The proof read for a period: AI visibility (GEO) at the START and the END of the window, the moves shipped between them, the scans that ran, and the receipts with what was verified live and the clicks each earned. ALWAYS read like_for_like before reporting a change: true means both scans asked the same tracked questions so the movement is real, false means the question set changed inside the window so it is a new baseline rather than a rise or a fall, and null means it cannot be proven either way. Never present a delta as a result when like_for_like is not true. Read-only, free.

NameTypeReqDescription
window_daysintegerHow many days the scoreboard covers (7 to 90, default 14). Out-of-range values are clamped, never rejected.

No output schema declared.

No examples provided.

get_seo ~97

The site-wide SEO audit: issue groups with severity and affected pages, the weekly score trend, page performance, links and authority, and day-0 search ranks. Read before any SEO work of your own; the Feed seo_fix moves are minted from it. Read-only, free. Pass include_pages for the per-page detail.

NameTypeReqDescription
include_pagesbooleanInclude the per-page audit detail. Default false: the grouped issues only.

No output schema declared.

No examples provided.

get_setup_snippet ~83

The paste-able 'Growth (AfterLaunch)' section for this repository's CLAUDE.md or AGENTS.md: how a coding agent should use AfterLaunch for growth, marketing, SEO, AI visibility (GEO), competitor and distribution work, and which tools cost money. Free, read-only. Show it to the founder and add it with their say-so.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_snapshot ~68

The Growth Snapshot this product run started from: positioning, the discoverability score, the prioritised leverage actions, the competitor set, and the day-0 SEO and AI visibility baselines. The stable business context; for live signal data use get_visibility and get_seo. Read-only, free.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_standup ~125

The daily growth marketing standup in one call: what recently shipped and what AfterLaunch verified about it (receipts), the top ranked moves shippable now (ready; rank is the full-board position, so gaps mean those ranks are not shippable now), what the engine did on its own in the last 7 days (while_you_were_gone; capped at the account's age), and whether the deep scan is still running. Call this at the START of a session, before list_feed, and relay the message field. Read-only, free.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_visibility ~149

The measured AI visibility (GEO) results: how ChatGPT, Gemini, Perplexity and Google AI Overviews answer the tracked buyer questions, plus share of voice, cited sources, competitor-owned gaps, the trend, AI crawlability and the off-site reach fold. Every reading carries its own sample count, and the sampling block says what such a count licenses, so treat a change as indicative unless it says otherwise. Read after refresh_scan and before any AI visibility or GEO work. Read-only, free. Pass prompt_id to drill into one question.

NameTypeReqDescription
prompt_idstringDrill into one tracked question by its id (from the prompts list) for the engine answer text and citations.

No output schema declared.

No examples provided.

get_voice_profile ~125

The structured voice every AfterLaunch growth marketing draft is written in: tone, characteristic phrases, vocabulary, sentence style and what it avoids. register says which you got, and they do not sound alike: brand is the website's voice, personal is the founder's own writing, imported came from a brief. has_profile false means that voice is not extracted yet: an answer, not an error. Read-only, free.

NameTypeReqDescription
registerstringWhich voice to read. Omit for the current one. Use 'personal' for anything the founder posts in their own name.

No output schema declared.

No examples provided.

list_connections ~89

Which growth data sources and distribution channels are connected: GA4 and Search Console (the measurement behind SEO and outcomes), Google Business Profile, and the LinkedIn / Reddit posting channels. Each row carries an honest state: connected, not_connected, or not_available with the reason it is shut on this account. Read before start_connection so you never offer a connection that cannot be made. Read-only, free.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

list_feed ~287

The ranked backlog of growth marketing moves prepared for this product across SEO, AI visibility (GEO), competitors and distribution: title, why, area, status, rank, whether readable full-draft material is waiting (has_draft), and draft_kind (a full draft, a brief to complete, or null). It also carries posture: who may do it, act (you can), draft_only (you draft, a person posts) or founder_voice (the founder only). Read it before improvising growth work of your own. The material BODY is not here: call get_move for the one you are working on. Live moves only unless you pass include_resolved; pass since for what is new while the deep scan fills the board. Read-only.

NameTypeReqDescription
include_resolvedbooleanInclude resolved moves (shipped, skipped, archived, expired) as well as the live ones. Default false.
sincestringISO-8601. Returns only moves first seen after it. Pass the newest first_seen_at you already hold so a move is never returned twice.
verbositystringDefault 'compact': no material bodies, so a long board stays cheap to read; has_draft and draft_kind say whether each move carries an inspectable artefact, an assignment, or nothing readable. Use 'fu…

No output schema declared.

No examples provided.

list_kb_pages ~58

The Memory pages: the shared record the growth marketing engine drafts from (business basics, audience, competitors, voice samples, recent observations). Summaries with a size hint; fetch a body with get_kb_page. Read-only, free.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

list_outputs ~48

The drafted marketing and distribution content produced for this product, newest first: id, loop_type, kind, status and title. Use an id with get_output for the body. Read-only, free.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

list_queue ~54

Unclaimed preparation jobs, oldest first. Each row carries job_id and its nullable attempt_id. Call pick_up_job with both exact values before starting. Queue summaries never include prepared_content. Free; requires the 'act' scope.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

list_tracked_prompts ~94

The buyer questions AfterLaunch tracks: the AI visibility (GEO) question set every measurement is taken against. Returns prompts in tracking order, cap (a hard 15) and used, plus curated: false means AfterLaunch generated them and any can be replaced. Read before track_prompt or untrack_prompt so you never duplicate a question or guess at the room left. Read-only, free, on every plan.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

pick_up_job ~132

Try to claim one queued preparation attempt. Pass job_id and the exact nullable attempt_id from list_queue. Start work only when the response says claim_won:true. An unchanged result is a non-winner and must not start work. Free; requires the 'act' scope.

NameTypeReqDescription
attempt_idstring|nullyesExact attempt id from list_queue; null only for a stored legacy job.
job_idstringyesJob id (uuid), from list_queue.
session_urlstringYour own session URL, if you have one, so the founder can open where the work is happening.

No output schema declared.

No examples provided.

poll_connection ~85

Did the founder finish connecting the growth data source you handed them a link for? Pass the poll_token start_connection returned. Reports pending (wait poll_after_seconds and ask again), connected, expired (mint a fresh link) or not_found. Idempotent: nothing is spent or consumed. Read-only, free.

NameTypeReqDescription
poll_tokenstringyesThe poll_token start_connection returned.

No output schema declared.

No examples provided.

propose_move ~270

Put a discussion thread you found onto the founder's growth board as a pending move. WHEN: you have read a thread on a community they work (a subreddit, Hacker News, a forum) that the board does not carry, and can say why it is worth their twenty minutes. It lands at the tail of the board, keyed to the thread so a repeat lands on one row, and comes back with its posture: on Reddit or Hacker News that is draft_only, meaning you draft and the founder posts, and you must never post there yourself. Only community_reply and community_answer. Free; 'act' scope; a fixed number a day. A thread already on the board hands back its existing move id. WHAT COMES BACK: the move id and posture, so you can save a draft with update_draft next.

NameTypeReqDescription
draftstringOptional: your drafted reply.
kindstringyescommunity_answer for a question thread; otherwise community_reply.
sourcesarrayOptional: up to five https addresses behind the why.
targetstringyesThe https address of the thread itself.
titlestringyesThe thread, as the founder would name it.
whystringyesWhy it is worth their time, in one or two sentences.

No output schema declared.

No examples provided.

record_claim ~215

Put one measured number the founder will stand behind in public into the claim library, so every later reply and growth marketing post can cite it with its caveat. WHEN: a real measurement lands and the founder says they would defend it. Record the NUMBER and the caveat together; a number without its caveat is what this library exists to prevent. Never record an estimate, a projection, a rival's figure, or anything you inferred rather than measured. Free; requires the 'act' scope. Recording the same claim twice replaces your earlier wording; a pinned claim is left as it is. WHAT COMES BACK: the top of their board with move ids.

NameTypeReqDescription
caveatstringyesWhat it does not prove, against your own interest.
heldbooleanTrue to record it and block its use.
numberstringyesThe measurement, with its unit and comparison.
textstringyesThe claim in one sentence.
triggerarrayyesKeywords saying when this claim is relevant.

No output schema declared.

No examples provided.

record_content ~226

File a growth idea (optional channels, kind, score), original X draft or research outcome. Research appends a result to its idea; send expected_updated_at unchanged from the calendar. It keeps evidence holds and never authorises drafting. Requires 'act' scope; no spend or posting. Keep run_key stable. Drafts need action_kind social_post and one idea_id or source_idea; source_url is evidence. adopt_legacy only reclassifies an exact saved replay (a reply keeps its X destination). Completion uses the move verbs.

NameTypeReqDescription
action_kindstring
adopt_legacyobject
channelstring
claim_idsarray
expected_updated_atstring
idea_idstring
operationstringyes
researchobject
run_keystring
source_ideaobject
source_urlstring
textstring
titlestring
whystring

No output schema declared.

No examples provided.

record_insight ~315

Write one durable thing you have learned about this founder or their product into AfterLaunch's Memory, the record every growth and marketing draft is written from. WHEN: the moment the founder tells you something that will still be true next month and that AfterLaunch could not have measured itself. A standing preference, a rule about how they write, a fact not on the site yet, or what a shipped move actually earned. Recording it is part of the job, not a favour: AfterLaunch drafts from Memory, so anything you keep to yourself is a correction the next draft will need again. Record what LASTS. Never record chatter, a passing mood, a restatement of get_snapshot or get_kb_page, or anything you inferred rather than heard. One sentence in the founder's own terms, 10 to 500 characters. Free; requires the 'act' scope. Recording the same insight twice replaces your earlier note; a pinned note is left as it is. WHAT COMES BACK: the top of their board with move ids, so recording hands you your next instruction without a second call.

NameTypeReqDescription
insightstringyesThe durable insight, as one plain sentence in the founder's own terms.
kindstringyespreference = a standing choice about how they work. voice = how they write. fact = something true about the product. outcome = what a shipped move earned.
source_move_idstringOptional growth move id (uuid), from list_feed, when the insight surfaced while working one.

No output schema declared.

No examples provided.

redraft_output ~136

Replace a drafted marketing output's body before it is shipped. Manual replacement only: the AI redraft stays in the app. A draft carrying an unfilled placeholder or a broken link is refused, and the previous draft is kept as revision history. Free; requires the 'act' scope and Founder tier.

NameTypeReqDescription
draftstringyesThe replacement draft body, 1 to 20000 characters.
draft_fenceobjectFor a content pilot edit, return draft_fence unchanged from get_move or get_output. Refresh after a conflict.
output_idstringyesOutput id (uuid), from list_outputs.

No output schema declared.

No examples provided.

refresh_scan ~151

SPENDS MONEY: run an on-demand AI visibility scan (scan='ai_visibility'), the GEO measurement of how the answer engines represent this product against its competitors. Needs the 'write' scope, a paid plan or an active trial, and an Idempotency-Key you mint. Bounded by the credit balance and the per-tenant daily and monthly caps. One scan per type per product per local day; a repeat that day replays the original result, regardless of the key.

NameTypeReqDescription
idempotency_keystringyesClient-minted key (1-200 chars). Reuse the same key on a retry.
scanstringyesThe scan to refresh. Only 'ai_visibility' today.

No output schema declared.

No examples provided.

replenish_feed ~113

SPENDS MONEY: run the growth-move generator on demand to top up the Feed with fresh marketing moves across SEO, AI visibility, competitors and distribution. Needs the 'write' scope, a paid plan or an active trial, and an Idempotency-Key you mint. Bounded by the credit balance and the per-tenant daily and monthly caps. Once a day per product.

NameTypeReqDescription
idempotency_keystringyesClient-minted key (1-200 chars). Reuse the same key on a retry.

No output schema declared.

No examples provided.

report_job ~206

Report a claimed attempt as running, ready_for_review or failed, always with its exact attempt_id. Ready needs prepared_content or a prepared asset_url and remains unpublished until the founder confirms. State shipped is retained only for stored legacy jobs whose attempt_id is null. Omitting an attempt never turns managed work into legacy work. Free; requires the 'act' scope.

NameTypeReqDescription
asset_urlstringURL of the prepared asset. This does not claim publication.
attempt_idstring|nullyesExact attempt id; null only when list_queue identified a legacy job.
fail_reasonstringRequired with 'failed': what stopped you.
job_idstringyesJob id (uuid), from list_queue.
prepared_contentstringPrepared result body for ready_for_review.
receipt_urlstringA permalink to the proof.
session_urlstringYour own session URL, if you have one.
statestringyes

No output schema declared.

No examples provided.

review_move ~229

Apply one explicit founder review decision: revise the current managed attempt, withdraw unfinished work, adopt an inspected legacy result, or correct a recorded publication. Revision starts a new attempt only when this transaction wins. This never publishes anything. Free; requires the 'act' scope.

NameTypeReqDescription
asset_urlstring|null
expected_attempt_idstring|nullyesExact managed attempt. Null identifies legacy work and requires exact move CAS plus legacy job CAS when job_id is present.
expected_legacy_statestring|nullget_move: prepared_result.legacy_state ?? state.
expected_legacy_updated_atstring|null
expected_move_statestring|null
expected_move_updated_atstring|null
job_idstring|nullyes
move_idstringyes
notestring|null
operationstringyesadopt_legacy_result requires a null expected attempt, exact move CAS, exact legacy job CAS when job_id is present, and inspected prepared content or asset URL.
prepared_contentstring|null

No output schema declared.

No examples provided.

run_loop ~178

SPENDS MONEY: trigger one on-demand generation run of a growth marketing loop (e.g. linkedin_post for distribution, geo_improvement for AI visibility and GEO, competitor_intel for competitors). Costs 1 credit. Needs the 'write' scope and an idempotency_key you mint. Bounded by the per-tenant daily and monthly caps. Charged and limited to ONE run per loop per cycle; a repeat in the same cycle replays at no cost, regardless of the key. Accepts only runnable, provisioned loop types (see get_loop_status).

NameTypeReqDescription
idempotency_keystringyesClient-minted key (1-200 chars). Reuse the same key on a retry.
loop_typestringyesThe growth loop to run, e.g. linkedin_post, geo_improvement or competitor_intel.

No output schema declared.

No examples provided.

set_loop_autonomy ~88

Set how much a growth marketing loop does on its own: review, one_click or autonomous. Requires the 'config' scope and Founder tier. Social and distribution channels never accept 'autonomous': they are review-and-post by a human.

NameTypeReqDescription
levelstringyes
loop_typestringyesThe growth loop to configure, e.g. linkedin_post or geo_improvement.

No output schema declared.

No examples provided.

set_loop_cadence ~100

Set how often a growth marketing loop runs: 'default', 'biweekly', 'monthly' or 'paused'. Requires the 'config' scope and Founder tier. You can only SLOW or pause a loop, never make it run faster than default. 'default' clears any override.

NameTypeReqDescription
cadencestringyes
loop_typestringyesThe growth loop to reschedule, e.g. linkedin_post or geo_improvement.

No output schema declared.

No examples provided.

set_output_status ~208

Resolve one drafted marketing output in the founder's review queue (from list_outputs): action 'ship' marks it done or posted WITHOUT publishing anywhere, action 'skip' dismisses it. WHEN: call 'ship' the moment the founder confirms the content is actually out, with their go and never on your own; call 'skip' when they decide against it. Posting is the human's decision; reporting the outcome is yours, and it is not optional, because an unreported result leaves the record blind to what the work earned. Report only what is true: a draft you have written is not a draft that went out. This never posts to a channel: real publishing is approve_output (egress scope, human-approved). Free; requires the 'act' scope and Founder tier.

NameTypeReqDescription
actionstringyes'ship' resolves it as done / posted without publishing; 'skip' dismisses it.
output_idstringyesOutput id (uuid), from list_outputs.

No output schema declared.

No examples provided.

set_scan_config ~146

Set how AI visibility scans run: engines, questions per scan, cadence. Scope 'config', Founder tier. Free to set; returns the credits a scan draws ABOVE the included 15 questions on the leading AI search engines, which is the only part billed. Narrowing costs nothing and refunds nothing. Omit the body to read the config and quote ladder, changing nothing.

NameTypeReqDescription
cadencestringHow often. Slower or paused only, never faster than weekly.
enginesarrayEngines to ask. Fewer is cheaper, never a refund.
prompt_countintegerQuestions per scan. Above 15 draws credits; 50 is the ceiling.

No output schema declared.

No examples provided.

set_voice_axes ~221

Write the calibrated leans from a voice round into the FOUNDER'S OWN voice profile, the personal register, never the brand's. Two voices live here and they do not sound alike: the brand's came from the website and is what marketing pages and listings use, and this verb cannot touch it. WHEN: after a round, once an axis has enough answers to read. Send one write per round, not one per pair, and leave out an axis with too few observations: that is not a lean. Send only the axes that moved; the rest keep what they had. Free; requires the 'act' scope. WHAT COMES BACK: every axis on record, and the top of their board.

NameTypeReqDescription
axesobjectyesKeyed by axis id, each { lean, strength }. lean is 'a' or 'b', the pole this voice sits nearer; strength is the share of that axis's observations that fell on the leaning side, so 0.5 is an even spli…

No output schema declared.

No examples provided.

ship_move ~220

Record completion only after the founder explicitly confirms it. Use prepared_result after reviewing the current prepared attempt, or independent_work when the founder completed it separately. This records an attestation and optional published_url; it never publishes anything. Free; requires the 'act' scope.

NameTypeReqDescription
attempt_idstring|nullyes
completion_kindstringyes
expected_legacy_statestring|nullget_move: prepared_result.legacy_state ?? state.
expected_legacy_updated_atstring|null
expected_move_statestring|nullRequired with expected_move_updated_at for independent_work.
expected_move_updated_atstring|nullRequired with expected_move_state for independent_work.
founder_confirmedbooleanyes
job_idstring|nullyes
move_idstringyesMove id (uuid), from list_feed.
notestring|null
published_urlstring|nullThe actual public URL, when the completed task has one. This is distinct from a prepared asset.

No output schema declared.

No examples provided.

skip_move ~109

Dismiss a growth move (Skip in the Feed). Free; requires the 'act' scope. Optional feedback_key (closed vocabulary, see the enum) plus a free-text feedback_note explain why, which improves future marketing drafts.

NameTypeReqDescription
feedback_keystringWhy it was dismissed. Closed vocabulary; unknown keys are ignored by the learning loop.
feedback_notestringOptional free-text detail alongside feedback_key.
move_idstringyesMove id (uuid), from list_feed.

No output schema declared.

No examples provided.

Common questions

What is the AfterLaunch: the agentic growth marketing engine MCP server?

AfterLaunch: the agentic growth marketing engine is an MCP server listed in the public MCP registry as io.afterlaunch/agentic-growth-marketing. Growth marketing, SEO and GEO as agent tools: ranked moves, ship them, AI answer visibility. This page covers its hosted endpoint (https://afterlaunch.io/api/mcp).

Is the AfterLaunch: the agentic growth marketing engine MCP server safe to use?

AfterLaunch: the agentic growth marketing engine scores 90 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the AfterLaunch: the agentic growth marketing engine MCP server expose?

AfterLaunch: the agentic growth marketing engine exposes 56 tools: get_content_calendar, record_content, get_experiments, whoami, list_feed, and 51 more. Their descriptions and schemas cost roughly 7,111 tokens of context every time the server is loaded.

Does the AfterLaunch: the agentic growth marketing engine MCP server require authentication?

Yes. AfterLaunch: the agentic growth marketing engine asked us for credentials when we connected, so you will need to authorise it in your MCP client before it can do anything.

Is the AfterLaunch: the agentic growth marketing engine MCP server still maintained?

AfterLaunch: the agentic growth marketing engine is still listed as active in the MCP registry. We last reached this channel on 20 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.