io.afterlaunch/agentic-growth-marketing · v1.0.0 · marketing-and-seo
AfterLaunch: the agentic growth marketing engine is healthy: it completed an MCP handshake in 1877 ms and exposes 55 tools.
Growth marketing, SEO and GEO as agent tools: ranked moves, ship them, AI answer visibility.
Endpoint: https://afterlaunch.io/api/mcp (streamable-http)
Repository · Website · JSON · Add to my inventory
| Users (last 30 days) | 0 |
| Handshake | Healthy |
| Auth needed | None |
| Tool count | 55 |
| Latency | 1877 ms |
| Last checked (UTC) | 2026-10-16T03:25:09.562Z |
| Checked (UTC) | Status | Latency | Error |
|---|---|---|---|
| 2026-10-16T03:25:09.562Z | Healthy | 1877 | |
| 2026-10-15T00:15:47.762Z | Healthy | 4368 |
get_content_calendar | Growth content calendar, source drafts, current Board state and X production switch. Read-only. Check linkage and calendar_sync; saved words are not publication proof. |
record_content | File a growth idea (optional channels, kind, score, final_text sent verbatim, desk: a post, reply or task the owner posts by hand, queued at slot_at, or a decision or read that needs the owner, due_on a date), original X draft or research outcome. Research appends a result to its idea; send expected |
get_experiments | Growth content experiments already run, newest first, with scoped evidence. Read-only; never runs one. Each is an observation, not a rate. |
whoami | Confirm the AfterLaunch key works: which product run it is bound to, its scopes, tier and trial_ends_at, plus onboarding (feed_ready is false while the Growth Snapshot deep scan is still building) and credits once metering is live. |
list_feed | 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 carr |
get_loop_status | The automated growth marketing loops provisioned for this product (AI visibility, competitors, channel distribution) with their autonomy level, plus runnable_loop_types: what runs on demand. A runnable type only runs once a loop of that type is provisioned and enabled here. |
get_enrollment | 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. |
list_outputs | The drafted marketing and distribution content produced for this product, newest first: id, loop_type, kind, status and title. Read-only, free. |
get_output | Read a queue draft by id. SEO linked_article {id,title,content} adds the full Markdown article. |
get_setup_snippet | 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 |
get_visibility | The measured AI visibility (GEO) results: how ChatGPT, Gemini, Perplexity and Google AI Overviews answer the tracked customer 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 |
get_seo | 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. |
get_competitors | 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-o |
get_outcomes | 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. Read-only, free. |
get_snapshot | 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, not live signal data. Read-only, free. |
get_activity | 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. |
list_kb_pages | 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. Read-only, free. |
get_kb_page | One Memory page by slug, with its full markdown body: the record the growth marketing engine drafts from. Read-only, free. |
get_voice_profile | 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 |
get_business_context | 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; chec |
get_claims | 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 BEF |
record_claim | 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 it |
set_voice_axes | 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 |
record_voice_rule | Save one writing rule the person approved into their OWN voice, never the brand's. The morning marketing posts drafted for them follow it, move and voice reads carry it, and they see and remove it in Memory. WHEN: only after they approve it in words, e.g. a yes to a rule you proposed from how they e |
record_profile | File one public profile or listing the person already has on a directory site, so AfterLaunch counts it as a verified presence and a weekly check confirms it is still live. WHEN: you opened the page and it is theirs. One address per site; a new address replaces the old one, the same address again ch |
add_competitor | Add one company the person confirmed they compete with to their rival roster, which the next AI visibility scan measures them against and every competitor read carries. WHEN: only after they say yes to that rival. A rival already on the roster, by domain or by name, is left as it is. At most 10 riva |
get_standup | 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 (whi |
get_move | 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 (n |
accept_move | 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. |
ship_move | 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. Site changes need a live published_url to ship; with planned_url they stay prepared. This records an attest |
review_move | Apply one explicit founder review decision: revise the current managed attempt, cancel (withdraw) unfinished work, adopt an inspected legacy result, or correct a recorded publication. A revision starts a new attempt only if it wins. This never publishes anything. Free; requires the 'act' scope. |
skip_move | 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. |
update_draft | Replace a pending growth move's marketing draft body before shipping. A draft carrying an unfilled placeholder or a broken link is refused rather than saved. Free; requires the 'act' scope. |
archive_move | Archive a growth move: a lighter dismissal than skip, with no verdict recorded. Free; requires the 'act' scope. Idempotent on an already-archived move. |
undo_move | Restore a just-shipped or just-skipped growth move to pending: the self-correction verb for a wrong ship or skip. Free; requires the 'act' scope. Idempotent on a move already pending. It never unwinds a real channel publish: a posted output stays posted, and an archived or expired move cannot be res |
set_output_status | Resolve one drafted marketing output in the founder's review queue: 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 |
redraft_output | 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. |
refresh_scan | 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- |
replenish_feed | 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 dail |
create_checkout | 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 Fo |
create_topup | 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 F |
list_connections | 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 |
start_connection | Connect a growth data source or distribution channel: mint a one-time link the FOUNDER opens in their own browser to approve it. You never complete the consent yourself; it is bound to their session. Returns url (hand it to the founder), poll_token, poll_after_seconds and expires_at; the link lasts |
poll_connection | Did the founder finish connecting the growth data source you handed them a link for? Pass the poll_token you got with that link. 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. |
disconnect_connection | 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 confi |
list_tracked_prompts | The customer 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-only, free, on every plan. |
track_prompt | Add one customer question to the AI visibility (GEO) set AfterLaunch measures this product on. Free, spends nothing. Two honest consequences: changing the set makes the NEXT scheduled scan run at full depth rather than skipping ahead, and it re-baselines the week-over-week trend, because a compariso |
untrack_prompt | Remove one customer question from the AI visibility (GEO) set, freeing a slot against the included cap of 50. Free, spends nothing. Same two honest consequences as adding one: the next scheduled scan runs at full depth, and the week-over-week trend re-baselines. Matched on the question text, ignorin |
get_scoreboard | 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 |
dismiss_gap | 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 a skip, 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 t |
record_insight | 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 |
propose_move | Put a move on your user's growth board as a pending move. WHEN: you found a thread on a community they work, or their plan calls for a placement ask, outreach, a directory listing or a page for their site, and the board lacks it. A repeat (same kind and target, or kind and title) hands back the exis |
list_queue | Unclaimed preparation jobs, oldest first. Each row carries job_id and its nullable attempt_id. Queue summaries never include prepared_content. Free; requires the 'act' scope. |
pick_up_job | Try to claim one queued preparation attempt. Pass job_id and the exact nullable attempt_id of a queued job. 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. |
report_job | Report a claimed attempt with its exact attempt_id: running; needs_input with one question for your user; shipped with the live published_url, or planned_url once merged (we check it); ready_for_review with prepared_content, or asset_url when your user must post it or when it is the pull request you |