VibeCodePicks
Server Details
Pick AI coding tools by goal: community-sentiment rankings, pricing, free tiers, alternatives.
- Status
- Healthy
- Uptime
- 99.0% over 21 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- suanrongbaicai/vibecodepicks
- GitHub Stars
- 0
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 16 tools
Several pairs are nearly indistinguishable: check_updates vs whats_new (both 'new items since last check, max 3, tracked state'), save_preferences vs set_preferences (both write tag sets, but silently feed different tools), and scenario vs list_scenarios (both rank tools by community sentiment per use case). feedback vs log_choice also overlap heavily, with log_choice even having a 'feedback' action alongside the separate feedback tool. An agent would frequently pick the wrong one of each pair.
Consistent snake_case and a dominant verb_noun pattern (check_updates, compare_tools, list_alternatives, log_choice, recommend_tools), but several tools break it with bare verbs or nouns: fetch, search, feedback, subscribe, scenario, whats_new, forget_me. Readable overall, but the naming gives no clue about the check_updates/whats_new or save/set_preferences splits.
16 tools is on the heavy side for a tool-directory server, and the count is inflated by near-duplicate pairs (two preference setters, two feeds, two scenario rankers, two action loggers). Consolidating those would yield a tighter ~10-12 tool surface where each earns its place.
Coverage is actually strong: search, fetch, compare, alternatives, categories, scenarios, recommendations, user actions, preferences, subscription, and deletion (forget_me) are all present. Minor gaps like no review/rating write or contribution path, but core discovery-to-decision workflows are covered.
Available Tools
16 toolscheck_updatesCheck matching updatesAInspect
Tools added or updated since this user's last check that match their saved tags. Optional since (YYYY-MM-DD or catalog v). When nothing matches, returns {new:0} — a minimal response when nothing new matches. Tracks last_checked. Max 3 items. Does not change recommend_tools.
| Name | Required | Description | Default |
|---|---|---|---|
| since | No | YYYY-MM-DD or catalog version; defaults to last_checked |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations, the description discloses several useful behaviors: it tracks last_checked (consistent with readOnlyHint=false, since the call has a side effect), caps results at 3 items, and returns {new:0} when nothing matches. That last detail is valuable for parsing an apparently empty response, and the non-interference with recommend_tools clarifies downstream effects.
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 short and front-loads the core purpose, but the sentence 'When nothing matches, returns {new:0} — a minimal response when nothing new matches' restates the same fact twice and wastes space that could have gone to sibling differentiation.
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 one-parameter, non-destructive tool with no output schema, the definition covers the return shape ({new:0}), the result cap, the state it mutates, and its relationship to recommend_tools. The only meaningful omission is which sibling to use for a broader unfiltered feed.
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 'since' parameter is fully documented in the schema with the same 'YYYY-MM-DD or catalog version; defaults to last_checked' wording. The description adds no format or edge-case detail beyond that, 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?
The description names a specific resource and scope: tools added or updated since the user's last check, filtered by their saved tags. The clause 'Does not change recommend_tools' helps separate it from the recommendation siblings, though the near-neighbor whats_new is never named, so full sibling differentiation is missing.
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 context is implied by 'since this user's last check' and the note that 'since' is optional and defaults to last_checked. However, there is no explicit statement of when to choose this over whats_new or fetch, and no exclusions or prerequisites are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compare_toolsCompare two toolsCRead-onlyIdempotentInspect
Side-by-side of two tools + comparison page url.
| Name | Required | Description | Default |
|---|---|---|---|
| a | Yes | ||
| b | Yes | ||
| verbose | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish that this is a read-only, idempotent, closed-world operation, lowering the disclosure burden. The description adds that the result includes a comparison-page URL, but it does not explain the verbose flag or any error behavior.
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 a single front-loaded fragment with no wasted sentences. However, its extreme brevity leaves key details unstated rather than making it efficiently concise.
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 tool with three undocumented parameters and no output schema, the description is too sparse. It should clarify the input format for a and b, explain verbose, and describe the returned comparison URL or result shape beyond a passing mention.
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 0%, so the description needs to compensate for all three parameters. It implies that a and b are the two tools being compared, but it says nothing about the expected identifier format or what verbose changes.
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 makes clear that the tool produces a side-by-side comparison of two tools and returns a comparison-page URL. It identifies the resource and output, though it does not differentiate this tool from siblings such as recommend_tools or list_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?
There is no explicit guidance on when to use this tool, when not to use it, or which sibling tool to choose instead. The intended use can only be inferred from the name and the phrase 'two tools.'
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
feedbackRecord feedbackAInspect
Adjust this user's check_updates ranking for a listed tool. action is one of used, not_useful, not_relevant. Stores only the tool id and that enum. Does not change recommend_tools.
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | ||
| tool_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare a non-read-only, non-destructive, non-idempotent mutation, and the description adds real value by stating what is persisted ('only the tool id and that enum') and what is not affected (recommend_tools). However, with idempotentHint=false the description never says whether repeated calls compound ranking changes, and it gives no confirmation of what the call returns.
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 with the write effect front-loaded, then the enum, then the scope boundary. No filler, no restatement of the title.
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 mutation with no output schema and no annotations beyond safety hints, the definition covers persistence scope and side-effect boundaries well. It still omits idempotency behavior on repeat calls and any indication of whether a result/confirmation is returned, which an agent needs before submitting feedback.
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 0%, so the description must carry parameter meaning; it does clarify that action is restricted to the three listed values and that tool_id plus action are the only stored fields. But the enum is already in the schema, and tool_id is never explained (e.g. where the agent obtains a valid id), leaving the primary parameter ambiguous.
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 (adjust), a specific resource (this user's check_updates ranking), and the scope (for a listed tool). It also names the sibling surfaces it relates to (check_updates, recommend_tools), so an agent can place it in the toolset without opening the 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?
Usage is only implied: the agent must infer it is called after seeing a check_updates result and that action must reflect the outcome. The exclusion 'Does not change recommend_tools' is a helpful boundary, but there is no guidance on when to use this versus log_choice, which sounds functionally adjacent among the siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fetchGet tool detailsBRead-onlyIdempotentInspect
Tool profile by id. Default: summary, best_for, price, free, 2 strengths, 2 weaknesses, url. fields: summary description best_for not_for skill coding pricing platforms strengths weaknesses alternatives video compare official all.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| fields | No | ||
| verbose | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No explicit behavioral disclosure beyond what the annotations already provide.
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?
Compact and front-loaded: purpose first, then the default return, then the field options. Every clause carries information, though the telegraphic list style without punctuation is somewhat cryptic to parse.
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 and readOnly annotations, the description's enumeration of default fields does useful work in describing what comes back. But it omits `verbose` semantics and any usage context, so it is adequate rather than complete for a 3-param lookup tool.
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?
With 0% schema description coverage, the description must compensate, and it partly does: it enumerates the valid `fields` values (summary, best_for, alternatives, all, etc.) and states the default set returned. However, `verbose` is never explained and the relationship between `verbose` and `fields` is left implicit. Coverage of 2 of 3 params with one clear gap justifies a 3.
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 resource ('tool profile') and its key ('by id'), so an agent knows this returns one tool's details. It doesn't name sibling alternatives like search or compare_tools, but the single-tool profile scope is inferable and distinct.
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?
There is no explicit when-to-use or when-not-to-use guidance. The
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
forget_meForget meADestructiveIdempotentInspect
Delete this client's anonymous id, tag profile and last_checked. Feedback is first folded into anonymous aggregate counters (tool_id × used/not_useful/not_relevant, no uid). Those aggregate counts are kept. If you pass a feed key, that keyed feed record is deleted too.
| Name | Required | Description | Default |
|---|---|---|---|
| key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag destructiveHint and idempotentHint, and the description goes well beyond them: it explains the ordering (feedback is folded into aggregates before deletion), what survives (uid-free aggregate counters), and the extra record removed when a key is supplied. That is exactly the 'what gets destroyed and what is retained' context an agent needs before a destructive call.
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 the deletion scope, followed by retention and the conditional key behavior — no filler sentences. The parenthetical 'tool_id × used/not_useful/not_relevant' is terse to the point of being slightly cryptic, which costs a point.
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 destructive, no-output-schema tool this covers the essentials: scope of deletion, retained aggregates, and conditional extra deletion. The notable remaining gap is any signal about irreversibility or confirmation, though destructiveHint partially covers that.
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 0% and the lone 'key' property is undocumented, but the description rescues it by establishing that it is a feed key whose record is additionally deleted. The format of the key and its optionality are still left to inference, keeping it short of a 5.
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 concrete verb (delete) and names the exact resources destroyed: anonymous id, tag profile, last_checked. It is clearly distinguishable from siblings like feedback or save_preferences, though it never names an alternative explicitly.
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 implied by the destructive verb and the 'If you pass a feed key' conditional, but there is no explicit statement of when an agent should call this versus feedback or save_preferences, nor any prerequisite or confirmation guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_alternativesFind alternativesCRead-onlyIdempotentInspect
Alternatives to a tool. Rows: id|name|$from/mo|free.
| Name | Required | Description | Default |
|---|---|---|---|
| tool | Yes | ||
| limit | No | ||
| offset | No | ||
| verbose | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and closed-world, so the safety profile is covered. The description adds a genuinely useful behavioral fact absent from structured data: the returned row format (id|name|$from/mo|free). It says nothing about pagination behavior despite limit/offset existing, so it stops short of full disclosure.
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 short fragments with no filler, and the core purpose is front-loaded. The terse 'Rows: id|name|$from/mo|free' is efficient but cryptic enough that it trades clarity for brevity rather than being optimally sized.
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 four parameters at 0% schema coverage, no output schema, and no sibling differentiation, the definition is too thin for the tool's complexity. It covers the return shape but omits the parameter semantics and usage routing an agent needs to call it 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?
Schema description coverage is 0% for all four parameters, and the description compensates for none of them. It never clarifies whether 'tool' is a name, id or slug, nor what limit/offset/verbose do, leaving an agent to guess at invocation syntax.
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 plus title state the resource clearly (alternatives to a given tool) and even preview the returned row shape, so an agent knows what it gets. However, it never contrasts itself with sibling tools like compare_tools or recommend_tools, so differentiation is left to inference.
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?
There is no when-to-use guidance and no mention of alternatives such as compare_tools or recommend_tools, which plausibly overlap with this tool. The only implied usage is the name itself.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_categoriesList categoriesCRead-onlyIdempotentInspect
Category and use-case keys with tool ids.
| Name | Required | Description | Default |
|---|---|---|---|
| verbose | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and openWorldHint=false, so the safety profile is covered. The description adds no behavioral context of its own — no note on result size, whether it is a static catalog, or how results relate to other tools.
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?
It is a single front-loaded fragment with zero padding, which satisfies conciseness. But the terseness crosses into under-specification rather than efficiency — there is no wasted text because there is almost no text.
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 read-only listing tool with no output schema, the description should at least explain the return shape and the undocumented 'verbose' parameter. Neither is covered, leaving the agent under-informed about both input and 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?
There is one parameter, 'verbose', with 0% schema description coverage, and the description never explains what it does or what changes when it is set. The phrase 'with tool ids' is the only hint at output content and does not clearly map to the parameter.
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 fragment 'Category and use-case keys with tool ids' does convey the resource being listed and hints at the return contents, going slightly beyond the title 'List categories'. However, it has no verb and no scope statement, so an agent cannot distinguish it from siblings like list_alternatives or list_scenarios without opening the 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?
There is no when-to-use, when-not-to-use, or alternative-tool guidance anywhere in the description. With sibling tools such as list_alternatives, list_scenarios, and search present, the agent is left to guess which listing tool applies.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_scenariosList scenariosBRead-onlyIdempotentInspect
Use-case scenarios (e.g. ai-game-development, code-review) with top tools by community sentiment.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this a read-only, idempotent, closed-world operation, so the safety profile is covered. The description adds one genuinely useful behavioral detail beyond that: results are ranked/curated by community sentiment rather than being a raw enumeration. It does not mention item count, pagination, or output 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?
A single short clause with no filler, and the concrete examples are front-loaded. It reads as a label rather than a complete instruction, but 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?
For a simple parameterless read tool with no output schema, the description covers the resource and the ranking basis. It is still thin: it does not say what fields come back per scenario or how the tool relates to the sibling 'scenario' tool, so an agent has only a partial picture.
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, which is the baseline-4 case; there is nothing for the description to disambiguate. It adds nothing needed here and loses nothing.
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 identifies the resource ('use-case scenarios') and gives concrete examples (ai-game-development, code-review), which helps an agent understand what a scenario is. However, it is a sentence fragment with no verb, so it never states that it lists/returns them, and it does nothing to distinguish itself from siblings like list_categories, list_alternatives, or scenario.
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?
There is no when-to-use guidance at all. In a sibling set containing both 'scenario' and 'list_scenarios', plus list_categories and list_alternatives, the description gives no rule for choosing among them, leaving the agent to guess from names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
log_choiceLog a choice or purchaseAInspect
Record a tool the user explicitly picked/rejected/tried/starred, or PURCHASED. Call it with action 'purchased' right after the user tells you they bought a paid plan of a listed tool (ask first; never log silently), and again later with action 'feedback' once they have used it for a while (e.g. weekly), passing rating and what worked / fell short. Optional fields apply to purchased/feedback only. Stored anonymously under the key; forget_me deletes it. picked/rejected also shape whats_new.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| key | No | ||
| plan | No | Plan bought, e.g. 'Pro monthly' | |
| combo | No | Ids of other tools used together with this one | |
| action | Yes | ||
| period | No | ||
| rating | No | ||
| worked | No | What worked well (short, no personal data) | |
| price_usd | No | Price paid per period in USD | |
| fell_short | No | What fell short (short, no personal data) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations establish this is a non-read-only, non-destructive write with idempotentHint=false, and the description adds genuinely useful context beyond that: data is stored anonymously under the key, forget_me deletes it, consent must be obtained first, and picked/rejected influence whats_new. It doesn't cover failure modes or duplicate handling, but the privacy and side-effect disclosure is strong.
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 record purpose is front-loaded and the parenthetical guidance ('ask first; never log silently', 'e.g. weekly') is actionable rather than filler. It is dense and slightly run-on, but each sentence adds a distinct instruction.
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 10-parameter logging tool with no output schema, the description covers action semantics, optional-field scoping, consent, privacy, and downstream effects. It leaves minor gaps around combo/plan usage and return behavior, but nothing critical for calling it 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?
With only 50% schema coverage, the description compensates by explaining that rating and 'what worked / fell short' apply to feedback and that optional fields are scoped to purchased/feedback. It also frames the 'key' as the anonymous storage handle. combo/plan/period/price_usd remain only thinly described (plan has its own schema description), leaving a small 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 opens with a specific verb+resource ('Record a tool the user explicitly picked/rejected/tried/starred, or PURCHASED') and enumerates the action values. It distinguishes itself downstream by noting picked/rejected shape whats_new and that forget_me deletes the data, though it doesn't explicitly separate itself from save_preferences, which could read as a sibling for similar user-preference data.
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 timing and conditions: call with 'purchased' right after the user reports buying a paid plan, 'ask first; never log silently', then 'feedback' after a period of use (e.g. weekly). It also states an exclusion ('Optional fields apply to purchased/feedback only'), so the agent knows which action modes constrain parameters.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
recommend_toolsRecommend toolsBRead-onlyIdempotentInspect
Ranked best-fit tools for a goal, with why + caveat. Follows this ask only — saved tags do not change the ranking. On a new user's first call, also returns short onboarding questions (project types, platforms, budget, preferences, tools in use) for you to ask, then call set_preferences with tags only.
| Name | Required | Description | Default |
|---|---|---|---|
| goal | Yes | ||
| limit | No | ||
| budget | No | 'free' or max USD/mo | |
| offset | No | ||
| verbose | No | ||
| can_code | No | ||
| platform | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already establish read-only, idempotent, and closed-world behavior. The description adds meaningful context beyond that: results include why and caveat, saved tags do not affect ranking, and a new user's first call returns onboarding questions that should be followed by set_preferences.
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?
It is two compact sentences with the ranking behavior front-loaded and the first-call flow clearly appended. The phrasing is dense but each sentence carries useful information; minor ambiguity comes from 'Follows this ask only.'
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 read-only recommendation tool with no output schema, the description explains the returned content and the onboarding return path, which is helpful. It is still incomplete because most of the seven parameters are left unexplained despite very low schema description coverage.
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 only 14%, with 7 parameters and only budget documented in the schema. The description mentions the goal implicitly but adds no meaning for limit, offset, verbose, can_code, platform, or how budget should be supplied, so it does not compensate for the coverage 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 states a specific action and output: 'Ranked best-fit tools for a goal, with why + caveat.' This distinguishes it from a raw search, but it does not explicitly contrast it with siblings such as compare_tools or list_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?
It gives useful scoping guidance: 'Follows this ask only — saved tags do not change the ranking,' and explains the first-call onboarding flow plus the follow-up call to set_preferences. However, it never states when to use this tool instead of search, compare_tools, or list_alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
save_preferencesSave your preferencesBIdempotentInspect
Replace the keyed-feed interest tags. Send allowed tags only (project types, platforms, budget, preferences) — do not send project names or other free text (they are dropped and never stored). Plus the feed mode ('by_interests' = only matching tools; 'all_new' = every new tool). Only used by whats_new.
| Name | Required | Description | Default |
|---|---|---|---|
| key | No | ||
| mode | No | ||
| interests | No | Allowed tags only (project types, platforms, budget, preferences). Do not send a project name. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (idempotent, non-destructive, not read-only), so the bar is lower. The description does add real value by explaining that unrecognized free text is 'dropped and never stored' and that tag replacement is wholesale, but it says nothing about what a write to an unknown key does or what the response looks like.
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 carrying a distinct constraint: allowed tag types, the drop behavior for free text, and the mode semantics. Front-loaded with the core action; 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?
For a three-parameter write tool with an existing safety annotation set, the description covers the risky parameter (interests) and the enum well. It falls short on the undefined 'key' parameter and on distinguishing this tool's role from the sibling set_preferences.
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 only 33%, and the description compensates well for the two documented parameters, explaining both enum meanings of mode and adding a 'do not send project names' restriction on interests. However, the 'key' parameter is left undefined in both schema and description, which is a meaningful 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 states a specific verb and resource: 'Replace the keyed-feed interest tags' plus the feed mode. It also names the consuming tool ('Only used by whats_new'), which helps separate it from set_preferences, though the actual distinction between the two is never spelled out.
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 'Only used by whats_new' line implies context, but there is no explicit instruction on when an agent should call this rather than the sibling set_preferences, nor any note on prerequisites such as an existing key. Usage is implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scenarioScenario rankingCRead-onlyIdempotentInspect
Tools competing in one scenario, ranked by community sentiment, with compact strengths/weak spots here.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | ||
| limit | No | ||
| verbose | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and openWorldHint=false, so safety and determinism are covered. The description adds the useful note that results include compact strengths/weak spots ranked by community sentiment, but says nothing about pagination, ordering details, or what happens with an unknown slug.
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. It is efficient, though the dangling 'here' is slightly awkward 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 and 0% parameter coverage, the description carries the full burden but only partially describes the return content and explains none of the inputs. For a three-parameter tool it leaves too much for the agent to guess.
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 0% across three parameters, so the schema itself explains nothing. The description only implies that a scenario identifier is needed ('one scenario') and gives no meaning for limit or verbose, leaving the majority of parameters undocumented.
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 clear resource (tools competing in one scenario) and the ranking basis (community sentiment), which is more specific than the bare name 'scenario'. However, it never names or distinguishes itself from close siblings like list_scenarios or compare_tools, so an agent must infer the boundary.
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?
There is no statement of when to use this over list_scenarios, compare_tools, or recommend_tools, and no prerequisites for the required slug. The trailing phrase 'here' gives no routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
searchSearch toolsBRead-onlyIdempotentInspect
Find vibe coding / AI tools. Rows: id|name|category|$from/mo|free(1/0). Use fetch(id) for details.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | Yes | e.g. 'no-code SaaS builder' | |
| offset | No | ||
| verbose | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and openWorldHint=false, so the safety profile is covered. The description adds the result row shape and the fetch hand-off, but says nothing about pagination behavior, result limits, or what 'verbose' changes — gaps that matter given no annotations cover them.
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 purpose, and the result-shape and next-step hints are packed in without waste. Nothing could be removed without losing 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?
With no output schema, the description usefully sketches the row format, which is a genuine contribution. But limit/offset/verbose remain unexplained in both schema and description, leaving real gaps for a 4-parameter tool.
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 only 25% (query alone is documented), and the description adds no meaning for limit, offset, or verbose. The 'Rows:' clause describes return values rather than parameter behavior, so it does not compensate for the missing parameter documentation.
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 vibe coding / AI tools') and even previews the result columns, which is unusually concrete. It partially differentiates from siblings by routing detail lookups to fetch(id), though it doesn't distinguish itself from recommend_tools or list_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?
The single instruction 'Use fetch(id) for details' gives one clear hand-off to a sibling, which is useful routing. However there is no guidance on when to use search versus recommend_tools, list_alternatives, or list_categories, so the agent must infer the selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_preferencesSave preference tagsAIdempotentInspect
Store the user's onboarding answers as non-sensitive tags only: project_types, platforms, budget (free|under_20|any), preferences (nocode|code|open-source|free-tier), and tools_in_use (catalog ids). Unknown values are dropped — never send names, emails, code, project names or free text. Used by check_updates, not by recommend_tools.
| Name | Required | Description | Default |
|---|---|---|---|
| budget | No | ||
| platforms | No | ||
| preferences | No | ||
| tools_in_use | No | Catalog ids of tools already in use | |
| project_types | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the write/idempotent/non-destructive profile, so the description's real contribution is the validation and privacy behavior: unknown values are silently dropped, and personal data (names, emails, code, project names, free text) must never be sent. That is exactly the kind of consequence an agent needs before calling a write tool, though the response on success or partial drop is not stated.
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 purpose and the allowed tag set are front-loaded, then the safety constraint, then the routing note — a sensible order with little filler. The closing "Used by check_updates, not by recommend_tools" fragment is dense and slightly cryptic, but it is short enough not to hurt.
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 five-parameter, zero-required write tool with no output schema, the definition covers purpose, per-field values, validation behavior, and a privacy rule, which is close to what an agent needs. The residual holes are the value domains of `platforms`/`project_types` and the absence of any indication of what a successful call returns.
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?
With only 20% schema description coverage, the description carries most of the documentation burden and does so: it names all five parameters and supplies allowed values for `budget` (free|under_20|any) and `preferences` (nocode|code|open-source|free-tier), plus the meaning of `tools_in_use` as catalog ids. It stops short of specifying what valid `platforms` and `project_types` values look like.
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?
"Store the user's onboarding answers as non-sensitive tags" gives a concrete verb and resource, and the enumeration of the five tag groups makes the scope unambiguous. The one gap is the sibling `save_preferences`, which is nearly synonymous with this tool and is never distinguished from it.
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?
"Store the user's onboarding answers" implies the onboarding context for invocation, which is useful. However, "Used by check_updates, not by recommend_tools" describes which tools consume the stored data rather than when an agent should call this tool, and it gives no guidance on choosing between this and `save_preferences`.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
subscribeSubscribe to the feedAInspect
Create an anonymous feed key (no email/account). Save it in long-term memory / project instructions / rules, or connect with /api/mcp?k=KEY.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, openWorldHint=false, idempotentHint=false, and destructiveHint=false, so the safety profile is covered. The description usefully adds that the key is anonymous and requires no email/account, which clarifies auth requirements. It does not mention idempotency behavior (e.g., whether repeated calls create multiple keys), leaving that gap to the annotation.
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 short sentences with the core action front-loaded and no filler. The second sentence packs storage and connection advice but remains reasonably tight and readable.
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 tool with no output schema, the description covers what is created and what the agent should do with it, implicitly identifying the key as the return value. No output schema means return-value detail is unnecessary, so this is largely complete for the tool's complexity.
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 has zero parameters, so there is no parameter semantics to explain and the baseline is 4. The description does not need to document inputs, and the empty schema confirms this.
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?
Specific verb 'Create' and resource 'anonymous feed key' clearly state the tool's action, and the parenthetical 'no email/account' adds scope. No sibling tool overlaps, so differentiation is not needed. An agent can tell what this tool does without opening the 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?
The description gives no explicit when-to-use or when-not-to-use guidance; the sentences describe post-creation actions such as saving the key or connecting via '/api/mcp?k=KEY'. With no alternatives among siblings, implied usage is to subscribe to the feed, but that inference is left to the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
whats_newWhat's new for youAInspect
Daily feed. With key: honors the saved feed mode — by_interests: new items relevant to ANY saved project; all_new: every new item (tagged with a project when one matches). Max 3/day, one line each, never repeats. {new:0} = nothing. Call at most daily. Without key: stateless by since/interests. Never affects other tools.
| Name | Required | Description | Default |
|---|---|---|---|
| key | No | ||
| limit | No | ||
| since | No | ||
| interests | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations it adds real behavioral context: rate limit (max 3/day, call at most daily), output shape (one line each, {new:0} = nothing), non-repetition (implying persisted state, consistent with readOnlyHint=false), and non-interference with other tools. It does not explain what state the non-read-only call mutates.
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?
Very dense and front-loaded, with the feed nature stated first and the mode rules following. The telegraphic notation ({new:0} = nothing) trades some readability for brevity, and no sentence is wasteful.
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 4-param, no-output-schema tool the description supplies most of what an agent needs: mode selection, cadence cap, non-repetition, and the empty-result signal. It falls short only by omitting limit semantics and the precise return structure.
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?
With 0% schema description coverage the description must carry all four params, but it only explains key, since, and interests (via the with/without-key modes). The limit parameter is never addressed, leaving a real 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 opening 'Daily feed' plus the mode breakdown communicates that this returns new items on a daily cadence, distinct from siblings like search or fetch. It is clear but telegraphic, and it never names an alternative tool to distinguish itself from.
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 clear operational context: call at most daily, and it explains the with-key vs without-key calling modes (saved feed mode vs stateless since/interests). No sibling alternative or explicit when-not is named, so it stops short of a 5.
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.
14 tool updates
- Added
check_updates - Changed
compare_tools3 fields changed- removed
Input schema / properties / a / descriptionRemoved value: -"first tool id (use search to resolve names)" - removed
Input schema / properties / b / descriptionRemoved value: -"second tool id (use search to resolve names)" - removed
Input schema / properties / verbose / descriptionRemoved value: -"returns long-form fields"
- Added
feedback - Changed
fetch4 fields changed- removed
Input schema / properties / fields / descriptionRemoved value: -"which profile fields to return" - removed
Input schema / properties / fields / enumRemoved value: -[ - "summary", - "description", - "best_for", - "not_for", - "skill", - "coding", - "pricing", - "platforms", - "strengths", - "weaknesses", - "alternatives", - "video", - "compare", - "official", - "all" -] - removed
Input schema / properties / id / descriptionRemoved value: -"tool id from search/recommend results (e.g. 'cursor')" - removed
Input schema / properties / verbose / descriptionRemoved value: -"returns long-form fields"
- Changed
forget_me1 field changed- removed
Input schema / properties / key / descriptionRemoved value: -"the user's anonymous feed key from subscribe"
- Changed
list_alternatives4 fields changed- removed
Input schema / properties / limit / descriptionRemoved value: -"number of results, default 5" - removed
Input schema / properties / offset / descriptionRemoved value: -"paging offset from the previous result" - removed
Input schema / properties / tool / descriptionRemoved value: -"tool id to find alternatives for" - removed
Input schema / properties / verbose / descriptionRemoved value: -"returns long-form fields"
- Changed
list_categories1 field changed- removed
Input schema / properties / verbose / descriptionRemoved value: -"returns long-form fields"
- Changed
log_choice5 fields changed- removed
Input schema / properties / action / descriptionRemoved value: -"what the user decided" - removed
Input schema / properties / id / descriptionRemoved value: -"tool id" - removed
Input schema / properties / key / descriptionRemoved value: -"the user's anonymous feed key from subscribe" - removed
Input schema / properties / period / descriptionRemoved value: -"billing period" - removed
Input schema / properties / rating / descriptionRemoved value: -"1-5 rating for feedback"
- Changed
recommend_tools7 fields changed- changed
Input schema / properties / budget / descriptionPrevious value: -"'free' or max USD per month"New value: +"'free' or max USD/mo" - removed
Input schema / properties / can_code / descriptionRemoved value: -"whether the user can code (true/false)" - removed
Input schema / properties / goal / descriptionRemoved value: -"the project in plain words" - removed
Input schema / properties / limit / descriptionRemoved value: -"number of results, default 5" - removed
Input schema / properties / offset / descriptionRemoved value: -"paging offset from the previous result" - removed
Input schema / properties / platform / descriptionRemoved value: -"target platform, e.g. 'web', 'ios', 'mac'" - removed
Input schema / properties / verbose / descriptionRemoved value: -"returns long-form fields"
- Changed
save_preferences5 fields changed- added
Input schema / properties / interestsAdded value: +{ + "description": "Allowed tags only (project types, platforms, budget, preferences). Do not send a project name.", + "items": { + "type": "string" + }, + "type": "array" +} - removed
Input schema / properties / key / descriptionRemoved value: -"the user's anonymous feed key from subscribe" - removed
Input schema / properties / mode / descriptionRemoved value: -"'by_interests' (only matching new tools) or 'all_new' (every new tool)" - removed
Input schema / properties / projectsRemoved value: -{ - "description": "list of projects to watch (replaces the whole list each time)", - "items": { - "properties": { - "interests": { - "description": "short interest tags", - "items": { - "type": "string" - }, - "type": "array" - }, - "name": { - "description": "project name", - "type": "string" - } - }, - "required": [ - "name", - "interests" - ], - "type": "object" - }, - "type": "array" -} - removed
Input schema / requiredRemoved value: -[ - "projects" -]
- Changed
scenario3 fields changed- removed
Input schema / properties / limit / descriptionRemoved value: -"number of results, default 5" - removed
Input schema / properties / slug / descriptionRemoved value: -"scenario slug from list_scenarios" - removed
Input schema / properties / verbose / descriptionRemoved value: -"returns long-form fields"
- Changed
search4 fields changed- removed
Input schema / properties / limit / descriptionRemoved value: -"number of results, default 5" - removed
Input schema / properties / offset / descriptionRemoved value: -"paging offset from the previous result" - changed
Input schema / properties / query / descriptionPrevious value: -"plain words, e.g. 'no-code SaaS builder'"New value: +"e.g. 'no-code SaaS builder'" - removed
Input schema / properties / verbose / descriptionRemoved value: -"returns long-form fields"
- Added
set_preferences - Changed
whats_new4 fields changed- removed
Input schema / properties / interests / descriptionRemoved value: -"interest tags to filter by, for a one-off look without a key" - removed
Input schema / properties / key / descriptionRemoved value: -"the user's anonymous feed key from subscribe" - removed
Input schema / properties / limit / descriptionRemoved value: -"number of results, default 5" - removed
Input schema / properties / since / descriptionRemoved value: -"only tools added on or after this date, format YYYY-MM-DD (default: 7 days ago)"
11 tool updates
- Changed
compare_tools3 fields changed- added
Input schema / properties / a / descriptionAdded value: +"first tool id (use search to resolve names)" - added
Input schema / properties / b / descriptionAdded value: +"second tool id (use search to resolve names)" - added
Input schema / properties / verbose / descriptionAdded value: +"returns long-form fields"
- Changed
fetch4 fields changed- added
Input schema / properties / fields / descriptionAdded value: +"which profile fields to return" - added
Input schema / properties / fields / enumAdded value: +[ + "summary", + "description", + "best_for", + "not_for", + "skill", + "coding", + "pricing", + "platforms", + "strengths", + "weaknesses", + "alternatives", + "video", + "compare", + "official", + "all" +] - added
Input schema / properties / id / descriptionAdded value: +"tool id from search/recommend results (e.g. 'cursor')" - added
Input schema / properties / verbose / descriptionAdded value: +"returns long-form fields"
- Changed
forget_me1 field changed- added
Input schema / properties / key / descriptionAdded value: +"the user's anonymous feed key from subscribe"
- Changed
list_alternatives4 fields changed- added
Input schema / properties / limit / descriptionAdded value: +"number of results, default 5" - added
Input schema / properties / offset / descriptionAdded value: +"paging offset from the previous result" - added
Input schema / properties / tool / descriptionAdded value: +"tool id to find alternatives for" - added
Input schema / properties / verbose / descriptionAdded value: +"returns long-form fields"
- Changed
list_categories1 field changed- added
Input schema / properties / verbose / descriptionAdded value: +"returns long-form fields"
- Changed
log_choice5 fields changed- added
Input schema / properties / action / descriptionAdded value: +"what the user decided" - added
Input schema / properties / id / descriptionAdded value: +"tool id" - added
Input schema / properties / key / descriptionAdded value: +"the user's anonymous feed key from subscribe" - added
Input schema / properties / period / descriptionAdded value: +"billing period" - added
Input schema / properties / rating / descriptionAdded value: +"1-5 rating for feedback"
- Changed
recommend_tools7 fields changed- changed
Input schema / properties / budget / descriptionPrevious value: -"'free' or max USD/mo"New value: +"'free' or max USD per month" - added
Input schema / properties / can_code / descriptionAdded value: +"whether the user can code (true/false)" - added
Input schema / properties / goal / descriptionAdded value: +"the project in plain words" - added
Input schema / properties / limit / descriptionAdded value: +"number of results, default 5" - added
Input schema / properties / offset / descriptionAdded value: +"paging offset from the previous result" - added
Input schema / properties / platform / descriptionAdded value: +"target platform, e.g. 'web', 'ios', 'mac'" - added
Input schema / properties / verbose / descriptionAdded value: +"returns long-form fields"
- Changed
save_preferences5 fields changed- added
Input schema / properties / key / descriptionAdded value: +"the user's anonymous feed key from subscribe" - added
Input schema / properties / mode / descriptionAdded value: +"'by_interests' (only matching new tools) or 'all_new' (every new tool)" - added
Input schema / properties / projects / descriptionAdded value: +"list of projects to watch (replaces the whole list each time)" - added
Input schema / properties / projects / items / properties / interests / descriptionAdded value: +"short interest tags" - added
Input schema / properties / projects / items / properties / name / descriptionAdded value: +"project name"
- Changed
scenario3 fields changed- added
Input schema / properties / limit / descriptionAdded value: +"number of results, default 5" - added
Input schema / properties / slug / descriptionAdded value: +"scenario slug from list_scenarios" - added
Input schema / properties / verbose / descriptionAdded value: +"returns long-form fields"
- Changed
search4 fields changed- added
Input schema / properties / limit / descriptionAdded value: +"number of results, default 5" - added
Input schema / properties / offset / descriptionAdded value: +"paging offset from the previous result" - changed
Input schema / properties / query / descriptionPrevious value: -"e.g. 'no-code SaaS builder'"New value: +"plain words, e.g. 'no-code SaaS builder'" - added
Input schema / properties / verbose / descriptionAdded value: +"returns long-form fields"
- Changed
whats_new4 fields changed- added
Input schema / properties / interests / descriptionAdded value: +"interest tags to filter by, for a one-off look without a key" - added
Input schema / properties / key / descriptionAdded value: +"the user's anonymous feed key from subscribe" - added
Input schema / properties / limit / descriptionAdded value: +"number of results, default 5" - added
Input schema / properties / since / descriptionAdded value: +"only tools added on or after this date, format YYYY-MM-DD (default: 7 days ago)"
1 tool update
- Changed
log_choice8 fields changed- changed
Input schema / properties / action / enumPrevious value: -[ - "picked", - "rejected", - "tried", - "starred" -]New value: +[ + "picked", + "rejected", + "tried", + "starred", + "purchased", + "feedback" +] - added
Input schema / properties / comboAdded value: +{ + "description": "Ids of other tools used together with this one", + "items": { + "type": "string" + }, + "type": "array" +} - added
Input schema / properties / fell_shortAdded value: +{ + "description": "What fell short (short, no personal data)", + "type": "string" +} - added
Input schema / properties / periodAdded value: +{ + "enum": [ + "month", + "year", + "one_time" + ], + "type": "string" +} - added
Input schema / properties / planAdded value: +{ + "description": "Plan bought, e.g. 'Pro monthly'", + "type": "string" +} - added
Input schema / properties / price_usdAdded value: +{ + "description": "Price paid per period in USD", + "type": "number" +} - added
Input schema / properties / ratingAdded value: +{ + "maximum": 5, + "minimum": 1, + "type": "integer" +} - added
Input schema / properties / workedAdded value: +{ + "description": "What worked well (short, no personal data)", + "type": "string" +}
1 tool update
- Changed
save_preferences1 field changed- added
Input schema / properties / modeAdded value: +{ + "enum": [ + "by_interests", + "all_new" + ], + "type": "string" +}
2 tool updates
- Added
list_scenarios - Added
scenario
11 tool updates
- Changed
compare_tools1 field changed- added
Input schema / properties / verboseAdded value: +{ + "type": "boolean" +}
- Changed
fetch3 fields changed- added
Input schema / properties / fieldsAdded value: +{ + "items": { + "type": "string" + }, + "type": "array" +} - removed
Input schema / properties / id / descriptionRemoved value: -"Tool id, e.g. 'cursor'" - added
Input schema / properties / verboseAdded value: +{ + "type": "boolean" +}
- Added
forget_me - Changed
list_alternatives3 fields changed- added
Input schema / properties / limitAdded value: +{ + "type": "integer" +} - added
Input schema / properties / offsetAdded value: +{ + "type": "integer" +} - added
Input schema / properties / verboseAdded value: +{ + "type": "boolean" +}
- Changed
list_categories1 field changed- added
Input schema / properties / verboseAdded value: +{ + "type": "boolean" +}
- Added
log_choice - Changed
recommend_tools9 fields changed- changed
Input schema / properties / budget / descriptionPrevious value: -"'free', or max USD per month like '20'"New value: +"'free' or max USD/mo" - removed
Input schema / properties / can_code / descriptionRemoved value: -"Can the user read/write code?" - removed
Input schema / properties / goal / descriptionRemoved value: -"What the user wants to build or do" - removed
Input schema / properties / limit / descriptionRemoved value: -"Default 3" - removed
Input schema / properties / limit / maximumRemoved value: -10 - removed
Input schema / properties / limit / minimumRemoved value: -1 - added
Input schema / properties / offsetAdded value: +{ + "type": "integer" +} - removed
Input schema / properties / platform / descriptionRemoved value: -"Optional: web, macOS, Windows, Linux, terminal, VS Code, iOS..." - added
Input schema / properties / verboseAdded value: +{ + "type": "boolean" +}
- Added
save_preferences - Changed
search4 fields changed- added
Input schema / properties / limitAdded value: +{ + "type": "integer" +} - added
Input schema / properties / offsetAdded value: +{ + "type": "integer" +} - changed
Input schema / properties / query / descriptionPrevious value: -"What the user wants, e.g. 'no-code SaaS builder' or 'cursor'"New value: +"e.g. 'no-code SaaS builder'" - added
Input schema / properties / verboseAdded value: +{ + "type": "boolean" +}
- Added
subscribe - Added
whats_new
6 tool updates
- First observed
compare_tools - First observed
fetch - First observed
list_alternatives - First observed
list_categories - First observed
recommend_tools - First observed
search
Related MCP Connectors
AI tools ranked by real web traffic, with pricing, free plans, alternatives and LLM API benchmarks.
Free read-only StackPick rankings of AI dev tools. Scores are never paid.
Search and compare 4,700+ AI tools: pricing, features, alternatives. Free, no API key.
Find and compare software, SaaS, developer, and AI tools: alternatives, pricing, platforms, trends.
Related MCP Servers
AlicenseAqualityBmaintenanceSearch, rank and compare open-source AI projects (self-hosted AI apps, coding agents, MCP servers) with scores, GitHub facts and open-source picks for paid tools.6339 npmMIT- AlicenseAqualityAmaintenanceGive your AI agent access to 8,400+ software tools — search, compare, get pricing, find alternatives, and discover the best tool for any use case.11268 npm4MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI assistants like Claude Code and Cursor to get evidence-based tool and workflow recommendations from community data.MIT
- AlicenseNot gradedqualityDmaintenanceProvides AI-powered development tools including code generation, refactoring, debugging, performance optimization, and test generation, along with smart prompts for code analysis and documentation, and a built-in knowledge base of coding best practices.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.