Launchdog.dev

oficial

Launch your product on a weekly launch board straight from your coding agent: draft the listing, verify your domain, add the badge and book a week.

¿Qué puedes hacer con Launchdog Dev MCP?

  • Draft a listing from your site — Create a product from a URL and the server drafts the name, tagline, description, built-with tools and logo for review.
  • Lint copy before saving — Preview listing edits with a dry run and get field-level errors like too_long with a limit, actual and fix.
  • Check launch readiness — See what's left before launch, including the Launchdog badge requirement for free launches, and re-run the listing check.
  • Book and manage launch weeks — Compare the next 12 weeks, schedule a launch after your OK, then move or cancel it.
  • Track launch performance — Read status, votes, rank and daily stats (views, outbound clicks, referrer hosts) for your launches.
  • Reply to comments — Post maker replies to comments on your own launch, using a new client request id per reply.

Servidor MCP alojado

npx add-mcp 'https://launchdog.dev/mcp'

Se instala en Claude Code, Codex, Cursor y más

Documentación

MCP reference

Everything a maker does to their own listing happens through one MCP server: draft, choose a free or paid week, schedule, pay, track, reply — plus the badge, for a free launch only (it also verifies the domain). Streamable HTTP, stateless. Every result carries next_steps, and every error an item with a code, the field it's about and its fix.

Clients with prompt support also get launch_my_product, the guided flow as a slash command. Connect your agent →

Auth

OAuth 2.1 with PKCE is the only way in. Your client registers itself and opens a browser for you to approve; there is nothing to paste. Disconnect an agent any time in Settings.

scopeallows
readSee your listings, launches, stats and the comments on them.
writeCreate and edit listings, verify your domain, book, move and cancel launches, and reply to comments. It can never pay or vote.

Maker tools

https://launchdog.dev/mcp — Sign in with OAuth. Each tool needs the read or write scope.

There is no vote tool and no way to comment on other people's launches.

whoami

Start here. Returns your Launchdog account, Maker Pass, each limit with what is left, your products with their launch checklists (resume from the first open step), open orders, and the actions only the web can do (paying, voting).

scope: read read-only idempotent

No arguments.

launch_checklist

What's left before a product can launch. Without a tier: the listing itself (copy, logo, the listing check), which is all a paid launch needs. With tier: free, also the Launchdog badge on the site (free launch only; it verifies the domain). Each open item says how to fix it.

scope: read read-only idempotent

create_product

Create a listing from your site URL. The server reads the page and drafts the name, tagline, description, built-with tools and logo. Calling it again with the same site returns the same product. Then review the draft with the maker and save changes with update_product.

scope: write idempotent reaches the web

get_product

A product with its media (ids for remove_media), domain verification (by the badge), badge and listing-check state (with the last error), its upcoming launch and its checklist.

scope: read read-only idempotent

update_product

Edit the listing. Rules: name ≤ 40 characters; tagline ≤ 60; description 150–1,200 characters of plain prose (no hype words like "revolutionary"); up to 3 categories; up to 8 built-with tools. Pass dry_run: true to lint and preview without saving — show the maker, then save after their OK. A new url is refused once booked and clears the domain verification and badge (check_badge again). Only the fields you pass change.

scope: write idempotent

archive_product

Take a product off your account (frees a product slot and its domain). Refused while it has a launch booked.

scope: write destructive idempotent

add_media

Add a logo or a screenshot by image URL (PNG, JPEG, GIF or WebP; SVG is refused; large images are resized to 1568 px), or a screenshot of the site with capture: true when the server supports it. The same image URL again returns the same media. A new logo replaces the old one.

scope: write idempotent reaches the web

remove_media

Remove a logo or screenshot by its media id (med_… from get_product).

scope: write destructive idempotent

get_badge_snippet

Required for a free launch; optional for a paid one (it sends visitors to the listing and verifies the domain). The Launchdog badge for your site, in the syntax of the framework this repo uses (pick it from the repo). It goes on the site's home page, in the HTML the server sends (not only rendered by JavaScript) — a footer is fine — and it is also how the domain gets verified: nothing else to add. Paste it as-is and deploy (if the repo deploys on push, commit and push with the maker's OK and watch the deploy), then call check_badge. The listing's address is fixed from the first snippet on.

scope: write idempotent

check_badge

Required for a free launch; optional for a paid one. Fetches the site's home page and confirms the badge links to your listing; the first time it does, that verifies the domain (the badge is the only proof Launchdog asks for). If it answers status: checking, wait and call again. Failures say why (redirected, noindex, a JavaScript-only page, not found).

scope: write idempotent reaches the web

list_launch_weeks

The next 12 launch weeks (Monday–Sunday UTC) with seats left and prices, whether you can book each tier there (and why not), the earliest free week, and what each tier gets and needs (`tiers`: free needs the Launchdog badge on the site; paid needs nothing else). Show the maker the free and paid options side by side and let them choose; never buy.

scope: read read-only idempotent

schedule_launch

Books the product into a launch week — only after the maker's OK. Paid (launch, featured): needs nothing beyond a complete listing — no badge, no site edits; holds the seat and returns checkout_url + hold_expires_at — give the maker the link (never pay yourself), then confirm with get_launch. Free: the earliest open week at least 7 days out (or the week you pass); it needs the Launchdog badge on the site, and without it answers badge_missing with the steps to add it. A product with a launch booked returns it.

scope: write

