whycant

Roast any AI agent idea from your IDE: verdict tier, readiness score, top risk, shareable URL.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
80%
Naming quality
90%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,132Tokens (tool definitions)
~2.3 KBTypical response size
Moderate attention impact (0.88% 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": {
    "whycant": {
      "url": "https://whycantwehaveanagentforthis.com/api/mcp"
    }
  }
}

Remote endpoints

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

What it can do

Tool inventory

Tools (4)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟡roast_idea(idea)

Get the full whycantwehaveanagentforthis.com roast for an AI agent idea: the verdict tier, an agent-readiness score (0-100 + band), the top OWASP-MCP security risk, the "you're the X% who…" framing, and a shareable /result URL. Every call mints a real, persistent result page (its own OG share card) — so roasting from your IDE also publishes it. Anonymous (no token): 3/hour, 10/day. Add a token for higher limits.

Input Schema

{
  "type": "object",
  "properties": {
    "idea": {
      "type": "string",
      "description": "The agent idea or problem to analyze, in one or two sentences. e.g. \"an agent that auto-declines pointless meetings\"."
    }
  },
  "required": [
    "idea"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "agentName": {
      "type": "string"
    },
    "verdict": {
      "type": "string",
      "description": "Real VerdictTier enum value, e.g. SHUT_UP_AND_TAKE_MY_MONEY"
    },
    "verdictLabel": {
      "type": "string"
    },
    "readinessScore": {
      "type": "number",
      "description": "Agent-readiness 0-100"
    },
    "readinessBand": {
      "type": "string",
      "description": "Letter band A-F"
    },
    "topRiskCode": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "Top OWASP-MCP risk code, e.g. MCP-3"
    },
    "topRiskTitle": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "percentileFraming": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "\"You're the X% who…\" line"
    },
    "savageLine": {
      "type": "string"
    },
    "resultUrl": {
      "type": "string",
      "description": "Canonical /result/[id] share URL"
    },
    "scopeCallUrl": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "Cal.com 20-min scope-call URL"
    }
  },
  "required": [
    "agentName",
    "verdict",
    "verdictLabel",
    "readinessScore",
    "readinessBand",
    "topRiskCode",
    "topRiskTitle",
    "percentileFraming",
    "savageLine",
    "resultUrl",
    "scopeCallUrl"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🟢get_verdict(id)

Fetch a verdict that was already minted, by its result id or slug. Read-only — no new analysis, no rate-limit cost. Returns the same structured verdict shape as roast_idea.

Input Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "The /result/[id] id or slug returned by a prior roast_idea call."
    }
  },
  "required": [
    "id"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "agentName": {
      "type": "string"
    },
    "verdict": {
      "type": "string",
      "description": "Real VerdictTier enum value, e.g. SHUT_UP_AND_TAKE_MY_MONEY"
    },
    "verdictLabel": {
      "type": "string"
    },
    "readinessScore": {
      "type": "number",
      "description": "Agent-readiness 0-100"
    },
    "readinessBand": {
      "type": "string",
      "description": "Letter band A-F"
    },
    "topRiskCode": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "Top OWASP-MCP risk code, e.g. MCP-3"
    },
    "topRiskTitle": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "percentileFraming": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "\"You're the X% who…\" line"
    },
    "savageLine": {
      "type": "string"
    },
    "resultUrl": {
      "type": "string",
      "description": "Canonical /result/[id] share URL"
    },
    "scopeCallUrl": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "Cal.com 20-min scope-call URL"
    }
  },
  "required": [
    "agentName",
    "verdict",
    "verdictLabel",
    "readinessScore",
    "readinessBand",
    "topRiskCode",
    "topRiskTitle",
    "percentileFraming",
    "savageLine",
    "resultUrl",
    "scopeCallUrl"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🟢get_stats

Live public numbers for whycantwehaveanagentforthis.com: total ideas roasted, live results, % told to ship, % that already exist, roast battles, and how many roasts came in via MCP. Read-only, no rate-limit cost.

Input Schema

{
  "type": "object",
  "properties": {},
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢browse_explore(query, sort, limit)

Page through existing public roasts (the /explore feed) with their shareable /result URLs. Optional free-text query and sort (newest | top | money). Read-only, no rate-limit cost — use it to see whether an idea was already roasted before minting a new one.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "description": "Free-text filter over name/problem.",
      "type": "string"
    },
    "sort": {
      "description": "Sort order. Default: newest.",
      "type": "string",
      "enum": [
        "newest",
        "top",
        "money"
      ]
    },
    "limit": {
      "description": "Max 20. Default 10.",
      "type": "integer",
      "minimum": 1,
      "maximum": 20
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded4 tools
verifiedversion not recorded4 tools