toolradar
Search, compare and price software tools. Verified prices with their date, real alternatives.
Should I use this
Quality & Safety
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
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
2.2.0stdioRemote endpoints
https://toolradar.com/api/mcpstreamable-httpWhat it can do
Tool inventory
Tools (11)
🟢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
Evidence