Skip to main content
Glama

There's An AI For That

Search tools

search_tools
Read-only

Search the TAAFT directory for AI tools that match a query. Each result includes deal details when an approved TAAFT partner offer exists. Use url for TAAFT pages and website_url for external websites. Preserve returned URLs exactly.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
sortNodefault
typeNo
limitNo
queryYesWhat the user needs an AI tool for.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
toolsYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changed
    • addedOutput schema / properties / tools / items / properties / deal / properties / description_trial_days
      Added value: +{
      +  "description": "Trial length in days extracted from deal description text, when present.",
      +  "type": [
      +    "integer",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / tools / items / properties / deal / properties / is_lifetime_plan
      Added value: +{
      +  "description": "True when the description mentions lifetime access or one-time purchase.",
      +  "type": "boolean"
      +}
    • changedOutput schema / properties / tools / items / properties / deal / required
      Previous value: -[
      -  "has_deal",
      -  "code",
      -  "deal_type",
      -  "discount_percent",
      -  "discount_amount",
      -  "credits_amount",
      -  "free_trial_days",
      -  "applies_to",
      -  "terms",
      -  "expires_at",
      -  "raw_text"
      -]New value: +[
      +  "has_deal",
      +  "code",
      +  "deal_type",
      +  "discount_percent",
      +  "discount_amount",
      +  "credits_amount",
      +  "free_trial_days",
      +  "applies_to",
      +  "terms",
      +  "expires_at",
      +  "description_trial_days",
      +  "is_lifetime_plan",
      +  "raw_text"
      +]
  2. Changed2 schema fields changed
    • addedOutput schema / properties / tools / items / properties / deal
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "applies_to": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "code": {
      +      "type": "string"
      +    },
      +    "credits_amount": {
      +      "type": [
      +        "number",
      +        "null"
      +      ]
      +    },
      +    "deal_type": {
      +      "enum": [
      +        "discount_percent",
      +        "discount_amount",
      +        "credits",
      +        "free_trial"
      +      ],
      +      "type": "string"
      +    },
      +    "discount_amount": {
      +      "type": [
      +        "number",
      +        "null"
      +      ]
      +    },
      +    "discount_percent": {
      +      "type": [
      +        "number",
      +        "null"
      +      ]
      +    },
      +    "expires_at": {
      +      "description": "Explicit expiry date in YYYY-MM-DD format, or null when no reliable date is present.",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "free_trial_days": {
      +      "type": [
      +        "integer",
      +        "null"
      +      ]
      +    },
      +    "has_deal": {
      +      "type": "boolean"
      +    },
      +    "raw_text": {
      +      "description": "Deal-related text copied from the tool description when present.",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "terms": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    }
      +  },
      +  "required": [
      +    "has_deal",
      +    "code",
      +    "deal_type",
      +    "discount_percent",
      +    "discount_amount",
      +    "credits_amount",
      +    "free_trial_days",
      +    "applies_to",
      +    "terms",
      +    "expires_at",
      +    "raw_text"
      +  ],
      +  "type": [
      +    "object",
      +    "null"
      +  ]
      +}
    • changedOutput schema / properties / tools / items / required
      Previous value: -[
      -  "name",
      -  "slug",
      -  "task",
      -  "tagline",
      -  "url",
      -  "website_url"
      -]New value: +[
      +  "name",
      +  "slug",
      +  "task",
      +  "tagline",
      +  "url",
      +  "website_url",
      +  "deal"
      +]
  3. Changed1 schema field changed
    • addedOutput schema / properties / tools / items / properties / website_url / description
      Added value: +"TAAFT redirect to the external website. Preserve this URL exactly when sharing it."
  4. Changed2 schema fields changed
    • addedOutput schema / properties / tools / items / properties / website_url
      Added value: +{
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • changedOutput schema / properties / tools / items / required
      Previous value: -[
      -  "name",
      -  "slug",
      -  "task",
      -  "tagline",
      -  "url"
      -]New value: +[
      +  "name",
      +  "slug",
      +  "task",
      +  "tagline",
      +  "url",
      +  "website_url"
      +]
  5. First observed

TDQS

B3.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds genuine behavioral context beyond that: results may include deal details when an approved partner offer exists, one field is the internal TAAFT URL and another is the external site URL, and URLs must be preserved exactly. It does not discuss pagination or result ordering behavior.

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?

Four short sentences with no filler, and the core purpose is front-loaded before the URL-handling instructions. Efficient, though the URL sentences are slightly operational detail that could be tightened.

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

Completeness3/5

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

An output schema exists, so return values need not be spelled out, and annotations cover safety. Still, with only one of four parameters documented and no guidance on how sort/type/limit shape the search, the definition is adequate but leaves noticeable gaps for an agent choosing filters.

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

Parameters2/5

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

Schema description coverage is only 25% — only 'query' carries a schema description — and the description never mentions sort, type, or limit. The enum values are self-explanatory for sort/type and limit has a default and bounds, but the description does no work to explain what those options mean or how they affect results.

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

Purpose4/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 TAAFT directory for AI tools that match a query'), which clearly separates it from sibling searches like search_companies or search_papers by domain. It does not explicitly name an alternative, but the resource is unambiguous enough for selection.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

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

Usage is implied by the query phrasing, and there is useful operational guidance about which URL field to use for TAAFT pages versus external sites. However, there is no explicit when-to-use/when-not guidance and no mention of siblings such as get_tool for retrieving a single known tool.

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.