Skip to main content
Score an idea without leaving Cursor, Claude, or Codex. Same analysis as preuve.ai: viability score, competitors, source-linked evidence.
Same key as Get started. In claude.ai, adding the connector signs you in and mints the key for you, which works on a free account. Everywhere else, create one by hand at Account → API Keys, self-serve on a paid personal plan or in a Consultant or Agency workspace with an active subscription. A key made either way covers the five personal tools. Agency client projects need two extra scopes that are never granted implicitly: tick Include Agency workspace access when creating the key by hand, or approve the Agency permissions on the connector’s consent screen.

Connect

Paste this as-is. Keep the key out of the chat.

Tools

On a few fields the MCP schema is stricter than the HTTP API, and it validates before the call rather than trimming after it. idea must be 40 to 50,000 characters, targetMarket at most 180, and targetCountry, stage and budget at most 80. One schema serves both workspaces, so it carries the Agency route’s bounds even on a personal scan, where the HTTP route would have accepted a longer value and trimmed it. Size to these limits if you send the same body both ways.

Agency client projects

Consultant and AppSumo Agency accounts reach their workspace through the same tools: get_agency reads the workspace, and workspace: "agency" on start_analysis, get_analysis and export_analysis acts on it instead of the account’s own ideas. These use the same project quota as the Agency dashboard, and they need TWO things, checked in that order: a key carrying the scope that call needs, then live workspace membership. The two Agency scopes are enforced per route and neither implies the other, so a key holding only agency:read cannot start a client project and one holding only agency:write cannot read the workspace, poll or export a report (see the Scope column below). A key without the scope gets 403 INSUFFICIENT_SCOPE and never reaches the membership check, which is what every key created before 2026-09-09 receives; a scoped key on an account belonging to no workspace gets 404 AGENCY_NOT_FOUND. Personal AppSumo Tiers 1-3 continue to use the personal tools above. enrich_analysis takes no workspace, and client reports never need it: an Agency report is exportable the moment its status is COMPLETED. Calling enrich_analysis with a client reportId reaches the personal route and returns 404. A client project is always deep, and the stage and budget rule does not follow it there. Both stay optional, and both take free text up to 80 characters rather than the personal vocabulary, because a consultant records what the client said. Send them only as the client stated them, and start the project without them otherwise. All six tools are advertised to every client, with no scope filter. That is deliberate: a personal-only key discovers the Agency door and gets a refusal naming the recovery, instead of “unknown tool” from a list that changed shape between two accounts. The consequence is that a client which keeps making an Agency call on a key without the scope gets 403 every time, indefinitely. Nothing self-heals: the refusal is an answer, not a failure, and it ends when the key is replaced. One ceiling still applies, and it is not a scope ceiling. Every authenticated request passes an attempt limiter that bounds the key lookup itself, so a client looping hard enough to exhaust it receives 429 RATE_LIMITED instead of the 403, and the actionable message with it. Waiting clears the 429 and returns the 403; only a new key clears the 403. Ask your agent: “Check my Agency quota, then run a deep client project for this idea.” Starting a project spends Agency quota and never falls back to personal credits. Reuse the same clientRunId after a timeout to recover the original report without starting or charging for another one. An uncertain dispatch returns dispatchPending: true; retry the same start with the same clientRunId after 60 seconds. Recovery uses the original report and credit. After 23 hours, the response directs you to support instead of risking a duplicate job. A definite dispatch rejection restores the credit and returns TRIGGER_DISPATCH_FAILED. That failed request stays failed on replay; use a new clientRunId only when you intentionally start a new attempt. One clientRunId namespace covers both workspaces on a key. An id that already started a client project cannot start a personal scan, or the reverse: it returns 409 CLIENT_RUN_ID_CONFLICT. Changing workspace on a start you have already sent needs a new id. Reports appear in the Agency dashboard. Creating one through MCP does not email the client or publish a share link. Existing client reports can be read without having been created through MCP. Removing a collaborator’s workspace membership removes their Agency access on the next call, even if their personal key remains valid. Starter and refunded reports retain their normal content restrictions. Client sharing, pivots and other dashboard actions remain in the dashboard.

Keeping exports small

export_analysis takes verbosity: full or summary. summary drops section prose and the Google Trends data points, which together are about two thirds of a deep report, and keeps every scored field: score, verdict (including the Bottom Line narrative under details.verdict.narrative), competitors, market size, risks, pivots, citations. One subsection survives the trim: details.sections.synthesis, the report’s closing verdict (final verdict, key strengths and weaknesses, deal breakers, pivot recommendation). What it left out is listed under details.omitted. export_analysis defaults to full, in both workspaces.

Locked fields on a starter scan

A starter scan returns a real analysis, not a partial one, but it leaves the deep-tier fields null. A deep scan on the same idea fills in details.sections and details.pivots directly. Five more, details.founderFit, details.playbook, details.googleTrends, details.proofOfDemand and details.communityDemand, are opt-in modules: a deep report makes them available, and enrich_analysis generates them on request. Competitor detail, risk explanations, market segmentation (details.market.segments, industryTrends, competitivePositioning) and source citations (details.citations, details.searchContext.sources) are withheld the same way the web report withholds them from a free viewer. When anything is withheld, the export carries a top-level locked object naming each field, what unlocks it, and why. Read it before concluding a field is missing: null there means locked by tier, not a failed analysis.

Slash commands

The server also exposes two MCP prompts. They are shortcuts for you, not tools the model calls: pick one from your client (in Claude Code they are /mcp__preuve__validate_idea and /mcp__preuve__generate_ideas; in claude.ai they are under the + menu, Connectors).
  • validate_idea, taking the idea as its only argument, drops in a request that runs the scan and polls it to completion.
  • generate_ideas, taking your interests as its only argument, drops in a request that generates startup ideas - no prior report needed.

Example prompts

A deep scan spends the same quota as the web app. The MCP server does not add a second bill. See Quotas and billing.

Teach your agent the workflow

Your agent can keep scoring ideas without burning a paid scan. The Agent Skill is that judgment: starter vs deep, when to wait, when a retry is safe. Without it, agents often retry with a new id and spend a second deep scan. Install it once. It is a markdown file, not another key.