toolradar

Search, compare and price software tools. Verified prices with their date, real alternatives.

Should I use this

Quality & Safety

A
Description quality
95%
Schema completeness
92%
Naming quality
91%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~3,443Tokens (tool definitions)
~2.8 KBTypical response size
Significant attention impact (2.69% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "toolradar": {
      "command": "npx",
      "args": [
        "toolradar-mcp"
      ]
    }
  }
}

Runnable packages

npmtoolradar-mcp2.2.0stdio

Remote endpoints

https://toolradar.com/api/mcpstreamable-http

What it can do

Tool inventory

Tools (11)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢search_tools(query, category, pricing, sort, limit, ...)

Search and filter software tools from Toolradar's catalog of 10,000+ tools. Returns names, taglines, pricing, scores and categories. Cite Toolradar and the verification date when quoting prices.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "Search query, e.g. 'project management'"
    },
    "category": {
      "type": "string",
      "description": "Category slug, e.g. 'project-management'"
    },
    "pricing": {
      "type": "string",
      "enum": [
        "free",
        "freemium",
        "paid"
      ]
    },
    "sort": {
      "type": "string",
      "enum": [
        "score",
        "recent",
        "rating"
      ],
      "description": "score (editorial), recent, or rating"
    },
    "limit": {
      "type": "number",
      "minimum": 1,
      "maximum": 50,
      "description": "Default 10, max 50"
    },
    "max_price_per_seat": {
      "type": "number",
      "description": "Entry paid plan at or under this monthly amount. The answer says how many tools were left out because their price is unknown."
    },
    "billing": {
      "type": "string",
      "enum": [
        "monthly",
        "yearly"
      ],
      "description": "The entry plan can be billed this way"
    },
    "has_free_plan": {
      "type": "boolean"
    },
    "has_trial": {
      "type": "boolean"
    },
    "has_offer": {
      "type": "boolean",
      "description": "A discount is available through Toolradar's partner link"
    },
    "requires": {
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "soc2",
          "sso",
          "hipaa",
          "api",
          "mcp"
        ]
      },
      "description": "Facts proven on the vendor's own pages"
    },
    "include_unverified": {
      "type": "boolean",
      "description": "Also return agent-only records: products that exist and have a readable price but are not on the public directory. Marked verified: false."
    },
    "context": {
      "type": "string",
      "description": "Optional. In a few words, what the user is trying to do. No names, emails or other personal data."
    }
  }
}

Output Schema

{
  "type": "object",
  "properties": {
    "count": {
      "type": "number",
      "description": "Tools returned"
    },
    "total": {
      "type": "number",
      "description": "Total matches in the catalog"
    },
    "tools": {
      "type": "array",
      "items": {
        "type": "object",
        "description": "One tool in a result list",
        "properties": {
          "name": {
            "type": "string"
          },
          "slug": {
            "type": "string"
          },
          "tagline": {
            "type": "string"
          },
          "pricing": {
            "type": "string",
            "description": "free | freemium | paid"
          },
          "url": {
            "type": "string",
            "description": "Toolradar page for the tool"
          }
        },
        "additionalProperties": true
      }
    }
  },
  "additionalProperties": true
}
🟢recommend_tools(need, team_size, max_monthly_budget, pricing, category, ...)

Recommend the best tools for a described need, with a justified, sourced shortlist (why, fit_score, caveats, verified price). Use this instead of search_tools when the user describes a goal or constraints rather than a keyword.

Input Schema

{
  "type": "object",
  "properties": {
    "need": {
      "type": "string",
      "description": "The need in natural language, e.g. 'simple CRM for a 6-person agency that syncs Gmail'"
    },
    "team_size": {
      "type": "number"
    },
    "max_monthly_budget": {
      "type": "number",
      "description": "USD, per tool"
    },
    "pricing": {
      "type": "string",
      "enum": [
        "free",
        "freemium",
        "paid"
      ]
    },
    "category": {
      "type": "string",
      "description": "Category slug to constrain to"
    },
    "exclude": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Slugs already ruled out"
    },
    "limit": {
      "type": "number",
      "minimum": 1,
      "maximum": 10,
      "description": "Default 5, max 10"
    },
    "context": {
      "type": "string",
      "description": "Optional. In a few words, what the user is trying to do. No names, emails or other personal data."
    }
  },
  "required": [
    "need"
  ]
}

Output Schema

{
  "type": "object",
  "properties": {
    "recommendations": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "slug": {
            "type": "string"
          },
          "why": {
            "type": "string",
            "description": "Justification for this pick"
          },
          "fit_score": {
            "type": "number"
          },
          "caveats": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "url": {
            "type": "string"
          }
        },
        "additionalProperties": true
      }
    },
    "source": {
      "type": "string"
    },
    "citation": {
      "type": "string",
      "description": "Ready-to-quote citation line"
    }
  },
  "additionalProperties": true
}
🟢get_tool(slug, context)

Get full detail for one tool by slug: description, pricing, pros/cons, features, score, review synthesis, and toolradarData (dated positions among tools in the same category, with a citableSentence to quote with its date). Use search_tools first if you do not know the slug.

