{
  "$schema": "https://modelcontextprotocol.io/schemas/server-card/v1.0",
  "version": "1.0",
  "protocolVersion": "2026-07-28",
  "serverInfo": {
    "name": "previbe",
    "version": "3.3.3",
    "description": "Product Research for Lean SaaS Founders",
    "homepage": "https://previbe.io/mcp"
  },
  "transport": {
    "type": "streamable-http",
    "url": "https://previbe.io/api/mcp"
  },
  "capabilities": {
    "tools": true,
    "resources": false,
    "prompts": true
  },
  "auth": {
    "type": "oauth2",
    "authorizationServer": "https://previbe.io/.well-known/oauth-authorization-server",
    "protectedResource": "https://previbe.io/.well-known/oauth-protected-resource",
    "setupUrl": "https://previbe.io/mcp"
  },
  "tools": [
    {
      "name": "create_research",
      "title": "Create Research",
      "description": "Generate a comprehensive market research report based on a business idea. Accepts anything from a one-liner to full multiline notes (up to 4,000 characters). Costs 1 credit. Returns a compact summary - verdict badge, score, one-paragraph summary, key findings, top bets, and the research ID/URL - not the full report; fetch the full report on demand with get_research.",
      "annotations": {
        "readOnlyHint": false,
        "destructiveHint": false,
        "idempotentHint": false,
        "openWorldHint": true
      }
    },
    {
      "name": "list_researches",
      "title": "List Researches",
      "description": "List all researches for the authenticated user with pagination support. Returns a formatted table.",
      "annotations": {
        "readOnlyHint": true,
        "openWorldHint": false
      }
    },
    {
      "name": "get_research",
      "title": "Get Research",
      "description": "Get detailed information about a specific research by ID, including full results.",
      "annotations": {
        "readOnlyHint": true,
        "openWorldHint": false
      }
    },
    {
      "name": "retry_research",
      "title": "Retry Research",
      "description": "Retry a research whose generation did not complete (status failed, or stuck without a result). Free - the credit was already charged when the research was created. Returns the same compact summary as create_research (verdict, summary, key findings, ID/URL); fetch the full report with get_research.",
      "annotations": {
        "readOnlyHint": false,
        "destructiveHint": false,
        "idempotentHint": false,
        "openWorldHint": true
      }
    },
    {
      "name": "delete_research",
      "title": "Delete Research",
      "description": "Delete a specific research by ID. Free. Only deletes research owned by the authenticated user. Any deep dives linked to it are removed with it (cascade). This action cannot be undone.",
      "annotations": {
        "readOnlyHint": false,
        "destructiveHint": true,
        "idempotentHint": true,
        "openWorldHint": false
      }
    },
    {
      "name": "create_deep_dive",
      "title": "Create Deep Dive",
      "description": "Generate an in-depth framework analysis (jobs-to-be-done, positioning, MVP scope, Kano, pricing, 90-day plan, risks) for a completed research. Seeded strictly from that research - no new market data. `target` selects what to analyze: the founder's own idea (`idea`) or one of the report's top bets (`bet-1`/`bet-2`/`bet-3`); omit it to use the verdict-resolved default. Requires the parent research to be complete. Costs 1 credit. Returns the full deep-dive analysis.",
      "annotations": {
        "readOnlyHint": false,
        "destructiveHint": false,
        "idempotentHint": false,
        "openWorldHint": false
      }
    },
    {
      "name": "list_deep_dives",
      "title": "List Deep Dives",
      "description": "List all deep dives generated for a specific research. Returns a formatted table.",
      "annotations": {
        "readOnlyHint": true,
        "openWorldHint": false
      }
    },
    {
      "name": "get_deep_dive",
      "title": "Get Deep Dive",
      "description": "Get a specific deep dive by ID, including its full analysis text.",
      "annotations": {
        "readOnlyHint": true,
        "openWorldHint": false
      }
    },
    {
      "name": "retry_deep_dive",
      "title": "Retry Deep Dive",
      "description": "Retry a deep dive whose generation did not complete (status failed, or stuck without a result). Free - the credit was already charged when the deep dive was created. Returns the full regenerated analysis.",
      "annotations": {
        "readOnlyHint": false,
        "destructiveHint": false,
        "idempotentHint": false,
        "openWorldHint": false
      }
    },
    {
      "name": "delete_deep_dive",
      "title": "Delete Deep Dive",
      "description": "Delete a specific deep dive by ID. Free. Only deletes a deep dive whose parent research the authenticated user owns. This action cannot be undone.",
      "annotations": {
        "readOnlyHint": false,
        "destructiveHint": true,
        "idempotentHint": true,
        "openWorldHint": false
      }
    },
    {
      "name": "create_brand_names",
      "title": "Create Brand Names",
      "description": "Generate a set of brandable names for a completed research, each grounded in the report's positioning and checked for an available domain. `target` selects what to name: the founder's own idea (`idea`, the default) or one of the report's top bets (`bet-1`/`bet-2`/`bet-3`). Requires the parent research to be complete. Costs 1 credit. Returns a table - each name with its domain, availability, price, and the other available domains for it (`.com` get/try/hq companions and TLD variants), the same options the website shows.",
      "annotations": {
        "readOnlyHint": false,
        "destructiveHint": false,
        "idempotentHint": false,
        "openWorldHint": true
      }
    },
    {
      "name": "list_brand_names",
      "title": "List Brand-Name Runs",
      "description": "List all brand-name runs generated for a specific research (a research can hold several). Returns a table of runs - id, target, created, name count, and status.",
      "annotations": {
        "readOnlyHint": true,
        "openWorldHint": false
      }
    },
    {
      "name": "get_brand_names",
      "title": "Get Brand-Name Run",
      "description": "Get one brand-name run by id: all of its names, each with the name's domain, availability, price, and its other available domains (`.com` get/try/hq companions and TLD variants).",
      "annotations": {
        "readOnlyHint": true,
        "openWorldHint": false
      }
    },
    {
      "name": "suggest_more_brand_names",
      "title": "Suggest More Brand Names",
      "description": "Append a fresh batch of names to an existing brand-name run - names not already shown; nothing is removed. Free. Capped at a few rounds per run; every run render states how many rounds remain, so you never have to hit the cap to find out. Returns the run with its new names.",
      "annotations": {
        "readOnlyHint": false,
        "destructiveHint": false,
        "idempotentHint": false,
        "openWorldHint": true
      }
    },
    {
      "name": "check_brand_names_domain_availability",
      "title": "Check Domain Availability",
      "description": "Fill in domain availability and prices for names in a run that were saved without them (the registrar was throttled at generation time). Free. Only re-checks names still marked \"not checked\"; a run whose names are all resolved is returned unchanged.",
      "annotations": {
        "readOnlyHint": false,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      }
    },
    {
      "name": "delete_brand_names",
      "title": "Delete Brand-Name Run",
      "description": "Delete a brand-name run by id. Free. Only deletes a run whose parent research the authenticated user owns. This action cannot be undone.",
      "annotations": {
        "readOnlyHint": false,
        "destructiveHint": true,
        "idempotentHint": true,
        "openWorldHint": false
      }
    },
    {
      "name": "check_credits",
      "title": "Check Credits",
      "description": "Check the current credit balance for the authenticated user.",
      "annotations": {
        "readOnlyHint": true,
        "openWorldHint": false
      }
    }
  ]
}