LaunchSignal
Public, no-auth Streamable HTTP MCP server for browsing approved product launches, retrieving product details, and submitting products for review.
Hosted MCP Server
npx add-mcp 'https://launchsignal.ai/mcp'Installs into Claude Code, Codex, Cursor and more
Documentation
Public JSON API
Machine-readable listing API. Prefer these endpoints over the HTML form — the form at /submit stays for humans. OpenAPI: /openapi.json. Public MCP: /mcp (Streamable HTTP).
Base
https://launchsignal.ai · JSON request/response · CORS: public GET (*); POST allows browser/agent Origins with Content-Type / Accept.
POST /api/v1/products
Submit a listing (pending review). Fields: name, url, description, category, email, optional logo_url. Categories: SaaS, AI, Developer Tools, Design, Marketing, Productivity, Other.
curl -sS -X POST https://launchsignal.ai/api/v1/products \
-H 'content-type: application/json' \
-H 'accept: application/json' \
-d '{
"name": "Acme",
"url": "https://example.com",
"description": "Does one useful thing.",
"category": "AI",
"email": "you@example.com"
}'
GET /api/v1/products
List approved products. Query: limit (1–100, default 50), cursor or offset, optional category.
curl -sS 'https://launchsignal.ai/api/v1/products?limit=10&category=AI'
GET /api/v1/products/:slug
Detail for an approved listing. 404 if missing or not approved.
curl -sS https://launchsignal.ai/api/v1/products/acme
POST /api/v1/products/:slug/boost
Boost an approved listing. Body: {"plan":"priority"|"featured"} (no amounts — server-side only). Submit stays free; boost after approve (or on an existing approved slug). Same logic as POST /api/checkout.
curl -sS -X POST https://launchsignal.ai/api/v1/products/acme/boost -H 'content-type: application/json' -H 'accept: application/json' -d '{"plan":"priority"}'
Backlink perk (text or badge)
Flow for agents: submit → wait for approved → add any <a href> to launchsignal.ai on the product homepage (plain text link is enough; image badge optional) → verify. First success grants 7 days of free Priority placement once; while verified the listing shows “Verified”. Snippets use rel="nofollow" (any rel passes verification); listing outbound links are always rel="ugc nofollow", or rel="sponsored" for paid boosts. Rechecked weekly; if the link disappears, verification is removed (Priority is kept). Submit responses include hint and next_steps.
Preferred text snippet:
<a href="https://launchsignal.ai/l/acme?utm_source=backlink">Listed on LaunchSignal</a>
Optional image badge: GET /badge/:slug.svg (light) · GET /badge/:slug.svg?theme=dark — approved slugs only.
<a href="https://launchsignal.ai/l/acme?utm_source=badge"><img src="https://launchsignal.ai/badge/acme.svg" alt="Listed on LaunchSignal" width="200" height="54"></a>
POST /api/v1/products/:slug/verify-backlink
Fetches the listing url only (5s timeout, 512KB, text/html, ≤3 redirects, public hosts only) and looks for a link to launchsignal.ai / www.launchsignal.ai. Limit 3 checks per slug per UTC day.
curl -sS -X POST https://launchsignal.ai/api/v1/products/acme/verify-backlink -H 'accept: application/json'
Legacy
POST /api/submit still works (form redirects or JSON). Prefer /api/v1/products.
Error codes
missing_fields— required field emptyinvalid_url/invalid_logo_urlinvalid_email/invalid_categoryinvalid_cursor/invalid_limitinvalid_plan— plan must be priority or featurednot_found— missing or not approvednot_approved— boost requires approved statusrate_limited— verify-backlink limit (3/slug/day)stripe_not_configured— stripe mode without keysserver_error
MCP — https://launchsignal.ai/mcp
Public, authless Model Context Protocol server (Streamable HTTP, JSON). Same listing logic as the REST API — no OAuth this round. Tools: submit_product, list_products, get_product, boost_product (slug + plan; demo / no charge when PAYMENTS_MODE=mock), verify_backlink (slug — same as the verify-backlink endpoint).
{
"mcpServers": {
"launchsignal": {
"url": "https://launchsignal.ai/mcp"
}
}
}
Notes
Submit is always free; Priority/Featured use the boost endpoint after approve (not on submit). MCP OAuth deferred. See also /llms.txt and /openapi.json.