CodeDebut MCP server
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@CodeDebut MCP serverShow me today's top launches and the Debut of the Day"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
CodeDebut MCP server
Ask your AI assistant what launched today. CodeDebut is a daily launch board for new software: makers launch, people upvote, and the #1 of each day becomes the Debut of the Day. This MCP server lets Claude, ChatGPT, Cursor, VS Code and any other MCP client search those launches, read product pages, find alternatives and follow the daily ranking from inside a chat.
Endpoint:
https://codedebut.com/api/mcp(remote, Streamable HTTP, JSON-RPC 2.0)Auth: none. No account, no API key, no cookies.
Access: read-only. All 10 tools return public data that is also on codedebut.com.
Setup page: https://codedebut.com/mcp · Server card: https://codedebut.com/.well-known/mcp/server-card.json
Contact: hello@codedebut.com
This repository holds the server's public contract: the tool catalogue it returns from tools/list
(tools.json), the registry manifest (server.json) and a small stdio bridge
(index.js) for clients that can only start local servers. The server itself runs on codedebut.com.
Connect
Claude Code
claude mcp add --transport http codedebut https://codedebut.com/api/mcpAdd --scope user to have it in every project.
Claude.ai and Claude Desktop: Settings → Connectors → Add custom connector. Name it CodeDebut, paste the URL and leave the OAuth fields empty.
https://codedebut.com/api/mcpChatGPT: Settings → Apps → Advanced settings → turn on Developer mode, then create an app named CodeDebut with the same URL and no authentication.
Cursor (~/.cursor/mcp.json or .cursor/mcp.json)
{
"mcpServers": {
"codedebut": { "url": "https://codedebut.com/api/mcp" }
}
}VS Code (.vscode/mcp.json; the top-level key is servers)
{
"servers": {
"codedebut": { "type": "http", "url": "https://codedebut.com/api/mcp" }
}
}Windsurf (~/.codeium/windsurf/mcp_config.json)
{
"mcpServers": {
"codedebut": { "serverUrl": "https://codedebut.com/api/mcp" }
}
}Gemini CLI
gemini mcp add --transport http codedebut https://codedebut.com/api/mcpOpenAI Codex (~/.codex/config.toml)
[mcp_servers.codedebut]
url = "https://codedebut.com/api/mcp"Clients that only run local (stdio) servers
{
"mcpServers": {
"codedebut": { "command": "npx", "args": ["-y", "mcp-remote", "https://codedebut.com/api/mcp"] }
}
}Or run the bridge in this repo: git clone https://github.com/kenil9630/codedebut-mcp && cd codedebut-mcp && npm install,
then point your client at node /path/to/codedebut-mcp/index.js. docker build -t codedebut-mcp . builds the
same bridge as an image.
Check it responds
curl -s -X POST https://codedebut.com/api/mcp \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'Related MCP server: AI Tools MCP
Tools
Exact schemas and annotations are in tools.json. Every tool is annotated readOnlyHint: true.
Tool | What it returns | Arguments |
| Launches matching keywords (name, tagline, description, tags, maker) |
|
| One product's full page: description, website, tags, pricing, platforms, maker, launch history with day ranks and upvotes, latest comments |
|
| Products in the same category, closest first (shared tags, then upvotes) |
|
| Top products in a category, most upvoted first |
|
| Categories with product counts and page links | none |
| Every launch on a day, ranked by upvotes. Today's ranks are live; past days are final | optional |
| The #1 launch of a day; the latest finished day by default | optional |
| Most upvoted launches today, this week or this month | optional |
| Open jobs on the CodeDebut jobs board | none |
| How to launch on CodeDebut: submit link, next free launch day, plans and prices | none |
Results carry pageUrl (the product's page on CodeDebut, to cite as the source) and website (the product's own
site). Links to products' sites carry utm_source=codedebut.com&utm_medium=ai_assistant, so makers can see the
visits that came from assistants.
Paid placements are labelled. Featured products are listed first in search_products, browse_category and
find_alternatives results and carry "featured": true. Boosted launches carry "boosted": true. Payment never
changes a rank or an upvote count.
Things to ask
"What launched on CodeDebut today?"
"Find me an open-source uptime monitor on CodeDebut."
"Which product was yesterday's Debut of the Day?"
"What are the alternatives to this week's top AI launch on CodeDebut?"
"How do I launch my app on CodeDebut, and what does Featured cost?"
Limits
120 requests a minute per IP address. Over that, the server answers HTTP 429 with Retry-After: 60.
The endpoint is stateless: no sessions, and GET returns 405 because there is no server-to-client stream.
Launch your product
Every product on CodeDebut gets a permanent page, and that page is what assistants find through this server. Submit yours, free, or see Featured and Launch Day Boost.
Development
npm install
npm test # starts the bridge over stdio and calls two tools on the live serverSet CODEDEBUT_MCP_URL to point the bridge at another endpoint, e.g. a local copy of the site.
License
Available Tools
10 toolsbrowse_categoryBrowse a categoryARead-onlyIdempotentInspect
Top products in one category, most upvoted first, with featured (paid) products first and marked. Use it when a user asks for the best tools of a kind without a specific keyword. Each result has pageUrl (its page on CodeDebut: cite it as the source) and website (the product's own site).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of results (1-25, default 10). | |
| pricing | No | Optional pricing model: "free", "freemium", "paid", "one_time" or "open_source". | |
| category | Yes | Category slug from list_categories (developer-tools, ai, productivity, marketing, design, analytics); the category name also works. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, so the description's added value is the ranking disclosure: most-upvoted first but featured (paid) products promoted and marked. That is a genuine behavioral trait an agent needs in order to interpret and caveat results. Missing pagination/empty-result behavior, but the paid-placement disclosure is the important piece.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences, each doing work: ranking semantics first, selection guidance second, result fields and citation instruction third. No filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description usefully names the two return fields and tells the agent to cite pageUrl as the source, which is real value. Minor gaps on result count/pagination and behavior for unknown categories, but the essential calling information is present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so limit, pricing enum, and the category slug source (list_categories, with fallback to category name) are already fully documented in the schema. The description adds no parameter-level meaning beyond that, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a precise verb and resource ('Top products in one category') plus the ordering semantics (upvotes, featured first). It also distinguishes itself from keyword search by specifying use 'without a specific keyword', which separates it from sibling search_products.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly gives the triggering condition ('user asks for the best tools of a kind without a specific keyword'), which implicitly routes keyword queries elsewhere. It stops short of naming the alternative sibling (search_products) outright, leaving one inference step.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_alternativesFind alternativesARead-onlyIdempotentInspect
Products in the same category as one listed on CodeDebut, closest first (shared tags, then upvotes). Use it when a user asks for alternatives, competitors or "something like X". Featured (paid) products rank first and are marked featured. Each result has pageUrl (its page on CodeDebut: cite it as the source) and website (the product's own site).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of results (1-25, default 10). | |
| product | Yes | A product slug or exact name listed on CodeDebut. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds substantial behavioral detail beyond the read-only annotations, including ranking order, paid featured-product placement, featured marking, and the returned pageUrl and website fields. It also instructs the agent to cite pageUrl as the source, which is useful operational context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: what the tool returns, when to use it, how ranking works, and what fields matter. Every sentence adds useful information without repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter read-only lookup with full schema coverage and no output schema, the description provides enough context: trigger conditions, ranking behavior, featured-product caveat, and key return fields.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so both parameters are already documented in the input schema. The description reinforces that product must be a CodeDebut listing but does not add format or constraint details beyond the schema, making the baseline 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific operation: returning products in the same category as a given CodeDebut listing, ordered by closeness using shared tags and upvotes. This clearly distinguishes it from sibling tools like search_products or browse_category, which do broader retrieval rather than alternatives discovery.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit user-intent triggers: alternatives, competitors, or 'something like X'. That is clear usage guidance, though it does not explicitly contrast with siblings such as search_products or browse_category when those might also be considered.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_debut_of_the_dayDebut of the DayARead-onlyIdempotentInspect
The #1 launch of a day on CodeDebut. Without a date it returns the most recent finished day's winner. Use it when a user asks for the best new product, a recommendation of the day, or something new to try.
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | Day as YYYY-MM-DD (UTC). Defaults to the latest finished day. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds real behavior beyond the annotations: with no date it returns the most recent *finished* day's winner, which tells the agent about partial-day handling not captured by readOnlyHint/idempotentHint. Since annotations already cover the safety profile, the marginal disclosure here is meaningful. It does not describe failure behavior for a future or empty date.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, each load-bearing: what it returns, the default-behavior rule, and the routing condition. The most decision-relevant fact (top launch of a day) is front-loaded with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Sufficient for a single optional-param, read-only lookup: purpose, default, and usage triggers are all covered. Remaining gap is the shape of a 'launch' returned and what happens when a day has no data, which matters slightly more given there is no output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single `date` parameter already documents the YYYY-MM-DD (UTC) pattern and its default. The description only restates the default in prose, adding no format or edge-case guidance beyond the schema. Baseline 3 applies when the schema does the work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource and scope: the top-ranked launch for a single day on CodeDebut, which is clearly distinguishable from list-style siblings like get_launches or get_trending that it does not merely restate. The verb is implicit ('returns') rather than stated, but the resource framing is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly names the user intents that should route here: 'best new product', 'recommendation of the day', 'something new to try'. It also explains the no-argument fallback. It stops short of naming an alternative sibling (e.g. get_trending for multi-day popularity) or stating when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_launchesLaunches on a dayARead-onlyIdempotentInspect
Every launch on one day, ranked by upvotes (today by default; days run 00:00-23:59 UTC). Today's ranks are live; past days have final ranks, and #1 is the Debut of the Day. Use it when a user asks what launched today or on a date. Boosted launches are marked; payment never changes a rank.
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | Day as YYYY-MM-DD (UTC). Defaults to today. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the read-only and idempotent annotations, the description explains ranking by upvotes, UTC day boundaries, live versus final ranks, the Debut of the Day designation, boosted marking, and payment neutrality. These are substantive behavioral details that help the agent understand what the results mean.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core behavior and then adds only high-value details: default date, UTC boundary, rank freshness, Debut designation, and ranking integrity. Every sentence contributes to correct selection or interpretation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter listing tool with clear annotations but no output schema, the description supplies enough context about what is returned and how rankings work. An agent can select and invoke it correctly without additional explanation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is already complete for the single date parameter, including the YYYY-MM-DD pattern and UTC/default-today behavior. The description adds the precise 00:00-23:59 UTC day-boundary semantics, which gives useful meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: every launch on one day, ranked by upvotes. The daily scope and default behavior clearly separate it from product search, category browsing, and trending tools, even without naming every sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly says to use this tool when a user asks what launched today or on a date. It gives clear usage context but does not name when to prefer alternatives such as get_debut_of_the_day or get_trending.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_launch_optionsLaunch on CodeDebutARead-onlyIdempotentInspect
How to launch a product on CodeDebut: the submit link, the next free launch day, how ranking works, and the paid plans with prices. Use it when a user wants to launch, list or promote their own product.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety profile is covered. The description adds real value by disclosing that the payload is static informational content (pricing, schedule, ranking rules) rather than per-user data, which tells an agent the call is safe to make speculatively; it does not discuss format or response shape.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: the first front-loads the returned content as a compact list, the second gives the trigger. Nothing is repeated from the title and no words are wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, read-only reference tool with full annotation coverage and no output schema, the description covers everything needed to decide to call it and what it will contain. A brief note on the response format (e.g. documentation-style text) would close the last gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is no parameter ambiguity to resolve and the baseline of 4 applies. The description correctly implies the call is argument-free by describing only fixed content it returns.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource (how to launch on CodeDebut) and enumerates the exact contents: submit link, next free launch day, ranking mechanics, and paid plan prices. It is clearly distinguishable from siblings like get_launches (existing launches) or search_products, which do not answer 'how do I launch'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The sentence 'Use it when a user wants to launch, list or promote their own product' gives a clear triggering condition. It stops short of naming exclusions or routing to specific siblings (e.g. get_launches for browsing existing launches), so it is clear but not exhaustive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_productGet a product pageARead-onlyIdempotentInspect
The full public page of one product on CodeDebut, by slug or exact name: description, website, category, tags, pricing, platforms, maker, launch history with day ranks and upvotes, and the latest comments. Use it after any other tool when the user wants details on one product. Cite pageUrl as the source.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | The product slug from another tool, or its exact name, e.g. "acme-notes". |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety profile is covered. The description adds value the annotations cannot: it discloses the returned payload shape (launch history with day ranks and upvotes, latest comments) and a citation obligation for pageUrl, though it omits comment count or result-size limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the resource and its contents, followed by the usage rule and the citation requirement. The content enumeration is dense but every clause helps an agent decide relevance, so nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the burden of describing return values and does so concretely, plus a citation rule. The only gap is how much comment data comes back and whether large pages are truncated, which an agent might want to know.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single parameter already documents both the slug form and the exact-name fallback with an example. The description's 'by slug or exact name' merely restates the schema, adding no syntax or matching-behavior detail beyond it, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('the full public page of one product on CodeDebut') and enumerates exactly what the page contains (description, website, pricing, platforms, launch history, comments). This lets an agent distinguish it immediately from list-style siblings like search_products or get_launches.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Use it after any other tool when the user wants details on one product' gives a clear sequencing rule and the triggering intent. It stops short of naming a when-not case or explicitly routing browsing queries to search_products, so it is clear context without full exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_trendingTrending launchesARead-onlyIdempotentInspect
The most upvoted launches today, over the last 7 days or over the last 30 days. Use it when a user asks what is popular, new or trending in software.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of results (1-25, default 10). | |
| period | No | "today", "week" (last 7 days, default) or "month" (last 30 days). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so safety is covered. The description adds the ranking basis (upvotes) and the time-window semantics, but says nothing about result ordering stability, exhaustion of the list, or what a result entry represents.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no filler, with the core definition front-loaded and the usage hint second. Every clause carries information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
A simple zero-required-parameter read tool whose parameters are fully documented in the schema; the description covers scope, ranking, and intent adequately. It slightly under-delivers on what a returned launch contains, which matters more since there is no output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: both limit (1-25, default 10) and period (today/week/month with defaults) are fully documented in the schema. The description restates the period concept in prose without adding granularity such as default limit or the week=7 days mapping, so it is baseline-level.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific resource (launches) with a specific ranking criterion (most upvoted) and the three supported time windows. It implicitly distinguishes itself from siblings like get_launches and get_debut_of_the_day by emphasizing popularity, but never names or contrasts those alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Use it when a user asks what is popular, new or trending in software" gives a clear trigger condition mapped to user intent. It does not state when to prefer get_launches, browse_category, or get_debut_of_the_day instead, so exclusions are missing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_categoriesList categoriesARead-onlyIdempotentInspect
CodeDebut's categories, busiest first, with how many products each has and the category page url. Use the slugs with browse_category or the category filter of search_products.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, closed-world behavior, so the bar is lower. The description still adds real context the annotations do not: the sort order is by popularity ('busiest first'), and the result includes per-category product counts and a page URL. It does not mention pagination, result caps, or whether the list is exhaustive, which is the remaining gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence split into two clauses: the first front-loads what is returned and its ordering, the second tells the agent what to do with the slugs. No restatement of the name or title and no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description must carry the return-value burden, and it does: ordering, the product count, and the 'url' field. Combined with annotations that cover the safety profile and a zero-parameter schema, an agent has everything needed to call this correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline of 4 applies; there is nothing for the description to disambiguate in the input. The schema is a bare empty object, which is consistent with the description's implicit claim that the call is parameterless.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('CodeDebut's categories') and immediately characterizes the return: ordering ('busiest first'), contents ('how many products each has'), and the 'url' field. An agent can distinguish this discovery tool from get_product or search_products without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly routes the agent: 'Use the slugs with browse_category or the category filter of search_products,' naming two sibling tools and the exact value this tool supplies to them. It stops short of stating when-not to call this tool (e.g., when the agent already knows the category slug), so it is a strong 4 rather than a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_jobsJobsARead-onlyIdempotentInspect
Open jobs on the CodeDebut jobs board: title, company, location and the link to apply.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered. The description adds value beyond that by disclosing the shape of each returned record (title, company, location, apply link), which matters since there is no output schema. It stops short of stating volume, ordering, or whether results are paginated/truncated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single compact sentence with the resource front-loaded and the payload described after the colon – no filler. It reads as a fragment rather than a full sentence, but every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no parameters and no output schema, the description carries the burden of explaining what comes back, and it does name the four fields. It is still silent on result count, ordering, freshness ('open' is undefined), and pagination, which are the remaining things an agent would want before relying on the output.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to disambiguate; the baseline for a parameterless tool is 4. The field list it does provide describes the response rather than inputs, which is a bonus rather than a gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the resource (open jobs on the CodeDebut jobs board) and enumerates the returned fields (title, company, location, apply link), so an agent can tell this is a jobs listing distinct from the product-oriented siblings. It never uses an explicit verb like 'list', but the intent is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied by the phrase 'open jobs on the CodeDebut jobs board' – there is no statement of when to call this versus alternatives, and no exclusions or prerequisites. In practice the sibling set is entirely product/category focused, so the domain separation does most of the routing work, but the description itself contributes nothing explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_productsSearch launchesARead-onlyIdempotentInspect
Find software launched on CodeDebut by keyword (matches name, tagline, description, tags and maker). Use it when a user asks for a tool that does X, e.g. "uptime monitor" or "AI meeting notes". Optionally narrow to a category or pricing model. Featured (paid) products that match rank first and are marked featured. Each result has pageUrl (its page on CodeDebut: cite it as the source) and website (the product's own site). Call get_product with a slug for the full page.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of results (1-25, default 10). | |
| query | Yes | Keywords or a short phrase, e.g. "screenshot API" (case-insensitive). Products matching every word rank first. | |
| pricing | No | Optional pricing model: "free", "freemium", "paid", "one_time" or "open_source". | |
| category | No | Category slug from list_categories (developer-tools, ai, productivity, marketing, design, analytics); the category name also works. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, non-destructive), and the description goes well beyond them by disclosing the ranking bias — featured/paid matches rank first and are flagged — which the agent needs in order to weigh results. It also explains the two result URL fields and instructs the agent to cite pageUrl as the source, plus the get_product escalation path.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose, then usage trigger, then filters, then result fields — a sensible order with no filler. Slightly longer than strictly necessary, but each sentence carries information the agent can act on.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description correctly compensates by describing the shape of results (pageUrl, website, featured marking) and the ranking order. Combined with annotations and a fully documented schema, an agent has everything needed to call this and interpret the response.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so query, limit, pricing, and category are all documented in the schema itself. The description only restates that category and pricing are optional narrowing filters and does not add syntax, format, or interaction detail beyond what the schema provides. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource — 'Find software launched on CodeDebut by keyword' — and enumerates the matched fields (name, tagline, description, tags, maker). This clearly separates it from sibling lookups like get_product (slug-based detail) and browse_category (taxonomy traversal).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a concrete triggering condition ('when a user asks for a tool that does X') with two worked example queries, and routes to get_product for full detail. It stops short of naming when to prefer browse_category, list_categories, or find_alternatives, so sibling disambiguation is only partially covered.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
10 tool updates
v1.0.0- First observed
browse_category - First observed
find_alternatives - First observed
get_debut_of_the_day - First observed
get_launch_options - First observed
get_launches - First observed
get_product - First observed
get_trending - First observed
list_categories - First observed
list_jobs - First observed
search_products
TDQS
Scored across 10 tools
Most tools have clearly distinct roles: keyword search (search_products), category browsing (browse_category), competitor lookup (find_alternatives), and single-product detail (get_product) are well separated by their descriptions. The only real friction is among the ranking tools—get_launches, get_trending, and get_debut_of_the_day all return upvote-ordered launch lists for overlapping time windows, so an agent may need to re-read descriptions to pick.
Every name follows a clean snake_case verb_noun pattern (get_, list_, search_, find_, browse_) with the resource as the noun. No camelCase or stylistic mixing, and the plural/singular usage is predictable (get_product singular for one item, list_categories/search_products plural).
Ten tools is squarely in the right range for a product-discovery directory. Each tool covers a distinct query mode—detail, keyword search, category browse, alternatives, launches, trending, jobs, launch info—with no filler.
The read-side lifecycle for a launch directory is well covered: discover (search/browse/alternatives/trending), inspect (get_product, categories, launches, debut), plus jobs and launch guidance. Minor gaps remain—no keyword/filter search on the jobs board, no way to enumerate a maker's other products, and comments are only a truncated slice of get_product rather than their own fetch.
Maintenance
Related MCP Connectors
Product Hunt for AI tools. Search, submit, upvote from Claude Code or Cursor.
Search community-ranked software products: trending launches, details, and alternatives to a tool.
AI-powered SaaS tool discovery API. Search 150+ curated business tools and get recommendations.
LaunchOnIt is a weekly launch platform and discovery directory for modern SaaS, developer tools, and AI startups. This MCP server connects AI assistants directly to LaunchOnIt’s live software catalog, rankings, and launch infrastructure. Search launched products, weekly leaderboards and podium winners, check open launch slots, and submit a product launch for review.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to access Product Hunt data via GraphQL API, including posts, products, and rankings. Part of the Pipeworx MCP gateway.11 npmMIT
- AlicenseAqualityBmaintenanceEnables AI assistants to search a curated database of 200+ AI tool cards with pricing, platforms, use cases, and source links, so users can ask which tool to use for a task and get grounded recommendations.114 npm1MIT
- AlicenseAqualityCmaintenanceEnables AI agents to query real-time SaaS pricing tiers, compare developer tools side-by-side, and retrieve recent product changelogs.4MIT

AppmanAi MCPofficial
AlicenseNot gradedqualityBmaintenanceEnables AI assistants to query live App Store and Google Play data — keyword demand, rank history, top charts, competitor sets, reviews and ratings — across 100+ countries, directly inside a chat instead of a dashboard. Exposes 35 read-only tools covering app search, ASO keyword profiling, ranking trajectories, and worldwide market comparisons through a remote OAuth-authenticated endpoint.2MIT