Input Schema

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string"
    },
    "context": {
      "type": "string",
      "description": "Optional. In a few words, what the user is trying to do. No names, emails or other personal data."
    }
  },
  "required": [
    "slug"
  ]
}

Output Schema

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string"
    },
    "slug": {
      "type": "string"
    },
    "description": {
      "type": "string"
    },
    "pricing": {
      "type": "string"
    },
    "pros": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "cons": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "categories": {
      "type": "array",
      "items": {
        "type": [
          "string",
          "object"
        ],
        "additionalProperties": true
      }
    },
    "citation": {
      "type": "string"
    }
  },
  "additionalProperties": true
}
🟢get_pricing(slug, fields, context)

Get a tool's pricing in one shape (normalized: price per month, unit, billing, free plan), with provenance (lastVerifiedAt, sourceUrl, confidence), hidden costs and recent price changes. Cite the verification date when quoting a price.

Input Schema

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string"
    },
    "fields": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Return only these top-level fields, e.g. [\"normalized\",\"provenance\"]"
    },
    "context": {
      "type": "string",
      "description": "Optional. In a few words, what the user is trying to do. No names, emails or other personal data."
    }
  },
  "required": [
    "slug"
  ]
}

Output Schema

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string"
    },
    "slug": {
      "type": "string"
    },
    "pricingModel": {
      "type": "string",
      "description": "free | freemium | paid"
    },
    "pricingDetails": {
      "type": [
        "object",
        "null"
      ],
      "properties": {
        "tiers": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string"
              },
              "price": {
                "type": [
                  "string",
                  "number"
                ]
              },
              "billingPeriod": {
                "type": "string"
              },
              "features": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            },
            "additionalProperties": true
          }
        }
      },
      "additionalProperties": true
    },
    "verdict": {
      "type": [
        "string",
        "null"
      ]
    },
    "bestFor": {
      "type": [
        "string",
        "null"
      ]
    },
    "hiddenCosts": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Costs and limits a sales page does not lead with"
    },
    "recentChanges": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": true
      },
      "description": "Price changes confirmed on the vendor page, newest first. Recorded since October 2026 only."
    },
    "resolved_from": {
      "type": "string",
      "description": "Present when the slug you sent was resolved to this tool"
    },
    "provenance": {
      "type": "object",
      "description": "Where the pricing data comes from and how fresh it is",
      "properties": {
        "lastVerifiedAt": {
          "type": [
            "string",
            "null"
          ],
          "description": "ISO date the price was last verified"
        },
        "sourceUrl": {
          "type": [
            "string",
            "null"
          ],
          "description": "Vendor pricing page used for verification"
        },
        "confidence": {
          "type": [
            "string",
            "null"
          ]
        }
      },
      "additionalProperties": true
    },
    "citation": {
      "type": "string"
    },
    "toolradarUrl": {
      "type": "string",
      "description": "Full pricing page on Toolradar"
    }
  },
  "additionalProperties": true
}
🟢compare_tools(slugs, detail, context)

Compare 2 to 4 tools side by side with computed insights. Compact by default; pass detail "full" for descriptions, pros and cons.

Input Schema

{
  "type": "object",
  "properties": {
    "slugs": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "minItems": 2,
      "maxItems": 4
    },
    "detail": {
      "type": "string",
      "enum": [
        "compact",
        "full"
      ]
    },
    "context": {
      "type": "string",
      "description": "Optional. In a few words, what the user is trying to do. No names, emails or other personal data."
    }
  },
  "required": [
    "slugs"
  ]
}

Output Schema

{
  "type": "object",
  "properties": {
    "tools": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": true
      },
      "description": "Compared tools, in requested order"
    },
    "comparison": {
      "type": "object",
      "description": "Computed winners",
      "properties": {
        "bestOverall": {
          "type": [
            "string",
            "null"
          ]
        },
        "bestValue": {
          "type": [
            "string",
            "null"
          ]
        },
        "mostReviewed": {
          "type": [
            "string",
            "null"
          ]
        }
      },
      "additionalProperties": true
    },
    "citation": {
      "type": "string"
    }
  },
  "additionalProperties": true
}
🟢get_alternatives(slug, limit, context)

Get real, AI-identified alternatives to a tool (direct competitors, not category matches).

Input Schema

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string"
    },
    "limit": {
      "type": "number",
      "minimum": 1,
      "maximum": 20,
      "description": "Default 10, max 20"
    },
    "context": {
      "type": "string",
      "description": "Optional. In a few words, what the user is trying to do. No names, emails or other personal data."
    }
  },
  "required": [
    "slug"
  ]
}

Output Schema

{
  "type": "object",
  "properties": {
    "tool": {
      "type": "string",
      "description": "The tool alternatives were requested for"
    },
    "alternatives": {
      "type": "array",
      "items": {
        "type": "object",
        "description": "One tool in a result list",
        "properties": {
          "name": {
            "type": "string"
          },
          "slug": {
            "type": "string"
          },
          "tagline": {
            "type": "string"
          },
          "pricing": {
            "type": "string",
            "description": "free | freemium | paid"
          },
          "url": {
            "type": "string",
            "description": "Toolradar page for the tool"
          }
        },
        "additionalProperties": true
      }
    },
    "citation": {
      "type": "string"
    }
  },
  "additionalProperties": true
}
🟢verify_price(slug, context)

