ZBS Index What actually exists in applied AI, with the source next to it

mcp server

AfterLaunch: the agentic growth marketing engine

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

Description as published by the maintainer. Source

  • version 1.0.0
  • active

active — Most recent push to the repository was 2026-07-30.

What this server can do

40 functions, named and described by the server itself. Parameter names are shown because they say more about what a function does than its name usually does.

archive_move(move_id)
Archive a growth move: a lighter dismissal than skip that removes it from the Feed without recording a skip verdict. Free; requires the 'act' scope. Idempotent on an already-archived move. Required: move_id.
create_checkout
Create a Founder-tier checkout link for THIS product run (the enrollment your key is bound to), the way to unlock the Founder-only growth controls and more metered marketing work. Returns a checkout_url the founder opens to pay; once payment succeeds AfterLaunch upgrades this product to Founder automatically. Reachable on a free trial because it is the path TO Founder. Requires the 'act' scope. The checkout is always bound to your own enrollment, so it can never upgrade a different account.
create_topup(pack_id)
Create a credit top-up checkout link for THIS product run (the enrollment your key is bound to), the way to refill the credits that pay for metered growth marketing work when the balance runs out. Pass pack_id: a small, medium or large refill pack. Returns a checkout_url the founder opens to pay; once payment succeeds AfterLaunch adds the credits to this product automatically. Requires the 'act' scope and the Founder plan (on a free trial, use create_checkout first: it mints the upgrade link). The top-up is always bound to your own enrollment, so it can never credit a different account. Required: pack_id.
disconnect_connection(provider)
Disconnect a growth data source or distribution channel and delete the credential AfterLaunch stored for it (for Google it is also revoked at Google). Idempotent: disconnecting something that was never connected succeeds and changes nothing. This narrows what the growth engine can measure and where it can distribute, so confirm with the founder first. Free. Required: provider.
dismiss_gap(reason, prompt_id, prompt_text)
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, expressed 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. Get prompt_id and prompt_text from get_visibility. Idempotent: a gap the founder already shipped or archived is left exactly as it is and reported as already resolved. Required: prompt_id, prompt_text.
get_activity(limit)
The product timeline: what the growth agent and the founder already did and why (drafts, ships, skips, scans, observations, decisions with their rationale). Read this before acting so you never redo or contradict recent growth marketing work. Newest first. Read-only, free.
get_competitors
The competitor roster for this product with the measured stat battery for you and each rival: performance, SEO and accessibility scores, Core Web Vitals, domain age and authority, G2 and Product Hunt presence, content freshness. Includes the founder's own edits to the list. Read before any competitor or outreach work so a rival is never treated as a pitch target. Read-only, free.
get_enrollment
The product run summary for this AfterLaunch growth engine: product_url (the site this run is about), tier (free, founder, growth or scale), trial_ends_at, timezone, whether autonomous growth work is active, and delivery settings. When credit metering is live it also carries credits { included, topup, total, pct } (pct is the fuel-gauge fill 0-100, or null when there is no allowance to gauge against); the field is absent while metering is off.
get_kb_page(slug)
One Knowledge Base page by slug, with its full markdown body: the shared memory the growth marketing engine drafts from. Slugs come from list_kb_pages (about-my-business, my-competitors, about-my-voice, recent-observations, and any pages the founder added). Read-only, free. Required: slug.
get_loop_status(loop_type)
The automated growth marketing loops PROVISIONED for this product (agent_loops rows), covering AI visibility (GEO), competitor tracking and channel distribution, with their autonomy level, plus runnable_loop_types: the loop types run_loop accepts. The two sets differ: a runnable type only runs once a loop of that type is provisioned and enabled for this product, and a provisioned loop is not necessarily on-demand runnable. Pass loop_type for a single loop, omit it for all.
get_move(move_id)
One growth move in full: everything needed to write its deliverable yourself. Carries the move's drafted body and draft_kind (whether AfterLaunch wrote a full draft or a brief to expand), the evidence it was minted from (sources plus when that evidence was observed), the one-line deliverable identity (what this produces and where it goes), why it was picked as a champion, the stored scan evidence behind its measured claim (receipt), the acceptance criteria and writing constraints the finished work must meet, and the founder's saved voice samples so it reads in their register. tracked_link rides when one already exists: links are minted when the founder's own Feed renders the move, and this door reports one, never mints one. Get ids from list_feed or get_standup. Read this before writing any move, then ship_move once the founder is happy. Read-only, free. Required: move_id.
get_outcomes
What the shipped growth moves earned: tracked-link clicks per move, shipped-move counters, the weekly movement scoreboard, and whether GA4 and Search Console are connected. The proof read for growth marketing work: call after ship_move to see whether a move is earning attention. Read-only, free.
get_output(output_id)
One drafted marketing output by id (a channel or distribution draft), with its full content body. Get ids from list_outputs. Read-only. Required: output_id.
get_scoreboard(window_days)
Did the growth work move anything? The proof read for a period: AI visibility (GEO) measured at the START and the END of the window, the moves the founder shipped between them, the scans that ran, and the receipts with what AfterLaunch 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. Defaults to the last 14 days; window_days is clamped to 7 to 90. Read-only, free.
get_seo(include_pages)
The site-wide SEO audit for this product: issue groups with severity and affected pages, the weekly SEO score trend, page performance (Core Web Vitals), links and domain authority with movement, and day-0 search ranks for buyer queries. Read before doing any SEO work of your own; the Feed's seo_fix moves are minted from these findings. Read-only, free. Pass include_pages for the per-page audit detail.
get_setup_snippet
The paste-able 'Growth (AfterLaunch)' markdown section for this repository's CLAUDE.md or AGENTS.md. It teaches any coding agent how to use AfterLaunch for growth, marketing, SEO, AI visibility (GEO), competitor and distribution work: which tools to call, which cost money, and what AfterLaunch never does. Free, read-only, no arguments. Write it into the repo rather than asking the founder to copy it. The same text is public at /agents/snippet.md.
get_snapshot
The Growth Snapshot diagnostic this product run started from: positioning, the discoverability score, the prioritised leverage actions with impact and effort, the competitor set, and the day-0 SEO and AI visibility baselines. The stable business context read for growth and launch work; for live signal data use get_visibility and get_seo. Read-only, free.
get_standup
The daily growth marketing standup for this product, in one call. receipts: the moves recently shipped, what AfterLaunch verified live about each, and the clicks they earned. ready: the top ranked growth moves that can be shipped right now, each with the one-line deliverable it produces. needs_you: what genuinely waits on the founder (setup steps like connecting a source, plus drafted content awaiting review), never a second copy of the ready moves. in_flight: whether the deep scan is still building, what it is doing and when to check back. next_scan_at: when the next AI visibility scan is scheduled. Call this at the START of a growth, marketing or SEO session, before list_feed, and relay the message field. Read-only, free.
get_visibility(prompt_id)
The measured AI visibility (GEO) results for this product: share of voice against competitors, per-engine coverage across ChatGPT, Gemini, Perplexity and Google AI Overviews, the tracked buyer questions with per-engine presence, where AI gets its answers (cited sources ranked by breadth, each with its outreach play), competitor-owned gaps, the visibility trend, and AI crawlability. Also carries the off-site reach signals: community mention scans, threads worth answering, and directory listings presence. Read this after refresh_scan (watch discovered_at advance) and before any AI visibility or GEO work. Read-only, free. Pass prompt_id (from the prompts list) to drill into one question with the full engine answer text where your plan includes it.
list_connections
Which growth data sources and distribution channels are connected to this product run: Google Analytics 4 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 (with the property, site or account it reads), not_connected (connectable right now), or not_available with the reason it is shut on this account. Read this before start_connection so you never offer a connection that cannot be made. Read-only, free.
list_feed(since, include_resolved)
The ranked backlog of growth marketing moves AfterLaunch has prepared for this product, across SEO, AI visibility (GEO), competitors and distribution channels: title, why it matters, its area, status, rank and the full draft_content body. Read this before improvising any growth, marketing, SEO or launch work of your own. Returns only live (pending) moves by default; pass include_resolved to also see shipped, skipped, archived and expired moves. total_live counts the live backlog. snapshot_status tells you whether the deep scan is still building or is ready; while building, current_phase names what is running and deep_scan_eta_seconds plus poll_after_seconds tell you when to check back for the full Feed. Pass since (an ISO-8601 timestamp) to fetch only moves first seen after it, the incremental pull for what is new. Read-only.
list_kb_pages
The Knowledge Base pages for this product: the shared memory the growth marketing engine drafts from (business basics, audience, competitors, the voice samples, recent observations). Returns summaries with a size hint; fetch one page body with get_kb_page. Read-only, free.
list_outputs
The drafted marketing and distribution content AfterLaunch has produced for this product (newest first): id, loop_type, kind, status and title. Read-only. Use an id with get_output for the full body, or with approve_output to dispatch it.
list_tracked_prompts
The buyer questions AfterLaunch tracks for this product across ChatGPT, Gemini, Perplexity and Google AI Overviews: the AI visibility (GEO) question set every measurement is taken against. Returns prompts (in tracking order), cap (the hard limit of 15) and used, plus curated: false means these are the questions AfterLaunch generated and any of them can be replaced. Read this before track_prompt or untrack_prompt so you never duplicate a question or guess at the remaining room. Read-only, free, and readable on every plan.
poll_connection(poll_token)
Did the founder finish connecting the growth data source you handed them a link for? Pass the poll_token start_connection returned. Reports pending (they have not approved it yet; wait poll_after_seconds and ask again), connected (with the property, site or account it now reads), expired (the 15-minute link lapsed, mint a fresh one) or not_found. Idempotent: nothing is spent or consumed, so a connected handoff keeps reporting connected until it expires. Read-only, free. Required: poll_token.
redraft_output(draft, output_id)
Replace a drafted marketing output's body with your edited version before it is shipped (a manual replacement of the growth or distribution draft from get_output). Free; requires the 'act' scope and Founder tier. Manual replacement only: the instruction-driven AI redraft stays in the app for now. The previous draft is kept as revision history. Required: output_id, draft.
refresh_scan(scan, idempotency_key)
SPENDS MONEY: run an on-demand AI visibility scan (scan='ai_visibility'), the GEO measurement of how AI answer engines represent this product against its competitors. Requires the 'write' scope, an account that is on a paid plan or inside an active trial, and an Idempotency-Key you mint. Spend is bounded by the account's credit balance. One scan per scan type per product per local day; any repeat that day replays the original result instead of running again, regardless of the key. Subject to the per-tenant daily and monthly spend caps. Required: scan, idempotency_key.
replenish_feed(idempotency_key)
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 channels (the in-app 'Find more moves'). Requires the 'write' scope, an account that is on a paid plan or inside an active trial, and an Idempotency-Key you mint. Spend is bounded by the account's credit balance. Limited to once a day per product and subject to the per-tenant daily and monthly spend caps. Required: idempotency_key.
run_loop(loop_type, idempotency_key)
SPENDS MONEY: trigger one on-demand generation run of a growth marketing loop (e.g. linkedin_post for channel distribution, geo_improvement for AI visibility and GEO, competitor_intel for competitor tracking). Costs 1 credit. Requires the 'write' scope and an idempotency_key you mint. Charged and limited to ONE run per loop per product per cycle: a repeat run in the same cycle replays the original result at no cost instead of running (or charging) again, regardless of the key. Subject to the per-tenant daily and monthly spend caps. Accepts only runnable loop types (see runnable_loop_types on get_loop_status), and the loop must also be PROVISIONED and enabled for this product (an agent_loops row, listed by get_loop_status); a runnable type that is not provisioned cannot run. Required: loop_type, idempotency_key.
set_loop_autonomy(level, loop_type)
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). Required: loop_type, level.
set_loop_cadence(cadence, loop_type)
Set how often a growth marketing loop runs for this product: 'default' (its normal cadence), '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. Setting 'default' clears any override. Required: loop_type, cadence.
set_output_status(action, output_id)
Resolve one drafted marketing output in the founder's review queue (the drafted growth and distribution content from list_outputs / get_output): action 'ship' marks it done (a daily brief) or posted-status (a channel draft) 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 this distribution 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 distribution publishing is approve_output (egress scope, human-approved). Free; requires the 'act' scope and Founder tier. Idempotent when the output is already in the requested state. Required: output_id, action.
ship_move(move_id, asset_url)
Mark a growth move shipped (the same action as the founder's Ship button in the Feed). WHEN: call it the moment the founder confirms the marketing work is actually live, with their go and never on your own. Shipping is the human's decision; reporting the ship is yours, and it is not optional. AfterLaunch measures what happens after a move goes live, so an unreported ship is growth work the record never sees and every later ranking is worse for the gap. Report only what is true: drafted is not shipped, staged is not shipped, awaiting review is not shipped, and a move the founder turned down goes to skip_move with the real reason instead. Free; requires the 'act' scope. Pass asset_url only when the move published a live content asset. Required: move_id.
skip_move(move_id, feedback_key, feedback_note)
Dismiss a growth move (the same action as 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. Required: move_id.
start_connection(provider)
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, because connecting Google Analytics, Search Console or LinkedIn is a human decision bound to their own session. Returns url (hand it to the founder), poll_token, poll_after_seconds and expires_at; the link lasts 15 minutes. Then call poll_connection with the poll token until it reports connected. Refuses in plain words, before minting anything, when a connector is shut on this account, so you never hand over a link that dead-ends. Free, spends nothing. Required: provider.
track_prompt(text)
Add one buyer question to the AI visibility (GEO) set AfterLaunch measures this product on, so future scans check how ChatGPT, Gemini, Perplexity and Google AI Overviews answer it. Free, spends nothing. Two honest consequences: changing the set makes the NEXT scheduled scan run at full depth instead of skipping ahead when nothing has changed, and it re-baselines the week-over-week trend, because a comparison across two different question sets is not a real move. So add deliberately rather than churning the list. 10 to 200 characters, deduplicated, hard cap of 15 questions: untrack one before adding another once it is full. Requires the 'config' scope and the Founder plan; on a free trial the questions stay readable with list_tracked_prompts and create_checkout mints the upgrade link. Required: text.
undo_move(move_id)
Restore a just-shipped or just-skipped growth move to pending (the same action as the founder's Undo in the Feed): the self-correction verb for a wrong ship_move or skip_move. Free; requires the 'act' scope. Idempotent on a move that is already pending. It never unwinds a real channel publish: a posted output stays posted, and an archived or expired move cannot be restored. Required: move_id.
untrack_prompt(text)
Remove one buyer question from the AI visibility (GEO) set AfterLaunch measures this product on, freeing a slot against the cap of 15. Free, spends nothing. Same two honest consequences as track_prompt: the NEXT scheduled scan runs at full depth instead of skipping ahead, and the week-over-week trend re-baselines because the question set changed. Matched on the question text, ignoring case and punctuation, and IDEMPOTENT: removing something that is not tracked succeeds and changes nothing. Requires the 'config' scope and the Founder plan. Required: text.
update_draft(move_id, draft_content)
Replace a pending growth move's marketing draft body with an edited version before shipping. Free; requires the 'act' scope. Required: move_id, draft_content.
whoami
Confirm the AfterLaunch API key works before doing any growth or marketing work: returns the enrollment (product run) this key is bound to, the key name and its scopes, plus the product identity: product_url (the site this run is about), tier (free, founder, growth or scale) and trial_ends_at. It also returns onboarding { snapshot_status, current_phase, feed_ready }: if you just onboarded a new product, feed_ready is false while the Growth Snapshot deep scan is still building, so wait and re-check before reading the Feed. When credit metering is live it also returns credits { included, topup, total, pct } (pct is the fuel-gauge fill 0-100, or null when there is no allowance to gauge against); the field is absent while metering is off. Call this first.

Last successful function declaration observed on . Source: https://afterlaunch.io/api/mcp. We list what the server declared; we do not call any of these functions.

Endpoint status observed on . Source: https://afterlaunch.io/api/mcp.

Signals

These are separate measurements of different things. They are deliberately not combined into one score, because a popularity number that mixes website traffic with saves and stars cannot be checked or acted on.

Signal Value What it measures Window Observed Source
GitHub stars 0 Number of GitHub accounts that bookmarked this repository since it was created. It is a bookmark count, not installs, not active users and not quality. cumulative, all time GitHub
Last commit 2026-07-30 Date of the most recent push to any branch. This is the strongest cheap indicator of whether the project is still maintained. point in time GitHub
Open issues 0 Open issues plus open pull requests, as GitHub counts them together. A high number can mean an active project or an abandoned one. as of fetch GitHub
Latest published version 1.0.0 Latest version string the maintainer published to the registry. as of fetch Model Context Protocol
Registry record last updated 2026-07-30 When the registry record was last updated by its maintainer. point in time Model Context Protocol
License MIT Licence GitHub detected in the repository. Detection can be wrong; the LICENSE file is authoritative. as of fetch GitHub
First listed in the MCP Registry 2026-07-30 Date this server was first published to the official MCP Registry. Not a usage or quality measure. point in time Model Context Protocol
repository status active The repository exists on GitHub and is not archived. This says nothing about how recently it was worked on. as of fetch GitHub
mcp tools declared 40 tools Number of functions the server itself declared when asked to list them. This is what the server offers an agent, not a measure of how well any of them work. as of probe afterlaunch.io
mcp endpoint status ok The server listed 40 functions when asked. as of probe afterlaunch.io

Where to get it

This record as data

Every field on this page, with its source and observation date, is in the catalog JSON. Fetch the whole kind at once instead of parsing this HTML.

GET /api/v1/entries/mcp_server.json

Sources

  1. Tools declared by the MCP server at https://afterlaunch.io/api/mcp — afterlaunch.io, observed , trust tier 4.
  2. afterlaunch/mcp on GitHub — GitHub, observed , trust tier 3.
  3. Official MCP Registry — Model Context Protocol, observed , trust tier 1.