Search MakerRadar's launched products: details, alternatives, comparisons, weeks.
Maintained bymakerradar.io(verified)Also a maintainer?
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Add a listing's logo (kind logo, replaces the old one) or a photo (kind photo) from a public https image URL. We fetch and check it like an upload; on a live listing it waits for review. Needs listings:write.
A public https:// image (PNG, JPEG, WebP or GIF).
logo or photo.
The listing's id.
What the image shows (photos). Optional.
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
Run in a terminal
claude mcp add --transport http mcp https://api.makerradar.io/mcp
Add a listing's logo (kind logo, replaces the old one) or a photo (kind photo) from a public https image URL. We fetch and check it like an upload; on a live listing it waits for review. Needs listings:write.
| Argument | Type | Description |
|---|---|---|
| alt | string | What the image shows (photos). Optional. |
| url* | string | A public https:// image (PNG, JPEG, WebP or GIF). |
| kind* | string | logo or photo. |
| productId* | string | The listing's id. |
{
"type": "object",
"required": [
"productId",
"kind",
"url"
],
"properties": {
"alt": {
"type": "string",
"description": "What the image shows (photos). Optional."
},
"url": {
"type": "string",
"description": "A public https:// image (PNG, JPEG, WebP or GIF)."
},
"kind": {
"type": "string",
"description": "logo or photo."
},
"productId": {
"type": "string",
"description": "The listing's id."
}
}
}Choose Free or Premium (and optionally a week, as get_launch_options names it) and send the listing for review. MakerRadar reviews every listing before it goes live. Needs launches:write.
| Argument | Type | Description |
|---|---|---|
| tier* | string | free or premium. |
| week | string | A week from get_launch_options (week-46-2026). Premium needs one; Free may omit it. |
| productId* | string | The listing's id. |
{
"type": "object",
"required": [
"productId",
"tier"
],
"properties": {
"tier": {
"type": "string",
"description": "free or premium."
},
"week": {
"type": "string",
"description": "A week from get_launch_options (week-46-2026). Premium needs one; Free may omit it."
},
"productId": {
"type": "string",
"description": "The listing's id."
}
}
}Compare two products (by their slugs): each one's public details side by side, which has more community upvotes, and the comparison page.
| Argument | Type | Description |
|---|---|---|
| a* | string | One product's URL slug. |
| b* | string | The other product's URL slug. |
{
"type": "object",
"required": [
"a",
"b"
],
"properties": {
"a": {
"type": "string",
"description": "One product's URL slug."
},
"b": {
"type": "string",
"description": "The other product's URL slug."
}
}
}Ask the person you're helping to let you act for their MakerRadar account. Returns a short code and a link: show them both, they sign in and approve you on MakerRadar. Then call connect_account_finish with deviceCode until it returns your token. No sign-in needed to start.
| Argument | Type | Description |
|---|---|---|
| client | string | Your name as the person should see it (e.g. Claude Code). Optional. |
{
"type": "object",
"properties": {
"client": {
"type": "string",
"description": "Your name as the person should see it (e.g. Claude Code). Optional."
}
}
}After connect_account: trade deviceCode for your agent token once the person has approved. Returns status pending (ask again after `interval` seconds), denied, expired, or approved with the token — shown once; send it as Authorization: Bearer <token> on every call.
| Argument | Type | Description |
|---|---|---|
| deviceCode* | string | The deviceCode connect_account returned. |
{
"type": "object",
"required": [
"deviceCode"
],
"properties": {
"deviceCode": {
"type": "string",
"description": "The deviceCode connect_account returned."
}
}
}Draft a listing on MakerRadar for the person you're helping: give their product's website and, optionally, a name, tagline and description. Returns reviewUrl, a link the person opens to sign in, check the listing and submit it; nothing is published until they do (and MakerRadar reviews it). If the site is already listed, returns its page instead. No sign-in needed.
| Argument | Type | Description |
|---|---|---|
| url* | string | The product's website (https://…). |
| name | string | Its name, 2–60 characters. Optional. |
| tagline | string | One line on what it does, 4–90 characters. Optional. |
| description | string | What it does and who it's for, 40–4000 characters of plain Markdown. Optional. |
{
"type": "object",
"required": [
"url"
],
"properties": {
"url": {
"type": "string",
"description": "The product's website (https://…)."
},
"name": {
"type": "string",
"description": "Its name, 2–60 characters. Optional."
},
"tagline": {
"type": "string",
"description": "One line on what it does, 4–90 characters. Optional."
},
"description": {
"type": "string",
"description": "What it does and who it's for, 40–4000 characters of plain Markdown. Optional."
}
}
}List the alternatives to one product (by its slug) in the order its alternatives page ranks them: editor's picks first, then makers' own declarations, then by relevance and upvotes.
| Argument | Type | Description |
|---|---|---|
| slug* | string | The product's URL slug. |
| limit | integer | Max results (default 10, max 50). |
{
"type": "object",
"required": [
"slug"
],
"properties": {
"slug": {
"type": "string",
"description": "The product's URL slug."
},
"limit": {
"type": "integer",
"maximum": 50,
"description": "Max results (default 10, max 50)."
}
}
}The HTML badge for the listing's own website: put it on the homepage and, while it's there, the listing earns what MakerRadar's badge earns (the answer says what). Needs listings:read.
| Argument | Type | Description |
|---|---|---|
| productId* | string | The listing's id. |
{
"type": "object",
"required": [
"productId"
],
"properties": {
"productId": {
"type": "string",
"description": "The listing's id."
}
}
}The launch weeks open to a listing: Free (with spots left per week) and Premium. Use before choose_launch. Needs launches:write.
| Argument | Type | Description |
|---|---|---|
| productId* | string | The listing's id. |
{
"type": "object",
"required": [
"productId"
],
"properties": {
"productId": {
"type": "string",
"description": "The listing's id."
}
}
}Get one launch week's full results (by its week, e.g. week-41-2026), ranked by upvotes — any week since MakerRadar began, not only the live one.
| Argument | Type | Description |
|---|---|---|
| week* | string | The week, as in its URL: week-41-2026. |
{
"type": "object",
"required": [
"week"
],
"properties": {
"week": {
"type": "string",
"description": "The week, as in its URL: week-41-2026."
}
}
}Everything update_listing accepts: the categories, technologies, platforms, audiences and tags to pick from (by slug), the pricing models, currencies and price periods, the demo video hosts, the link kinds with an example of each, and each field's limits. Call it before editing so you never guess a value. Needs listings:read.
No arguments.
{
"type": "object",
"properties": {}
}Who you're acting for on MakerRadar: the account an agent token belongs to, whether it's ready to list products, and what the token may do. Needs an agent token (Authorization: Bearer mr_…).
No arguments.
{
"type": "object",
"properties": {}
}One listing of the person you act for, by id: everything you can edit (copy, category, pricing, price from, where it's based, best for, demo video, technologies, platforms, audiences, tags, links elsewhere, quick answers, logo and photos with their ids), its status, what's left to make it complete, and whether it can be sent for review. Needs listings:read.
| Argument | Type | Description |
|---|---|---|
| productId* | string | The listing's id. |
{
"type": "object",
"required": [
"productId"
],
"properties": {
"productId": {
"type": "string",
"description": "The listing's id."
}
}
}What a listing can buy on MakerRadar — Premium launch, featured and boosted weeks, ads, newsletter sponsorship, done-for-you submissions — each with its id, today's price and what it gets. Use before start_checkout. No sign-in needed.
No arguments.
{
"type": "object",
"properties": {}
}Get the full public details of one product by its slug.
| Argument | Type | Description |
|---|---|---|
| slug* | string | The product's URL slug. |
{
"type": "object",
"required": [
"slug"
],
"properties": {
"slug": {
"type": "string",
"description": "The product's URL slug."
}
}
}List MakerRadar's categories, each with how many listed products it has and its page, most products first.
No arguments.
{
"type": "object",
"properties": {}
}List the products on MakerRadar's live launch board (this ISO week's, or the last week until the new one opens), ranked by upvotes.
No arguments.
{
"type": "object",
"properties": {}
}The listings of the account you act for on MakerRadar, newest first: each one's status (draft, in review, live…), its page once public, and where its maker manages it. Needs an agent token with listings:read.
No arguments.
{
"type": "object",
"properties": {}
}The orders of the person you act for, newest first: what each bought, for which listing and week, and whether it's paid. Use after start_checkout to see when they've paid. Needs billing:checkout.
No arguments.
{
"type": "object",
"properties": {}
}Remove one photo from a listing's gallery, by its id from get_my_listing. It's gone at once. Needs listings:write.
| Argument | Type | Description |
|---|---|---|
| photoId* | string | The photo's id, from get_my_listing. |
| productId* | string | The listing's id. |
{
"type": "object",
"required": [
"productId",
"photoId"
],
"properties": {
"photoId": {
"type": "string",
"description": "The photo's id, from get_my_listing."
},
"productId": {
"type": "string",
"description": "The listing's id."
}
}
}Search MakerRadar's directory of launched products by keyword (matches name and tagline), ranked by all-time upvotes. Narrow it by platform, audience, use case or the country it's based in (combined, a product matches them all); an unknown value is an error naming the valid ones. Omit everything to list the most-upvoted products.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Max results (default 20, max 50). |
| query | string | Keywords to match in the name or tagline. |
| country | string | Only products based in this country: a two-letter code (DE, GB, US) or its slug (germany). |
| useCase | string | Only products for this use case: a slug as on /use-cases. |
| audience | string | Only products made for this audience: a slug as on /for (developers, designers, marketers, founders…). |
| platform | string | Only products that run on this platform: a slug as on /platforms (web, ios, android, mac, windows, linux, browser-extension, api, cli). |
{
"type": "object",
"properties": {
"limit": {
"type": "integer",
"maximum": 50,
"description": "Max results (default 20, max 50)."
},
"query": {
"type": "string",
"description": "Keywords to match in the name or tagline."
},
"country": {
"type": "string",
"description": "Only products based in this country: a two-letter code (DE, GB, US) or its slug (germany)."
},
"useCase": {
"type": "string",
"description": "Only products for this use case: a slug as on /use-cases."
},
"audience": {
"type": "string",
"description": "Only products made for this audience: a slug as on /for (developers, designers, marketers, founders…)."
},
"platform": {
"type": "string",
"description": "Only products that run on this platform: a slug as on /platforms (web, ios, android, mac, windows, linux, browser-extension, api, cli)."
}
}
}Make one of a listing's photos (by its id from get_my_listing) the cover its page leads with. Needs listings:write.
| Argument | Type | Description |
|---|---|---|
| photoId* | string | The photo's id, from get_my_listing. |
| productId* | string | The listing's id. |
{
"type": "object",
"required": [
"productId",
"photoId"
],
"properties": {
"photoId": {
"type": "string",
"description": "The photo's id, from get_my_listing."
},
"productId": {
"type": "string",
"description": "The listing's id."
}
}
}Replace a listing's quick answers (the questions buyers ask, answered by the maker): up to 6, each a question of 8–140 characters and an answer of 2–600. An empty list removes them. On a live listing, answers that add a link or are mostly rewritten wait for review. Needs listings:write.
| Argument | Type | Description |
|---|---|---|
| answers* | array | The full list (it replaces the old one); empty removes them all. |
| productId* | string | The listing's id. |
{
"type": "object",
"required": [
"productId",
"answers"
],
"properties": {
"answers": {
"type": "array",
"items": {
"type": "object",
"required": [
"question",
"answer"
],
"properties": {
"answer": {
"type": "string",
"maxLength": 600
},
"question": {
"type": "string",
"maxLength": 140
}
}
},
"maxItems": 6,
"description": "The full list (it replaces the old one); empty removes them all."
},
"productId": {
"type": "string",
"description": "The listing's id."
}
}
}Start a checkout for the person you act for: an item from get_pricing for one of their listings (a placement needs the listing approved first). Returns checkoutUrl, the payment page: give it to the person to pay — you never pay, and nothing is charged until they do. We also email them the link. Holds a week's spot while they pay. Needs billing:checkout.
| Argument | Type | Description |
|---|---|---|
| item* | string | An item id from get_pricing (PREMIUM_LAUNCH). |
| week | string | For an item bought by the week: the week it starts (week-46-2026). Omit for the first open one. |
| weeks | integer | For an item bought by the week: how many weeks it runs (1, 2 or 4). |
| coupon | string | A coupon code the person gave you. Optional. |
| productId* | string | The listing it's for. |
{
"type": "object",
"required": [
"item",
"productId"
],
"properties": {
"item": {
"type": "string",
"description": "An item id from get_pricing (PREMIUM_LAUNCH)."
},
"week": {
"type": "string",
"description": "For an item bought by the week: the week it starts (week-46-2026). Omit for the first open one."
},
"weeks": {
"type": "integer",
"maximum": 4,
"description": "For an item bought by the week: how many weeks it runs (1, 2 or 4)."
},
"coupon": {
"type": "string",
"description": "A coupon code the person gave you. Optional."
},
"productId": {
"type": "string",
"description": "The listing it's for."
}
}
}Start proving the person controls a listing's website: method dns_txt, html_file or meta_tag returns a token and exactly where to put it. If you can deploy the site or edit its DNS, place it, then call verify_ownership. A proven owner can't have the listing taken over. Needs listings:write.
| Argument | Type | Description |
|---|---|---|
| method* | string | dns_txt, html_file or meta_tag. |
| productId* | string | The listing's id. |
{
"type": "object",
"required": [
"productId",
"method"
],
"properties": {
"method": {
"type": "string",
"description": "dns_txt, html_file or meta_tag."
},
"productId": {
"type": "string",
"description": "The listing's id."
}
}
}Submit a product as a draft listing on MakerRadar, owned by the person you act for: its website and, optionally, a name, tagline and description (we fill in the rest from the site). Already listed sites come back as listed instead. Then get_my_listing, and choose_launch to send it for review. Needs listings:write.
| Argument | Type | Description |
|---|---|---|
| url* | string | The product's website (https://…). |
| name | string | Its name, 2–60 characters. Optional. |
| tagline | string | What it does in one line, 4–90 characters. Optional. |
| description | string | What it does and who it's for, 40–4000 characters of plain Markdown. Optional. |
{
"type": "object",
"required": [
"url"
],
"properties": {
"url": {
"type": "string",
"description": "The product's website (https://…)."
},
"name": {
"type": "string",
"description": "Its name, 2–60 characters. Optional."
},
"tagline": {
"type": "string",
"description": "What it does in one line, 4–90 characters. Optional."
},
"description": {
"type": "string",
"description": "What it does and who it's for, 40–4000 characters of plain Markdown. Optional."
}
}
}List the most-upvoted products on MakerRadar of all time (the Top 100 board).
| Argument | Type | Description |
|---|---|---|
| limit | integer | Max results (default 20, max 100). |
{
"type": "object",
"properties": {
"limit": {
"type": "integer",
"maximum": 100,
"description": "Max results (default 20, max 100)."
}
}
}Change any of a listing's details: name, tagline, description, category, pricingModel, priceFrom, basedIn, bestFor, demoVideo, technologies, platforms, audiences, tags, links. Send only what changes; null or an empty list clears a field. Categories, technologies, platforms, audiences and tags are slugs from get_listing_options. A demo video must be a YouTube, Vimeo, Loom or Arcade link to a real, public video. Links are the listing's pages elsewhere (X, GitHub, LinkedIn, App Store, Google Play, Product Hunt, YouTube channel, Discord, Instagram), one per kind. A draft changes at once; on a live listing a new name, category, video or link, or a rewrite, waits for review. Needs listings:write.
| Argument | Type | Description |
|---|---|---|
| name | string | A new name, 2–60 characters. |
| tags | array | Its tags (slugs of existing tags only); replaces the list. |
| links | array | Its links elsewhere, one per kind, each on that kind's own site (get_listing_options shows each kind's example); replaces the list, and an empty list clears it. |
| basedIn | string | null | Where the business is, like "Bristol, UK" (up to 60 characters). |
| bestFor | string | null | Who it suits best, finishing "Best for …" (up to 40 characters). |
| tagline | string | A new tagline, 4–90 characters. |
| category | string | The one category it's filed under (a slug). |
| audiences | array | Who it's for (slugs); replaces the list. |
| demoVideo | string | null | A YouTube, Vimeo, Loom or Arcade link to a public video or demo. |
| platforms | array | Where it runs (slugs); replaces the list. |
| priceFrom | object | null | Its cheapest paid plan; null clears it. |
| productId* | string | The listing's id. |
| description | string | A new description, 40–4000 characters. |
| pricingModel | string | |
| technologies | array | What it's built with (slugs); replaces the list. |
{
"type": "object",
"required": [
"productId"
],
"properties": {
"name": {
"type": "string",
"description": "A new name, 2–60 characters."
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 8,
"description": "Its tags (slugs of existing tags only); replaces the list."
},
"links": {
"type": "array",
"items": {
"type": "object",
"required": [
"kind",
"url"
],
"properties": {
"url": {
"type": "string"
},
"kind": {
"enum": [
"twitter",
"github",
"linkedin",
"appstore",
"playstore",
"producthunt",
"youtube",
"discord",
"instagram"
],
"type": "string"
}
}
},
"maxItems": 9,
"description": "Its links elsewhere, one per kind, each on that kind's own site (get_listing_options shows each kind's example); replaces the list, and an empty list clears it."
},
"basedIn": {
"type": [
"string",
"null"
],
"description": "Where the business is, like \"Bristol, UK\" (up to 60 characters)."
},
"bestFor": {
"type": [
"string",
"null"
],
"description": "Who it suits best, finishing \"Best for …\" (up to 40 characters)."
},
"tagline": {
"type": "string",
"description": "A new tagline, 4–90 characters."
},
"category": {
"type": "string",
"description": "The one category it's filed under (a slug)."
},
"audiences": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 4,
"description": "Who it's for (slugs); replaces the list."
},
"demoVideo": {
"type": [
"string",
"null"
],
"description": "A YouTube, Vimeo, Loom or Arcade link to a public video or demo."
},
"platforms": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 8,
"description": "Where it runs (slugs); replaces the list."
},
"priceFrom": {
"type": [
"object",
"null"
],
"required": [
"amount",
"currency",
"period"
],
"properties": {
"amount": {
"type": [
"number",
"string"
],
"description": "Up to 100000."
},
"period": {
"enum": [
"once",
"month",
"year"
],
"type": "string"
},
"currency": {
"enum": [
"USD",
"EUR",
"GBP",
"INR",
"AUD",
"CAD",
"AED",
"SGD",
"CHF",
"NZD"
],
"type": "string"
}
},
"description": "Its cheapest paid plan; null clears it."
},
"productId": {
"type": "string",
"description": "The listing's id."
},
"description": {
"type": "string",
"description": "A new description, 40–4000 characters."
},
"pricingModel": {
"enum": [
"free",
"freemium",
"paid",
"open_source"
],
"type": "string"
},
"technologies": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 20,
"description": "What it's built with (slugs); replaces the list."
}
}
}Check the token from start_ownership_check is in place; if it is, the person becomes the listing's verified owner. DNS can take a few minutes to show. Needs listings:write.
| Argument | Type | Description |
|---|---|---|
| productId* | string | The listing's id. |
{
"type": "object",
"required": [
"productId"
],
"properties": {
"productId": {
"type": "string",
"description": "The listing's id."
}
}
}We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Nov 4, 2026.