Skip to main content
Glama

Search replacement recipes

search_recipes
Read-onlyIdempotent

Use when the user wants a cheaper way to do a job and names a feature or kind of tool rather than one product: 'cheaper keyword research', 'forms without Typeform', 'what can replace our CRM'. Filter by the vendor they pay for, a feature, a category or a path type (switch, cheaper plan, open source, pay per use, agent skill, build it). Returns compact recipe cards, each with its best priced path that saves money; get_recipe has every path, cost and source. intent 'new' prices options for a job they don't pay for yet; requirements labels must-haves. For one product they pay for, find_alternatives re-costs it at their own price and usage. Stackcut stores the arguments of tool calls to improve its recommendations (vendor names, prices, seats, features, usage numbers, billing amounts and project descriptions; account keys only as a one-way hash, billing and validation sources not at all; never IP addresses). Tool results are summarized; exit tools log only result counts, qualification flags and public evidence statuses, not answer contents. Don't send personal data or secrets.

Input Schema

NameRequiredDescriptionDefault
sortNorelevance
limitNo
queryNoFree text, e.g. 'client approval portal' or 'semrush backlinks'
intentNonew: they pay for no tool yet: costs, never savings (default replace)
vendorNoProduct currently paid for, e.g. 'Airtable', 'Salesforce', 'Semrush Pro'
featureNoA feature they rely on, e.g. 'rank tracking', 'e-signatures'
categoryNoCategory name from list_categories, e.g. 'CRM', 'SEO data'
path_typeNoOnly recipes offering this kind of replacement
requirementsNoOptions per recipe: excluded kinds dropped, must-haves labeled

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • addedInput schema / properties / intent
      Added value: +{
      +  "description": "new: they pay for no tool yet: costs, never savings (default replace)",
      +  "enum": [
      +    "new",
      +    "replace"
      +  ],
      +  "maxLength": 2000,
      +  "type": "string"
      +}
    • addedInput schema / properties / requirements
      Added value: +{
      +  "additionalProperties": false,
      +  "description": "Options per recipe: excluded kinds dropped, must-haves labeled",
      +  "properties": {
      +    "budget_monthly_usd": {
      +      "maximum": 1000000,
      +      "minimum": 0,
      +      "type": "number"
      +    },
      +    "exclude": {
      +      "description": "self_hosted: on your own server; bundled: needs a suite they'd pay for",
      +      "items": {
      +        "enum": [
      +          "self_hosted",
      +          "open_source",
      +          "build",
      +          "agent_skill",
      +          "bundled",
      +          "per_use",
      +          "free_tier",
      +          "trial",
      +          "per_seat",
      +          "non_commercial"
      +        ],
      +        "maxLength": 2000,
      +        "type": "string"
      +      },
      +      "maxItems": 10,
      +      "type": "array",
      +      "uniqueItems": true
      +    },
      +    "must_have": {
      +      "description": "e.g. ['file uploads', 'SSO']",
      +      "items": {
      +        "maxLength": 200,
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "maxItems": 20,
      +      "type": "array"
      +    }
      +  },
      +  "type": "object"
      +}
  2. Changed2 schema fields changed
    • addedInput schema / properties / path_type / maxLength
      Added value: +2000
    • addedInput schema / properties / sort / maxLength
      Added value: +2000
  3. Changed8 schema fields changed
    • addedInput schema / properties / category / maxLength
      Added value: +100
    • addedInput schema / properties / category / minLength
      Added value: +1
    • addedInput schema / properties / feature / maxLength
      Added value: +200
    • addedInput schema / properties / feature / minLength
      Added value: +1
    • addedInput schema / properties / query / maxLength
      Added value: +300
    • changedInput schema / properties / vendor / description
      Previous value: -"Product currently paid for, e.g. 'Airtable', 'Salesforce', 'Semrush'"New value: +"Product currently paid for, e.g. 'Airtable', 'Salesforce', 'Semrush Pro'"
    • addedInput schema / properties / vendor / maxLength
      Added value: +200
    • addedInput schema / properties / vendor / minLength
      Added value: +1
  4. Changed1 schema field changed
    • changedInput schema / properties / path_type / enum
      Previous value: -[
      -  "switch",
      -  "downgrade",
      -  "open_source",
      -  "per_use",
      -  "build",
      -  "bundled"
      -]New value: +[
      +  "switch",
      +  "downgrade",
      +  "open_source",
      +  "per_use",
      +  "agent_skill",
      +  "build",
      +  "bundled"
      +]
  5. First observed

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnly/idempotent/non-destructive/non-openWorld), the description discloses data-handling behavior: Stackcut stores call arguments, account keys only as a one-way hash, never billing/validation sources or IP addresses; results are summarized and exit tools log only counts/flags. It also warns 'Don't send personal data or secrets.' This is rich behavioral context not present in structured fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Usage/scoping is front-loaded and each section (filters, returns, alternatives, privacy) is information-dense rather than filler. It is nonetheless long and the privacy/tool-call-storage passage is verbose, slightly diluting focus for an agent scanning for the call parameters.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 9 params, nested requirements, and no output schema, the description adequately covers return shape ('compact recipe cards', path with savings) and points to get_recipe for full detail. It covers query shapes well, though it does not explain sort/limit behavior, leaving a small gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 78%, so the schema already documents most params including intent, vendor, feature, category, path_type and requirements sub-fields. The description summarizes how filters combine and clarifies intent/requirements semantics, but largely reinforces rather than adds syntax beyond the schema, so the baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb+resource ('search replacement recipes', 'returns compact recipe cards, each with its best priced path that saves money') and clearly distinguishes itself from siblings by naming get_recipe (full paths/cost/source) and find_alternatives (re-cost one product you pay for). An agent can tell it apart from these 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.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It opens with an explicit 'Use when...' condition and concrete query examples ('cheaper keyword research', 'forms without Typeform'), then routes to alternatives: get_recipe for every path and find_alternatives for a single paid product. Intent 'new' vs 'replace' and requirements are explained, so the when-to-use and when-not-to-use rules are fully spelled out.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.