Skip to main content
Glama

Search the directory

search_tools
Read-onlyIdempotent

Search the directory of driven SaaS, API, MCP server and CLI products by a product's name, domain or kind: send a short query ('stripe.com', 'postgres', 'invoicing') with filters for category, agent level, access or payment. Use choose_provider_for_task instead for a task in plain words, and get_provider for one product in full. Read-only, no key needed; up to 100 results a page sorted by agent level, with total and next_offset for the rest.

Input Schema

NameRequiredDescriptionDefault
limitNoHow many products a page holds, 1 to 100 (default 25)
queryNoName, domain or what the tool does, e.g. 'invoicing', 'stripe.com' or 'postgres'; every word must match (the same search as the directory page)
accessNoonly products an agent gets into this way: signup_without_human (our agent signed up and got in without a person, any way), keyless (no key needed), local (runs locally), try_first (try first, claim later), pay_per_call, key_by_api, mcp_signin (our agent signed in to the product's own MCP server, by OAuth, and got in that way), email_signup, browser_signup, by_name (with a GitHub, Google or platform account), person (a person had to set it up: not counted)
offsetNoskip this many matches first: the next page starts at the previous answer's next_offset
surfaceNoonly products that offer this way for an agent to work them: api, mcp (an MCP server), cli or sdk; a comma list wants every one, e.g. mcp,cli
categoryNoA category id or name from list_categories (e.g. 'crm'); an unknown one is an error that says so
min_levelNoOnly products at this agent level or higher: 0 Read-only, 1 Needs a person, 2 Gets in, 3 Does the work, 4 Runs on its own, 5 Autonomous
pays_withNoonly products that take this way to pay: x402 or mpp (agent-native rails our drive met or the product documents) or card (a card checkout); a comma list takes any one, e.g. x402,mpp; also l402, stripe-projects, acp, ucp, ap2, mcp-payment
agent_can_buyNotrue: only products our agent paid through an agent-native rail (x402, MPP and the like), proven by the payment
agent_can_leaveNotrue: only products where our agent cancelled and deleted its account on its own

Output Schema

NameRequiredDescriptionDefault
tryNo
moreNo
totalNo
offsetNo
resultYesSearch the directory
next_offsetNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed41 schema fields changed
    • removedOutput schema / properties / more / description
      Removed value: -"How many are left and how to get them"
    • removedOutput schema / properties / next_offset / description
      Removed value: -"Where the next page starts; null on the last"
    • changedOutput schema / properties / result / description
      Previous value: -"Search the directory: Call this before you choose any SaaS, API, MCP server or CLI when you have a product's name, domain or kind in mind: send a short query (e.g."New value: +"Search the directory"
    • removedOutput schema / properties / result / items / properties / access
      Removed value: -{
      -  "description": "How an agent gets in, by key",
      -  "items": {
      -    "enum": [
      -      "keyless",
      -      "local",
      -      "try_first",
      -      "no_account",
      -      "pay_per_call",
      -      "key_by_api",
      -      "mcp_signin",
      -      "email_signup",
      -      "browser_signup",
      -      "by_name",
      -      "person"
      -    ]
      -  },
      -  "type": "array"
      -}
    • removedOutput schema / properties / result / items / properties / agent_surfaces
      Removed value: -{
      -  "description": "Each way an agent works the product, as the product page's tiles show it, whether or not our agent got in",
      -  "properties": {
      -    "api": {
      -      "properties": {
      -        "documented": {
      -          "type": [
      -            "integer",
      -            "null"
      -          ]
      -        },
      -        "reachable": {
      -          "type": [
      -            "boolean",
      -            "null"
      -          ]
      -        },
      -        "source": {
      -          "type": [
      -            "string",
      -            "null"
      -          ]
      -        },
      -        "state": {
      -          "enum": [
      -            "tested",
      -            "documented",
      -            "none_found",
      -            "unknown"
      -          ]
      -        },
      -        "tested": {
      -          "type": [
      -            "integer",
      -            "null"
      -          ]
      -        }
      -      },
      -      "required": [
      -        "state",
      -        "documented",
      -        "tested",
      -        "source"
      -      ],
      -      "type": "object"
      -    },
      -    "cli": {
      -      "properties": {
      -        "documented": {
      -          "type": [
      -            "integer",
      -            "null"
      -          ]
      -        },
      -        "reachable": {
      -          "type": [
      -            "boolean",
      -            "null"
      -          ]
      -        },
      -        "source": {
      -          "type": [
      -            "string",
      -            "null"
      -          ]
      -        },
      -        "state": {
      -          "enum": [
      -            "tested",
      -            "documented",
      -            "none_found",
      -            "unknown"
      -          ]
      -        },
      -        "tested": {
      -          "type": [
      -            "integer",
      -            "null"
      -          ]
      -        }
      -      },
      -      "required": [
      -        "state",
      -        "documented",
      -        "tested",
      -        "source"
      -      ],
      -      "type": "object"
      -    },
      -    "docs": {
      -      "properties": {
      -        "documented": {
      -          "type": [
      -            "integer",
      -            "null"
      -          ]
      -        },
      -        "source": {
      -          "type": [
      -            "string",
      -            "null"
      -          ]
      -        },
      -        "state": {
      -          "enum": [
      -            "tested",
      -            "documented",
      -            "none_found",
      -            "unknown"
      -          ]
      -        },
      -        "tested": {
      -          "type": [
      -            "integer",
      -            "null"
      -          ]
      -        }
      -      },
      -      "required": [
      -        "state",
      -        "documented",
      -        "tested",
      -        "source"
      -      ],
      -      "type": "object"
      -    },
      -    "mcp": {
      -      "properties": {
      -        "documented": {
      -          "type": [
      -            "integer",
      -            "null"
      -          ]
      -        },
      -        "reachable": {
      -          "type": [
      -            "boolean",
      -            "null"
      -          ]
      -        },
      -        "source": {
      -          "type": [
      -            "string",
      -            "null"
      -          ]
      -        },
      -        "state": {
      -          "enum": [
      -            "tested",
      -            "documented",
      -            "none_found",
      -            "unknown"
      -          ]
      -        },
      -        "tested": {
      -          "type": [
      -            "integer",
      -            "null"
      -          ]
      -        }
      -      },
      -      "required": [
      -        "state",
      -        "documented",
      -        "tested",
      -        "source"
      -      ],
      -      "type": "object"
      -    },
      -    "payment": {
      -      "properties": {
      -        "documented": {
      -          "type": [
      -            "integer",
      -            "null"
      -          ]
      -        },
      -        "source": {
      -          "type": [
      -            "string",
      -            "null"
      -          ]
      -        },
      -        "state": {
      -          "enum": [
      -            "tested",
      -            "documented",
      -            "none_found",
      -            "unknown"
      -          ]
      -        },
      -        "tested": {
      -          "type": [
      -            "integer",
      -            "null"
      -          ]
      -        }
      -      },
      -      "required": [
      -        "state",
      -        "documented",
      -        "tested",
      -        "source"
      -      ],
      -      "type": "object"
      -    },
      -    "sdk": {
      -      "properties": {
      -        "documented": {
      -          "type": [
      -            "integer",
      -            "null"
      -          ]
      -        },
      -        "source": {
      -          "type": [
      -            "string",
      -            "null"
      -          ]
      -        },
      -        "state": {
      -          "enum": [
      -            "tested",
      -            "documented",
      -            "none_found",
      -            "unknown"
      -          ]
      -        },
      -        "tested": {
      -          "type": [
      -            "integer",
      -            "null"
      -          ]
      -        }
      -      },
      -      "required": [
      -        "state",
      -        "documented",
      -        "tested",
      -        "source"
      -      ],
      -      "type": "object"
      -    }
      -  },
      -  "required": [
      -    "api",
      -    "mcp",
      -    "cli",
      -    "sdk",
      -    "docs",
      -    "payment"
      -  ],
      -  "type": [
      -    "object",
      -    "null"
      -  ]
      -}
    • removedOutput schema / properties / result / items / properties / blocks_agent
      Removed value: -{
      -  "description": "The bot check that stopped our signed agent on at least one way in, from sign-up to the first call (null",
      -  "type": [
      -    "string",
      -    "null"
      -  ]
      -}
    • removedOutput schema / properties / result / items / properties / category
      Removed value: -{
      -  "description": "The category's name",
      -  "type": "string"
      -}
    • removedOutput schema / properties / result / items / properties / checks
      Removed value: -{
      -  "description": "Which of the common filters hold for it, from the drive of `checked`",
      -  "properties": {
      -    "checked": {
      -      "type": [
      -        "string",
      -        "null"
      -      ]
      -    },
      -    "cli": {
      -      "type": [
      -        "boolean",
      -        "null"
      -      ]
      -    },
      -    "mcp": {
      -      "type": [
      -        "boolean",
      -        "null"
      -      ]
      -    },
      -    "mpp": {
      -      "type": "boolean"
      -    },
      -    "self_signup": {
      -      "type": "boolean"
      -    },
      -    "x402": {
      -      "type": "boolean"
      -    }
      -  },
      -  "type": "object"
      -}
    • removedOutput schema / properties / result / items / properties / connect
      Removed value: -{
      -  "description": "How to connect in your next step, from the drive and the product's own docs",
      -  "properties": {
      -    "api": {
      -      "properties": {
      -        "base_url": {
      -          "type": "string"
      -        },
      -        "state": {
      -          "enum": [
      -            "tested",
      -            "documented"
      -          ]
      -        }
      -      },
      -      "required": [
      -        "base_url",
      -        "state"
      -      ],
      -      "type": "object"
      -    },
      -    "cli": {
      -      "properties": {
      -        "ecosystem": {
      -          "enum": [
      -            "npm",
      -            "pypi",
      -            "homebrew",
      -            "go",
      -            "cargo",
      -            "gem"
      -          ]
      -        },
      -        "install": {
      -          "type": "string"
      -        },
      -        "package": {
      -          "type": "string"
      -        },
      -        "source": {
      -          "type": "string"
      -        },
      -        "state": {
      -          "enum": [
      -            "tested",
      -            "documented"
      -          ]
      -        }
      -      },
      -      "required": [
      -        "install",
      -        "package",
      -        "ecosystem",
      -        "state"
      -      ],
      -      "type": "object"
      -    },
      -    "docs": {
      -      "properties": {
      -        "state": {
      -          "enum": [
      -            "tested",
      -            "documented"
      -          ]
      -        },
      -        "url": {
      -          "type": "string"
      -        }
      -      },
      -      "required": [
      -        "url",
      -        "state"
      -      ],
      -      "type": "object"
      -    },
      -    "mcp": {
      -      "properties": {
      -        "state": {
      -          "enum": [
      -            "tested",
      -            "documented"
      -          ]
      -        },
      -        "transport": {
      -          "enum": [
      -            "streamable-http",
      -            "sse"
      -          ]
      -        },
      -        "url": {
      -          "type": "string"
      -        }
      -      },
      -      "required": [
      -        "url",
      -        "state"
      -      ],
      -      "type": "object"
      -    },
      -    "signup": {
      -      "properties": {
      -        "state": {
      -          "enum": [
      -            "tested",
      -            "documented"
      -          ]
      -        },
      -        "url": {
      -          "type": "string"
      -        }
      -      },
      -      "required": [
      -        "url",
      -        "state"
      -      ],
      -      "type": "object"
      -    }
      -  },
      -  "type": "object"
      -}
    • removedOutput schema / properties / result / items / properties / disclosure
      Removed value: -{
      -  "description": "Only on a drive its owner paid for",
      -  "type": "string"
      -}
    • removedOutput schema / properties / result / items / properties / docs_url
      Removed value: -{
      -  "description": "The docs' home page the drive found",
      -  "type": [
      -    "string",
      -    "null"
      -  ]
      -}
    • removedOutput schema / properties / result / items / properties / draft
      Removed value: -{
      -  "description": "Not reviewed yet",
      -  "type": "boolean"
      -}
    • removedOutput schema / properties / result / items / properties / first_blocker
      Removed value: -{
      -  "description": "The first thing that stops or slows an agent",
      -  "type": [
      -    "string",
      -    "null"
      -  ]
      -}
    • removedOutput schema / properties / result / items / properties / free_tier
      Removed value: -{
      -  "description": "A free plan or nothing to pay",
      -  "type": [
      -    "boolean",
      -    "null"
      -  ]
      -}
    • removedOutput schema / properties / result / items / properties / issues_found
      Removed value: -{
      -  "description": "How many issues the drive found",
      -  "minimum": 0,
      -  "type": [
      -    "integer",
      -    "null"
      -  ]
      -}
    • removedOutput schema / properties / result / items / properties / level / description
      Removed value: -"Agent level, the only rank"
    • removedOutput schema / properties / result / items / properties / level / maximum
      Removed value: -5
    • removedOutput schema / properties / result / items / properties / level / minimum
      Removed value: -0
    • removedOutput schema / properties / result / items / properties / level_name
      Removed value: -{
      -  "type": "string"
      -}
    • removedOutput schema / properties / result / items / properties / llms_txt_url
      Removed value: -{
      -  "description": "Its llms.txt, from the daily check or the drive",
      -  "type": [
      -    "string",
      -    "null"
      -  ]
      -}
    • removedOutput schema / properties / result / items / properties / mcp_url
      Removed value: -{
      -  "description": "Its own remote MCP server's URL",
      -  "type": [
      -    "string",
      -    "null"
      -  ]
      -}
    • removedOutput schema / properties / result / items / properties / openapi_url
      Removed value: -{
      -  "description": "Its OpenAPI document, from the daily check",
      -  "type": [
      -    "string",
      -    "null"
      -  ]
      -}
    • removedOutput schema / properties / result / items / properties / origin
      Removed value: -{
      -  "description": "editorial",
      -  "enum": [
      -    "editorial",
      -    "owner"
      -  ]
      -}
    • removedOutput schema / properties / result / items / properties / outcomes
      Removed value: -{
      -  "description": "The five outcomes, each yes, part, no, unreached or na (find is shown as Learn)",
      -  "properties": {
      -    "access": {
      -      "enum": [
      -        "yes",
      -        "part",
      -        "no",
      -        "unreached",
      -        "na"
      -      ]
      -    },
      -    "find": {
      -      "enum": [
      -        "yes",
      -        "part",
      -        "no",
      -        "unreached",
      -        "na"
      -      ]
      -    },
      -    "leave": {
      -      "enum": [
      -        "yes",
      -        "part",
      -        "no",
      -        "unreached",
      -        "na"
      -      ]
      -    },
      -    "pay": {
      -      "enum": [
      -        "yes",
      -        "part",
      -        "no",
      -        "unreached",
      -        "na"
      -      ]
      -    },
      -    "use": {
      -      "enum": [
      -        "yes",
      -        "part",
      -        "no",
      -        "unreached",
      -        "na"
      -      ]
      -    }
      -  },
      -  "type": "object"
      -}
    • removedOutput schema / properties / result / items / properties / paid
      Removed value: -{
      -  "description": "Our side made and proved a payment on one of them (the transaction is in the tool's pay_options.paid)",
      -  "type": "boolean"
      -}
    • removedOutput schema / properties / result / items / properties / parts
      Removed value: -{
      -  "description": "The part scores, 0-100, null when not measured",
      -  "properties": {
      -    "docs_match": {
      -      "type": [
      -        "integer",
      -        "null"
      -      ]
      -    },
      -    "holds_up": {
      -      "type": [
      -        "integer",
      -        "null"
      -      ]
      -    },
      -    "security": {
      -      "enum": [
      -        "private",
      -        null
      -      ],
      -      "type": [
      -        "string",
      -        "null"
      -      ]
      -    },
      -    "setup": {
      -      "type": [
      -        "integer",
      -        "null"
      -      ]
      -    },
      -    "standards": {
      -      "items": {
      -        "properties": {
      -          "behind": {
      -            "type": [
      -              "integer",
      -              "null"
      -            ]
      -          },
      -          "standard": {
      -            "type": "string"
      -          },
      -          "state": {
      -            "enum": [
      -              "current",
      -              "behind"
      -            ]
      -          },
      -          "value": {
      -            "type": [
      -              "string",
      -              "null"
      -            ]
      -          }
      -        },
      -        "type": "object"
      -      },
      -      "type": "array"
      -    }
      -  },
      -  "type": "object"
      -}
    • removedOutput schema / properties / result / items / properties / pay_rails
      Removed value: -{
      -  "description": "Each agent-native rail on its record and how",
      -  "items": {
      -    "properties": {
      -      "rail": {
      -        "type": "string"
      -      },
      -      "state": {
      -        "enum": [
      -          "tested",
      -          "documented"
      -        ]
      -      }
      -    },
      -    "required": [
      -      "rail",
      -      "state"
      -    ],
      -    "type": "object"
      -  },
      -  "type": "array"
      -}
    • removedOutput schema / properties / result / items / properties / pays_with
      Removed value: -{
      -  "description": "The agent-native ways to pay it offers, from our pay probe or the drive (x402, mpp, l402, stripe-projects, acp, ucp, ap2, mcp-payment)",
      -  "items": {
      -    "type": "string"
      -  },
      -  "type": "array"
      -}
    • removedOutput schema / properties / result / items / properties / product_url
      Removed value: -{
      -  "description": "The product's own site",
      -  "type": [
      -    "string",
      -    "null"
      -  ]
      -}
    • removedOutput schema / properties / result / items / properties / rank
      Removed value: -{
      -  "description": "Its place in its category among the products our agent got into on its own (with the directory on",
      -  "minimum": 1,
      -  "type": [
      -    "integer",
      -    "null"
      -  ]
      -}
    • removedOutput schema / properties / result / items / properties / rank_change
      Removed value: -{
      -  "description": "Places up (positive) or down since rank_since",
      -  "type": [
      -    "integer",
      -    "null"
      -  ]
      -}
    • removedOutput schema / properties / result / items / properties / rank_of
      Removed value: -{
      -  "description": "How many products of its category are ranked",
      -  "type": [
      -    "integer",
      -    "null"
      -  ]
      -}
    • removedOutput schema / properties / result / items / properties / rank_since
      Removed value: -{
      -  "description": "The day rank_change counts from",
      -  "type": [
      -    "string",
      -    "null"
      -  ]
      -}
    • removedOutput schema / properties / result / items / properties / signup
      Removed value: -{
      -  "description": "How our agent got in on its own (its first way in)",
      -  "properties": {
      -    "label": {
      -      "type": [
      -        "string",
      -        "null"
      -      ]
      -    },
      -    "minutes": {
      -      "type": [
      -        "number",
      -        "null"
      -      ]
      -    },
      -    "routes": {
      -      "items": {
      -        "type": "string"
      -      },
      -      "type": "array"
      -    },
      -    "way": {
      -      "type": "string"
      -    }
      -  },
      -  "type": [
      -    "object",
      -    "null"
      -  ]
      -}
    • removedOutput schema / properties / result / items / properties / slug / description
      Removed value: -"The product's address in the directory (can change"
    • removedOutput schema / properties / result / items / properties / stop
      Removed value: -{
      -  "description": "The first checkpoint the agent did not get past (null",
      -  "type": [
      -    "string",
      -    "null"
      -  ]
      -}
    • removedOutput schema / properties / result / items / properties / tested_at
      Removed value: -{
      -  "description": "The day of the drive behind the level",
      -  "type": "string"
      -}
    • removedOutput schema / properties / result / items / properties / url / description
      Removed value: -"The product's page here"
    • removedOutput schema / properties / result / items / properties / wall_type
      Removed value: -{
      -  "description": "What kind of bot check it was",
      -  "enum": [
      -    "network",
      -    "challenge",
      -    null
      -  ]
      -}
    • removedOutput schema / properties / total / description
      Removed value: -"Every match"
    • removedOutput schema / properties / try / description
      Removed value: -"With no match: what to try instead"
  2. Changed2 schema fields changed
    • changedInput schema / properties / pays_with / description
      Previous value: -"only products that take this way to pay: x402 or mpp (agent-native rails, seen or paid) or card (a card checkout); a comma list takes any one, e.g. x402,mpp; also l402, stripe-projects, acp, ucp, ap2, mcp-payment"New value: +"only products that take this way to pay: x402 or mpp (agent-native rails our drive met or the product documents) or card (a card checkout); a comma list takes any one, e.g. x402,mpp; also l402, stripe-projects, acp, ucp, ap2, mcp-payment"
    • addedOutput schema / properties / result / items / properties / pay_rails
      Added value: +{
      +  "description": "Each agent-native rail on its record and how",
      +  "items": {
      +    "properties": {
      +      "rail": {
      +        "type": "string"
      +      },
      +      "state": {
      +        "enum": [
      +          "tested",
      +          "documented"
      +        ]
      +      }
      +    },
      +    "required": [
      +      "rail",
      +      "state"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
  3. Changed12 schema fields changed
    • addedOutput schema / properties / result / items / properties / agent_surfaces / properties / api / properties / source
      Added value: +{
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • changedOutput schema / properties / result / items / properties / agent_surfaces / properties / api / required
      Previous value: -[
      -  "state",
      -  "documented",
      -  "tested"
      -]New value: +[
      +  "state",
      +  "documented",
      +  "tested",
      +  "source"
      +]
    • addedOutput schema / properties / result / items / properties / agent_surfaces / properties / cli / properties / source
      Added value: +{
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • changedOutput schema / properties / result / items / properties / agent_surfaces / properties / cli / required
      Previous value: -[
      -  "state",
      -  "documented",
      -  "tested"
      -]New value: +[
      +  "state",
      +  "documented",
      +  "tested",
      +  "source"
      +]
    • addedOutput schema / properties / result / items / properties / agent_surfaces / properties / docs / properties / source
      Added value: +{
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • changedOutput schema / properties / result / items / properties / agent_surfaces / properties / docs / required
      Previous value: -[
      -  "state",
      -  "documented",
      -  "tested"
      -]New value: +[
      +  "state",
      +  "documented",
      +  "tested",
      +  "source"
      +]
    • addedOutput schema / properties / result / items / properties / agent_surfaces / properties / mcp / properties / source
      Added value: +{
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • changedOutput schema / properties / result / items / properties / agent_surfaces / properties / mcp / required
      Previous value: -[
      -  "state",
      -  "documented",
      -  "tested"
      -]New value: +[
      +  "state",
      +  "documented",
      +  "tested",
      +  "source"
      +]
    • addedOutput schema / properties / result / items / properties / agent_surfaces / properties / payment / properties / source
      Added value: +{
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • changedOutput schema / properties / result / items / properties / agent_surfaces / properties / payment / required
      Previous value: -[
      -  "state",
      -  "documented",
      -  "tested"
      -]New value: +[
      +  "state",
      +  "documented",
      +  "tested",
      +  "source"
      +]
    • addedOutput schema / properties / result / items / properties / agent_surfaces / properties / sdk / properties / source
      Added value: +{
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • changedOutput schema / properties / result / items / properties / agent_surfaces / properties / sdk / required
      Previous value: -[
      -  "state",
      -  "documented",
      -  "tested"
      -]New value: +[
      +  "state",
      +  "documented",
      +  "tested",
      +  "source"
      +]
  4. Changed1 schema field changed
    • addedOutput schema / properties / result / items / properties / connect
      Added value: +{
      +  "description": "How to connect in your next step, from the drive and the product's own docs",
      +  "properties": {
      +    "api": {
      +      "properties": {
      +        "base_url": {
      +          "type": "string"
      +        },
      +        "state": {
      +          "enum": [
      +            "tested",
      +            "documented"
      +          ]
      +        }
      +      },
      +      "required": [
      +        "base_url",
      +        "state"
      +      ],
      +      "type": "object"
      +    },
      +    "cli": {
      +      "properties": {
      +        "ecosystem": {
      +          "enum": [
      +            "npm",
      +            "pypi",
      +            "homebrew",
      +            "go",
      +            "cargo",
      +            "gem"
      +          ]
      +        },
      +        "install": {
      +          "type": "string"
      +        },
      +        "package": {
      +          "type": "string"
      +        },
      +        "source": {
      +          "type": "string"
      +        },
      +        "state": {
      +          "enum": [
      +            "tested",
      +            "documented"
      +          ]
      +        }
      +      },
      +      "required": [
      +        "install",
      +        "package",
      +        "ecosystem",
      +        "state"
      +      ],
      +      "type": "object"
      +    },
      +    "docs": {
      +      "properties": {
      +        "state": {
      +          "enum": [
      +            "tested",
      +            "documented"
      +          ]
      +        },
      +        "url": {
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "url",
      +        "state"
      +      ],
      +      "type": "object"
      +    },
      +    "mcp": {
      +      "properties": {
      +        "state": {
      +          "enum": [
      +            "tested",
      +            "documented"
      +          ]
      +        },
      +        "transport": {
      +          "enum": [
      +            "streamable-http",
      +            "sse"
      +          ]
      +        },
      +        "url": {
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "url",
      +        "state"
      +      ],
      +      "type": "object"
      +    },
      +    "signup": {
      +      "properties": {
      +        "state": {
      +          "enum": [
      +            "tested",
      +            "documented"
      +          ]
      +        },
      +        "url": {
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "url",
      +        "state"
      +      ],
      +      "type": "object"
      +    }
      +  },
      +  "type": "object"
      +}
  5. Changed5 schema fields changed
    • changedInput schema / properties / pays_with / description
      Previous value: -"only products that take this way to pay: x402 or mpp (agent-native rails, seen or paid) or card (a card checkout); also l402, stripe-projects, acp, ucp, ap2, mcp-payment"New value: +"only products that take this way to pay: x402 or mpp (agent-native rails, seen or paid) or card (a card checkout); a comma list takes any one, e.g. x402,mpp; also l402, stripe-projects, acp, ucp, ap2, mcp-payment"
    • changedInput schema / properties / surface / description
      Previous value: -"only products that offer this way for an agent to work them: api, mcp, cli or sdk"New value: +"only products that offer this way for an agent to work them: api, mcp (an MCP server), cli or sdk; a comma list wants every one, e.g. mcp,cli"
    • removedInput schema / properties / surface / enum
      Removed value: -[
      -  "api",
      -  "mcp",
      -  "cli",
      -  "sdk"
      -]
    • addedInput schema / properties / surface / pattern
      Added value: +"^(api|mcp|cli|sdk)(,(api|mcp|cli|sdk))*$"
    • addedOutput schema / properties / result / items / properties / checks
      Added value: +{
      +  "description": "Which of the common filters hold for it, from the drive of `checked`",
      +  "properties": {
      +    "checked": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "cli": {
      +      "type": [
      +        "boolean",
      +        "null"
      +      ]
      +    },
      +    "mcp": {
      +      "type": [
      +        "boolean",
      +        "null"
      +      ]
      +    },
      +    "mpp": {
      +      "type": "boolean"
      +    },
      +    "self_signup": {
      +      "type": "boolean"
      +    },
      +    "x402": {
      +      "type": "boolean"
      +    }
      +  },
      +  "type": "object"
      +}
  6. Changed7 schema fields changed
    • changedInput schema / properties / agent_can_buy / description
      Previous value: -"only products an agent paid through an agent-native rail, proven from our side"New value: +"true: only products our agent paid through an agent-native rail (x402, MPP and the like), proven by the payment"
    • changedInput schema / properties / agent_can_leave / description
      Previous value: -"only products an agent leaves on its own"New value: +"true: only products where our agent cancelled and deleted its account on its own"
    • changedInput schema / properties / limit / description
      Previous value: -"the most results to return"New value: +"How many products a page holds, 1 to 100 (default 25)"
    • changedInput schema / properties / min_level / description
      Previous value: -"only products at this agent level or higher (0-5)"New value: +"Only products at this agent level or higher: 0 Read-only, 1 Needs a person, 2 Gets in, 3 Does the work, 4 Runs on its own, 5 Autonomous"
    • addedOutput schema / properties / result / items / properties / agent_surfaces / properties / api / properties / reachable
      Added value: +{
      +  "type": [
      +    "boolean",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / result / items / properties / agent_surfaces / properties / cli / properties / reachable
      Added value: +{
      +  "type": [
      +    "boolean",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / result / items / properties / agent_surfaces / properties / mcp / properties / reachable
      Added value: +{
      +  "type": [
      +    "boolean",
      +    "null"
      +  ]
      +}
  7. Changed1 schema field changed
    • changedOutput schema / properties / result / description
      Previous value: -"Search the directory: Searches AgentDrives' tested products by name, domain or what they do."New value: +"Search the directory: Call this before you choose any SaaS, API, MCP server or CLI when you have a product's name, domain or kind in mind: send a short query (e.g."
  8. Changed2 schema fields changed
    • addedOutput schema / properties / result / items / properties / agent_surfaces
      Added value: +{
      +  "description": "Each way an agent works the product, as the product page's tiles show it, whether or not our agent got in",
      +  "properties": {
      +    "api": {
      +      "properties": {
      +        "documented": {
      +          "type": [
      +            "integer",
      +            "null"
      +          ]
      +        },
      +        "state": {
      +          "enum": [
      +            "tested",
      +            "documented",
      +            "none_found",
      +            "unknown"
      +          ]
      +        },
      +        "tested": {
      +          "type": [
      +            "integer",
      +            "null"
      +          ]
      +        }
      +      },
      +      "required": [
      +        "state",
      +        "documented",
      +        "tested"
      +      ],
      +      "type": "object"
      +    },
      +    "cli": {
      +      "properties": {
      +        "documented": {
      +          "type": [
      +            "integer",
      +            "null"
      +          ]
      +        },
      +        "state": {
      +          "enum": [
      +            "tested",
      +            "documented",
      +            "none_found",
      +            "unknown"
      +          ]
      +        },
      +        "tested": {
      +          "type": [
      +            "integer",
      +            "null"
      +          ]
      +        }
      +      },
      +      "required": [
      +        "state",
      +        "documented",
      +        "tested"
      +      ],
      +      "type": "object"
      +    },
      +    "docs": {
      +      "properties": {
      +        "documented": {
      +          "type": [
      +            "integer",
      +            "null"
      +          ]
      +        },
      +        "state": {
      +          "enum": [
      +            "tested",
      +            "documented",
      +            "none_found",
      +            "unknown"
      +          ]
      +        },
      +        "tested": {
      +          "type": [
      +            "integer",
      +            "null"
      +          ]
      +        }
      +      },
      +      "required": [
      +        "state",
      +        "documented",
      +        "tested"
      +      ],
      +      "type": "object"
      +    },
      +    "mcp": {
      +      "properties": {
      +        "documented": {
      +          "type": [
      +            "integer",
      +            "null"
      +          ]
      +        },
      +        "state": {
      +          "enum": [
      +            "tested",
      +            "documented",
      +            "none_found",
      +            "unknown"
      +          ]
      +        },
      +        "tested": {
      +          "type": [
      +            "integer",
      +            "null"
      +          ]
      +        }
      +      },
      +      "required": [
      +        "state",
      +        "documented",
      +        "tested"
      +      ],
      +      "type": "object"
      +    },
      +    "payment": {
      +      "properties": {
      +        "documented": {
      +          "type": [
      +            "integer",
      +            "null"
      +          ]
      +        },
      +        "state": {
      +          "enum": [
      +            "tested",
      +            "documented",
      +            "none_found",
      +            "unknown"
      +          ]
      +        },
      +        "tested": {
      +          "type": [
      +            "integer",
      +            "null"
      +          ]
      +        }
      +      },
      +      "required": [
      +        "state",
      +        "documented",
      +        "tested"
      +      ],
      +      "type": "object"
      +    },
      +    "sdk": {
      +      "properties": {
      +        "documented": {
      +          "type": [
      +            "integer",
      +            "null"
      +          ]
      +        },
      +        "state": {
      +          "enum": [
      +            "tested",
      +            "documented",
      +            "none_found",
      +            "unknown"
      +          ]
      +        },
      +        "tested": {
      +          "type": [
      +            "integer",
      +            "null"
      +          ]
      +        }
      +      },
      +      "required": [
      +        "state",
      +        "documented",
      +        "tested"
      +      ],
      +      "type": "object"
      +    }
      +  },
      +  "required": [
      +    "api",
      +    "mcp",
      +    "cli",
      +    "sdk",
      +    "docs",
      +    "payment"
      +  ],
      +  "type": [
      +    "object",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / result / items / properties / issues_found
      Added value: +{
      +  "description": "How many issues the drive found",
      +  "minimum": 0,
      +  "type": [
      +    "integer",
      +    "null"
      +  ]
      +}
  9. Changed11 schema fields changed
    • changedInput schema / properties / access / description
      Previous value: -"only products an agent gets into this way: keyless (no key needed), local (runs locally), try_first (try first, claim later), pay_per_call, key_by_api, mcp_signin (our agent signed in to the product's own MCP server, by OAuth, and got in that way), email_signup, browser_signup, by_name (with a GitHub, Google or platform account), person (a person had to set it up: not counted)"New value: +"only products an agent gets into this way: signup_without_human (our agent signed up and got in without a person, any way), keyless (no key needed), local (runs locally), try_first (try first, claim later), pay_per_call, key_by_api, mcp_signin (our agent signed in to the product's own MCP server, by OAuth, and got in that way), email_signup, browser_signup, by_name (with a GitHub, Google or platform account), person (a person had to set it up: not counted)"
    • changedInput schema / properties / access / enum
      Previous value: -[
      -  "keyless",
      -  "local",
      -  "try_first",
      -  "no_account",
      -  "pay_per_call",
      -  "key_by_api",
      -  "mcp_signin",
      -  "email_signup",
      -  "browser_signup",
      -  "by_name",
      -  "person"
      -]New value: +[
      +  "signup_without_human",
      +  "keyless",
      +  "local",
      +  "try_first",
      +  "no_account",
      +  "pay_per_call",
      +  "key_by_api",
      +  "mcp_signin",
      +  "email_signup",
      +  "browser_signup",
      +  "by_name",
      +  "person"
      +]
    • changedInput schema / properties / pays_with / description
      Previous value: -"only products that offer this agent-native way to pay (seen or paid), e.g. x402, mpp, l402, stripe-projects, acp, ucp, ap2, mcp-payment"New value: +"only products that take this way to pay: x402 or mpp (agent-native rails, seen or paid) or card (a card checkout); also l402, stripe-projects, acp, ucp, ap2, mcp-payment"
    • addedInput schema / properties / surface
      Added value: +{
      +  "description": "only products that offer this way for an agent to work them: api, mcp, cli or sdk",
      +  "enum": [
      +    "api",
      +    "mcp",
      +    "cli",
      +    "sdk"
      +  ],
      +  "type": "string"
      +}
    • addedOutput schema / properties / result / items / properties / docs_url
      Added value: +{
      +  "description": "The docs' home page the drive found",
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / result / items / properties / free_tier
      Added value: +{
      +  "description": "A free plan or nothing to pay",
      +  "type": [
      +    "boolean",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / result / items / properties / llms_txt_url
      Added value: +{
      +  "description": "Its llms.txt, from the daily check or the drive",
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / result / items / properties / mcp_url
      Added value: +{
      +  "description": "Its own remote MCP server's URL",
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / result / items / properties / openapi_url
      Added value: +{
      +  "description": "Its OpenAPI document, from the daily check",
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / result / items / properties / product_url
      Added value: +{
      +  "description": "The product's own site",
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / result / items / properties / signup
      Added value: +{
      +  "description": "How our agent got in on its own (its first way in)",
      +  "properties": {
      +    "label": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "minutes": {
      +      "type": [
      +        "number",
      +        "null"
      +      ]
      +    },
      +    "routes": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "way": {
      +      "type": "string"
      +    }
      +  },
      +  "type": [
      +    "object",
      +    "null"
      +  ]
      +}
  10. Changed1 schema field changed
    • changedOutput schema / properties / result / items / properties / parts / description
      Previous value: -"The part scores (methodology 27), 0-100, null when not measured"New value: +"The part scores, 0-100, null when not measured"
  11. Changed1 schema field changed
    • changedOutput schema / properties / result / items / properties / parts / description
      Previous value: -"The part scores (methodology 26), 0-100, null when not measured"New value: +"The part scores (methodology 27), 0-100, null when not measured"
  12. Changed1 schema field changed
    • changedOutput schema / properties / result / items / properties / parts / description
      Previous value: -"The part scores (methodology 25), 0-100, null when not measured"New value: +"The part scores (methodology 26), 0-100, null when not measured"
  13. Changed1 schema field changed
    • changedOutput schema / properties / result / items / properties / parts / description
      Previous value: -"The part scores (methodology 24), 0-100, null when not measured"New value: +"The part scores (methodology 25), 0-100, null when not measured"
  14. Changed7 schema fields changed
    • addedOutput schema / properties / more
      Added value: +{
      +  "description": "How many are left and how to get them",
      +  "type": "string"
      +}
    • addedOutput schema / properties / next_offset
      Added value: +{
      +  "description": "Where the next page starts; null on the last",
      +  "type": [
      +    "integer",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / offset
      Added value: +{
      +  "type": "integer"
      +}
    • addedOutput schema / properties / result / items
      Added value: +{
      +  "properties": {
      +    "access": {
      +      "description": "How an agent gets in, by key",
      +      "items": {
      +        "enum": [
      +          "keyless",
      +          "local",
      +          "try_first",
      +          "no_account",
      +          "pay_per_call",
      +          "key_by_api",
      +          "mcp_signin",
      +          "email_signup",
      +          "browser_signup",
      +          "by_name",
      +          "person"
      +        ]
      +      },
      +      "type": "array"
      +    },
      +    "blocks_agent": {
      +      "description": "The bot check that stopped our signed agent on at least one way in, from sign-up to the first call (null",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "category": {
      +      "description": "The category's name",
      +      "type": "string"
      +    },
      +    "disclosure": {
      +      "description": "Only on a drive its owner paid for",
      +      "type": "string"
      +    },
      +    "draft": {
      +      "description": "Not reviewed yet",
      +      "type": "boolean"
      +    },
      +    "first_blocker": {
      +      "description": "The first thing that stops or slows an agent",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "level": {
      +      "description": "Agent level, the only rank",
      +      "maximum": 5,
      +      "minimum": 0,
      +      "type": "integer"
      +    },
      +    "level_name": {
      +      "type": "string"
      +    },
      +    "name": {
      +      "type": "string"
      +    },
      +    "origin": {
      +      "description": "editorial",
      +      "enum": [
      +        "editorial",
      +        "owner"
      +      ]
      +    },
      +    "outcomes": {
      +      "description": "The five outcomes, each yes, part, no, unreached or na (find is shown as Learn)",
      +      "properties": {
      +        "access": {
      +          "enum": [
      +            "yes",
      +            "part",
      +            "no",
      +            "unreached",
      +            "na"
      +          ]
      +        },
      +        "find": {
      +          "enum": [
      +            "yes",
      +            "part",
      +            "no",
      +            "unreached",
      +            "na"
      +          ]
      +        },
      +        "leave": {
      +          "enum": [
      +            "yes",
      +            "part",
      +            "no",
      +            "unreached",
      +            "na"
      +          ]
      +        },
      +        "pay": {
      +          "enum": [
      +            "yes",
      +            "part",
      +            "no",
      +            "unreached",
      +            "na"
      +          ]
      +        },
      +        "use": {
      +          "enum": [
      +            "yes",
      +            "part",
      +            "no",
      +            "unreached",
      +            "na"
      +          ]
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "paid": {
      +      "description": "Our side made and proved a payment on one of them (the transaction is in the tool's pay_options.paid)",
      +      "type": "boolean"
      +    },
      +    "parts": {
      +      "description": "The part scores (methodology 24), 0-100, null when not measured",
      +      "properties": {
      +        "docs_match": {
      +          "type": [
      +            "integer",
      +            "null"
      +          ]
      +        },
      +        "holds_up": {
      +          "type": [
      +            "integer",
      +            "null"
      +          ]
      +        },
      +        "security": {
      +          "enum": [
      +            "private",
      +            null
      +          ],
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "setup": {
      +          "type": [
      +            "integer",
      +            "null"
      +          ]
      +        },
      +        "standards": {
      +          "items": {
      +            "properties": {
      +              "behind": {
      +                "type": [
      +                  "integer",
      +                  "null"
      +                ]
      +              },
      +              "standard": {
      +                "type": "string"
      +              },
      +              "state": {
      +                "enum": [
      +                  "current",
      +                  "behind"
      +                ]
      +              },
      +              "value": {
      +                "type": [
      +                  "string",
      +                  "null"
      +                ]
      +              }
      +            },
      +            "type": "object"
      +          },
      +          "type": "array"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "pays_with": {
      +      "description": "The agent-native ways to pay it offers, from our pay probe or the drive (x402, mpp, l402, stripe-projects, acp, ucp, ap2, mcp-payment)",
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "rank": {
      +      "description": "Its place in its category among the products our agent got into on its own (with the directory on",
      +      "minimum": 1,
      +      "type": [
      +        "integer",
      +        "null"
      +      ]
      +    },
      +    "rank_change": {
      +      "description": "Places up (positive) or down since rank_since",
      +      "type": [
      +        "integer",
      +        "null"
      +      ]
      +    },
      +    "rank_of": {
      +      "description": "How many products of its category are ranked",
      +      "type": [
      +        "integer",
      +        "null"
      +      ]
      +    },
      +    "rank_since": {
      +      "description": "The day rank_change counts from",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "slug": {
      +      "description": "The product's address in the directory (can change",
      +      "type": "string"
      +    },
      +    "stop": {
      +      "description": "The first checkpoint the agent did not get past (null",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "tested_at": {
      +      "description": "The day of the drive behind the level",
      +      "type": "string"
      +    },
      +    "url": {
      +      "description": "The product's page here",
      +      "type": "string"
      +    },
      +    "wall_type": {
      +      "description": "What kind of bot check it was",
      +      "enum": [
      +        "network",
      +        "challenge",
      +        null
      +      ]
      +    }
      +  },
      +  "required": [
      +    "slug",
      +    "name",
      +    "level",
      +    "url"
      +  ],
      +  "type": "object"
      +}
    • addedOutput schema / properties / result / type
      Added value: +"array"
    • addedOutput schema / properties / total
      Added value: +{
      +  "description": "Every match",
      +  "type": "integer"
      +}
    • addedOutput schema / properties / try
      Added value: +{
      +  "description": "With no match: what to try instead",
      +  "type": "string"
      +}
  15. Changed1 schema field changed
    • addedInput schema / properties / offset
      Added value: +{
      +  "default": 0,
      +  "description": "skip this many matches first: the next page starts at the previous answer's next_offset",
      +  "minimum": 0,
      +  "type": "integer"
      +}
  16. Changed1 schema field changed
    • changedOutput schema / properties / result / description
      Previous value: -"Search the directory: Searches AgentDrives' tested products by name, domain or what they do, and returns each one's agent level and evidence."New value: +"Search the directory: Searches AgentDrives' tested products by name, domain or what they do."
  17. Changed1 schema field changed
    • changedInput schema / properties / access / description
      Previous value: -"only products an agent gets into this way: keyless (no key needed), local (runs locally), try_first (try first, claim later), pay_per_call, key_by_api, mcp_signin (our agent signed in to the product's own MCP server, by OAuth, and got in that way), email_signup, browser_signup, by_name (with a GitHub, Google or platform account), person (a person sets it up)"New value: +"only products an agent gets into this way: keyless (no key needed), local (runs locally), try_first (try first, claim later), pay_per_call, key_by_api, mcp_signin (our agent signed in to the product's own MCP server, by OAuth, and got in that way), email_signup, browser_signup, by_name (with a GitHub, Google or platform account), person (a person had to set it up: not counted)"
  18. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "result": {
      +      "description": "Search the directory: Searches AgentDrives' tested products by name, domain or what they do, and returns each one's agent level and evidence."
      +    }
      +  },
      +  "required": [
      +    "result"
      +  ],
      +  "type": "object"
      +}
  19. Changed1 schema field changed
    • changedInput schema / properties / access / description
      Previous value: -"only products an agent gets into this way: keyless (no key needed), local (runs locally), try_first (try first, claim later), pay_per_call, key_by_api, mcp_signin, email_signup, browser_signup, by_name (with a GitHub, Google or platform account), person (a person sets it up)"New value: +"only products an agent gets into this way: keyless (no key needed), local (runs locally), try_first (try first, claim later), pay_per_call, key_by_api, mcp_signin (our agent signed in to the product's own MCP server, by OAuth, and got in that way), email_signup, browser_signup, by_name (with a GitHub, Google or platform account), person (a person sets it up)"
  20. First observed

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds value beyond that: no key required, results capped at 100 per page, sorted by agent level, with total and next_offset exposed for paging. It does not describe failure modes or empty-result behavior, which keeps it short of a 5.

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?

Front-loaded with the core action and search keys, then alternatives, then behavioral facts. It is dense and every sentence carries information, though the alternative-routing and pagination details are packed into a single run-on sentence that could be split for scanability.

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?

For a 10-parameter read-only search tool with an output schema and full annotations, the definition supplies what is missing structurally: the absence of auth, result ordering, and pagination via next_offset. Error behavior for unknown categories is delegated to the schema, which is acceptable but leaves a minor 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 description coverage is 100% with rich per-parameter prose, so the schema already carries the parameter meaning. The description only restates the filter families in summary form and notes that the query is short and must match every word — a small addition that is largely duplicated by the query parameter description.

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?

States a specific verb and resource ('Search the directory of driven SaaS, API, MCP server and CLI products') plus the searchable dimensions (name, domain, kind) and enumerates the filter families. It explicitly distinguishes itself from choose_provider_for_task and get_provider, so an agent can pick it without opening a 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?

Gives concrete query examples ('stripe.com', 'postgres', 'invoicing') and routes the agent elsewhere with conditions: choose_provider_for_task for a task in plain words, get_provider for a single product in full. That is explicit when-to-use and when-to-use-something-else guidance.

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.

Resources