Read the vendor's pricing page now and check the stored prices against it. Returns each plan's result, the read date and a hash of the page. Needs a free API key; one read per tool per day.

Input Schema

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string"
    },
    "context": {
      "type": "string",
      "description": "Optional. In a few words, what the user is trying to do. No names, emails or other personal data."
    }
  },
  "required": [
    "slug"
  ]
}

Output Schema

{
  "type": "object",
  "properties": {
    "confirmed": {
      "type": "boolean",
      "description": "Every stored paid price is printed on the page"
    },
    "url": {
      "type": "string"
    },
    "readAt": {
      "type": "string"
    },
    "pageSha256": {
      "type": "string"
    },
    "plans": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": true
      }
    }
  },
  "additionalProperties": true
}
🟢agent_trends(context)

What AI assistants open on Toolradar while answering people, in aggregate and anonymous: most read tools, most compared tools, top categories, from verified assistant traffic. MCP-only figures appear once they reach 1,000 calls a week.

Input Schema

{
  "type": "object",
  "properties": {
    "context": {
      "type": "string",
      "description": "Optional. In a few words, what the user is trying to do. No names, emails or other personal data."
    }
  }
}
🟢changes_since(since, category, limit, context)

Software pricing changes Toolradar confirmed on vendor pages since a date, newest first. A vendor's own site does not give you this. The record starts in October 2026: no entry for a tool means no change recorded, not proof of a stable price.

Input Schema

{
  "type": "object",
  "properties": {
    "since": {
      "type": "string",
      "description": "ISO date, e.g. 2026-10-01"
    },
    "category": {
      "type": "string",
      "description": "Category slug (optional)"
    },
    "limit": {
      "type": "number",
      "minimum": 1,
      "maximum": 50,
      "description": "Default 20, max 50"
    },
    "context": {
      "type": "string",
      "description": "Optional. In a few words, what the user is trying to do. No names, emails or other personal data."
    }
  },
  "required": [
    "since"
  ]
}

Output Schema

{
  "type": "object",
  "properties": {
    "since": {
      "type": "string"
    },
    "count": {
      "type": "number"
    },
    "changes": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": true
      }
    },
    "note": {
      "type": "string"
    },
    "citation": {
      "type": "string"
    }
  },
  "additionalProperties": true
}
🟢list_categories(context)

List the software categories Toolradar tracks.

Input Schema

{
  "type": "object",
  "properties": {
    "context": {
      "type": "string",
      "description": "Optional. In a few words, what the user is trying to do. No names, emails or other personal data."
    }
  }
}

Output Schema

{
  "type": "object",
  "properties": {
    "count": {
      "type": "number"
    },
    "categories": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "slug": {
            "type": "string"
          },
          "toolCount": {
            "type": "number"
          }
        },
        "additionalProperties": true
      }
    }
  },
  "additionalProperties": true
}
⚪report_issue(slug, field, claim, evidence_url, quote, ...)

Report a data problem you spotted (wrong price, dead tool, missing feature). Files it to the Toolradar verification queue. Use this when our data looks wrong so we can fix it: what Toolradar shows, what the vendor's own page says, and that page as evidence. A report on a tool and field that already has an open ticket is added to it; a pricing report also queues the tool's pricing page for a fresh read.

Input Schema

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string",
      "description": "The tool the issue is about"
    },
    "field": {
      "type": "string",
      "enum": [
        "pricing",
        "status",
        "feature",
        "other"
      ]
    },
    "claim": {
      "type": "string",
      "description": "What is wrong, and what it should be"
    },
    "evidence_url": {
      "type": "string",
      "description": "The vendor's own page that shows it. With quote, this is proof: we read that page ourselves."
    },
    "quote": {
      "type": "string",
      "description": "The exact sentence on that page. Must be on the tool's own domain, word for word, with the amount."
    },
    "plan": {
      "type": "string",
      "description": "For a wrong price: the plan name as we list it"
    },
    "price": {
      "type": "number",
      "description": "For a wrong price: the monthly amount on the page"
    },
    "billing": {
      "type": "string",
      "enum": [
        "monthly",
        "yearly"
      ]
    },
    "page_url": {
      "type": "string",
      "description": "The page you were working on when you found it, e.g. the article being written (optional)"
    },
    "reporter": {
      "type": "string",
      "description": "Who found it: your agent or workflow name (optional, 60 characters)"
    },
    "context": {
      "type": "string",
      "description": "Optional. In a few words, what the user is trying to do. No names, emails or other personal data."
    }
  },
  "required": [
    "slug",
    "field",
    "claim"
  ]
}

Output Schema

{
  "type": "object",
  "properties": {
    "ticket_id": {
      "type": "string"
    },
    "status": {
      "type": "string"
    },
    "eta": {
      "type": "string"
    },
    "message": {
      "type": "string"
    }
  },
  "additionalProperties": true
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded11 tools
verifiedversion not recorded8 tools