recommend_tools
Ranked best-fit tools for a goal, with why + caveat.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| goal | Yes | ||
| limit | No | ||
| budget | No | 'free' or max USD/mo | |
| offset | No | ||
| verbose | No | ||
| can_code | No | ||
| platform | No |
Ranked best-fit tools for a goal, with why + caveat.
| Name | Required | Description | Default |
|---|---|---|---|
| goal | Yes | ||
| limit | No | ||
| budget | No | 'free' or max USD/mo | |
| offset | No | ||
| verbose | No | ||
| can_code | No | ||
| platform | No |
Changes observed during successful MCP inspections.
Input schema / properties / budget / descriptionPrevious value: -"'free', or max USD per month like '20'"New value: +"'free' or max USD/mo"Input schema / properties / can_code / descriptionRemoved value: -"Can the user read/write code?"Input schema / properties / goal / descriptionRemoved value: -"What the user wants to build or do"Input schema / properties / limit / descriptionRemoved value: -"Default 3"Input schema / properties / limit / maximumRemoved value: -10Input schema / properties / limit / minimumRemoved value: -1Input schema / properties / offsetAdded value: +{
+ "type": "integer"
+}Input schema / properties / platform / descriptionRemoved value: -"Optional: web, macOS, Windows, Linux, terminal, VS Code, iOS..."Input schema / properties / verboseAdded value: +{
+ "type": "boolean"
+}Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
readOnlyHint=true already establishes this is a safe read, so the bar is lower. The description adds a genuinely useful output hint ('with why + caveat') given there is no output schema, but says nothing about how ranking works, where recommendations come from, or whether the caveat is a warning about the tool.
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?
Nine words, no filler, and the core purpose is front-loaded. The extreme terseness ('why + caveat') borders on cryptic, but that is a clarity issue rather than wasted length.
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 7-parameter tool with no output schema and near-zero parameter documentation, this is far too thin. The 'why + caveat' phrase partially compensates for the missing output schema, but the behavior and parameter semantics of a complex query tool are left unexplained.
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?
Seven parameters with only 14% schema description coverage (just 'budget'), so the description carries the burden and delivers nothing: limit, offset, verbose, can_code, and platform are entirely undocumented anywhere. 'for a goal' is the only parameter meaning conveyed.
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 'Ranked best-fit tools for a goal' names a clear action (rank/recommend) and resource (tools) plus the output shape. It does not distinguish itself from siblings like compare_tools, list_alternatives, or search, which are all plausible ways to find tools.
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?
'for a goal' implies a use case but gives no when-to-use versus when-not and never names an alternative such as compare_tools or list_alternatives, which overlap heavily. Nothing tells the agent which of these to pick.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Add one secure layer between your agents and this server.