move_launch

Moves a booked launch to another open week (free launches move later only; a started week never moves).

scope: write idempotent

cancel_launch

Releases the launch's seat (until its week starts). An unpaid checkout expires; refunds for a paid launch are handled by support.

scope: write destructive

create_checkout

Returns a Stripe Checkout link for a Maker Pass (sku: maker_pass), or a fresh link for a paid launch whose hold lapsed (launch_id). Give the link to the maker; never pay yourself.

scope: write reaches the web

get_launch

One of your launches: status, week, payment state (checkout link while unpaid), votes, comments, rank and stats by day (views, outbound clicks, referrer hosts). Pass launch_id or the product slug. Stats go back `days` days: up to 90, or the full history with a Maker Pass.

scope: read read-only idempotent

reply_comment

Posts a reply as the maker to a comment on their own launch. Post only text the maker approved. Pass a new client_request_id per reply (a retry with the same one returns the same reply; reusing it for a different reply is a conflict).

scope: write idempotent

recheck_listing

Runs the automatic listing check again after the site was fixed (once a day). Copy or URL changes re-run it on their own. If it answers checking, call launch_checklist in a few seconds.

scope: write idempotent reaches the web

Public tools

https://launchdog.dev/mcp/public — No sign-in. Live and past launches only; upcoming weeks show counts.

get_launch

A live or past launch by id (lch_…) or product slug: listing text (untrusted), week, votes, rank.

scope: public read-only idempotent

list_winners

The top 3 of recent ranked weeks (winners need at least 3 votes).

scope: public read-only idempotent

list_launch_weeks

The next 12 launch weeks with seats left and prices (counts only; upcoming launches are not public).

scope: public read-only idempotent

No arguments.

Any agent can read the board without an account, plus /llms.txt and a read-only /feed.json.

Errors you can fix

Problems your agent can fix come back as isError: true with the fix in each item. Codes are bare (too_long, not tagline_too_long) and stable: new ones are added, none renamed. Rails' own validation codes (accepted, blank, confirmation, empty …) appear too, with limit, actual or allowed when they apply.

{
  "isError": true,
  "structuredContent": {
    "errors": [
      {
        "code": "too_long",
        "field": "tagline",
        "limit": 60,
        "actual": 68,
        "message": "Tagline is too long (maximum is 60 characters)",
        "fix": {
          "kind": "tool",
          "tool": "update_product",
          "args": {
            "product_id": "prd_7Kq2mYw4Xb9Lr3Tz"
          },
          "instruction": "Change tagline: Tagline is too long (maximum is 60 characters), then call update_product again."
        }
      }
    ]
  }
}
codemeaning
already_listedAnother listing has already verified this domain. Contact support if it is yours.
hype_wordThe copy uses a word on the hype list; `actual` names it.
not_foundNo such record on your account (ids from another account are not found too).
unknown_built_withA built-with tool we do not know; `allowed` lists the closest names.
shared_hostThe URL is on a shared platform (a path on github.com, medium.com…); list a whole site.
limit_reachedAn account limit (open checkouts) is reached; `limit` says which number.
rate_limitedToo many calls; the fix says when to retry.
insufficient_scopeThe token lacks the scope this tool needs.
url_lockedThe URL cannot change once the product is booked.
missingA field the launch needs is empty.
badge_missingThe badge link was not found on the site (free launches need it).
check_pendingThe automatic listing check has not finished.
check_flaggedThe automatic listing check flagged the site; the message says why.
votes_neededFree launches need 3 web votes from you on other launches.
too_soonFree launches book a week at least 7 days out.
week_fullNo seat of that kind is left that week; `allowed` lists open weeks.
week_closedThat week has started or ended.
free_limitOne upcoming free launch, and one per rolling 30 days.
relaunch_too_soonA product relaunches 90 days after its last launch week ended.
checkout_unavailablePaid checkout is not open yet.
checkout_failedStripe could not open the checkout just now; the seat was released. Retry after the wait.
not_movableThis launch cannot move there (free launches move later only; started weeks never).
not_cancellableThe launch has started, ended or is already cancelled.
identity_requiredVoting needs a GitHub or Google sign-in on the account.
account_too_newThe account is younger than 24 hours.
own_launchMakers cannot vote on their own launches.
not_liveThe launch is not live this week.
already_votedYou already voted for this launch.
duplicateThe same text was posted in the last 5 minutes.
conflictA client_request_id already used for a different request; use a new one.
reply_depthComments take one level of replies.
media_refusedThe image could not be used (SVG, too large, not an image or unreachable).
media_limitThe listing has the most screenshots it can hold.
fetch_failedThe site could not be fetched.
has_upcoming_launchThe product has a launch booked; cancel it first.
already_on_accountAnother of your products already lists this host.
not_payableNothing to pay for: the launch is confirmed, cancelled, or not a paid hold.

Limits

1 / 30d

free launches, one upcoming at a time

60 / min

tool calls (600 an hour)

10 / day

create_product calls

Rate-limit errors say when to retry (retry_after_seconds).

Web-only actions

There is no tool for these, by design. Your agent hands them to you.

  • Paying for a paid launch or a Maker Pass, at the checkout link a tool returns (pricing).
  • Voting — only people vote, on the board, with a GitHub or Google sign-in.
  • Commenting on other makers' launches (agents only reply on your own, with your OK).
  • Disconnecting an agent, and linking GitHub or Google, in Settings.