Server definition
- Hash
- sha256:19e38c521bce4fea162c7850345fe7e9e29a77aa44037e36308e5a05e27586d7
- What it is
- What a remote MCP server returned when asked what it offers: 21 tools
The blob, as servednamed by its sha256
{
"instructions": "ideaudit MCP server, guest lane — no API key was sent, so this is the set that costs nothing to serve: deterministic scoring, including the verdict. Call `get_started` for what an account adds and how to get one. Everything needing storage or paid data is behind a key on this same endpoint.",
"tools": [
{
"description": "Compute barrier_score (0-24) + label (PRISTINE/OPEN/COMPETITIVE/CROWDED) from competitor counts + SERP noise fraction.",
"inputSchema": {
"properties": {
"adjacentCompetitorCount": {
"default": 0,
"minimum": 0,
"type": "integer"
},
"directCompetitorCount": {
"minimum": 0,
"type": "integer"
},
"serpNoise": {
"default": 0,
"maximum": 1,
"minimum": 0,
"type": "number"
}
},
"required": [
"directCompetitorCount"
],
"type": "object"
},
"name": "compute_barrier",
"outputSchema": null
},
{
"description": "Compute budget_proof_score (0-10) + label (STRONG/CONFIRMED/WEAK/ABSENT) + purchase_intent_pct from pricing hits + review-site hits + intent mentions.",
"inputSchema": {
"properties": {
"hasNamedPricing": {
"type": "boolean"
},
"pricingHitsCount": {
"minimum": 0,
"type": "integer"
},
"purchaseIntentMentions": {
"minimum": 0,
"type": "integer"
},
"reviewSiteHitsCount": {
"minimum": 0,
"type": "integer"
}
},
"required": [
"pricingHitsCount"
],
"type": "object"
},
"name": "compute_budget_proof",
"outputSchema": null
},
{
"description": "Compute build_complexity_penalty (0-10, higher = worse) + per-factor breakdown. Hard tags: ml/realtime/blockchain/hardware/compliance/custom-ai/regulated/on-device-ai/iot.",
"inputSchema": {
"properties": {
"externalApisCount": {
"minimum": 0,
"type": "integer"
},
"integrationsCount": {
"minimum": 0,
"type": "integer"
},
"stackComplexityTags": {
"items": {
"type": "string"
},
"type": "array"
}
},
"required": [
"externalApisCount"
],
"type": "object"
},
"name": "compute_build_complexity",
"outputSchema": null
},
{
"description": "Compute 12 deterministic collection scores (0-100) + badges + death reason for an enriched idea. Pure math. No external calls.",
"inputSchema": {
"properties": {
"analysisId": {
"type": "string"
},
"enrichedData": {
"description": "EnrichedData with canonical_idea signals.",
"type": "object"
}
},
"required": [
"analysisId",
"enrichedData"
],
"type": "object"
},
"name": "compute_collection_scores",
"outputSchema": null
},
{
"description": "Crossed-product audit explorer. Same input as compute_dealbreakers_v2 — returns substrate verdict (no-observer baseline) + crossed verdict (when observer supplied) + a 5-row matrix of {solo, cofounded_technical, cofounded_business, domain_expert, serial} archetype verdicts. Never persists; meant for the dashboard \"view as [archetype]\" dropdown and for previewing a verdict before committing to it.",
"inputSchema": {
"properties": {
"hasMajorContradiction": {
"default": false,
"type": "boolean"
},
"lensScores": {
"items": {
"properties": {
"confidence": {
"maximum": 1,
"minimum": 0,
"type": "number"
},
"lens": {
"enum": [
"team",
"problem_solution",
"traction",
"competition",
"gtm",
"finance"
],
"type": "string"
},
"redFlag": {
"type": "boolean"
},
"score": {
"maximum": 100,
"minimum": 0,
"type": "number"
}
},
"required": [
"lens",
"score",
"confidence"
],
"type": "object"
},
"type": "array"
},
"observer": {
"description": "Founder profile that crosses with the substrate idea to produce an observer-relative verdict. When omitted, only the substrate verdict is returned.",
"properties": {
"capital_usd_band": {
"enum": [
"under_50k",
"50k_500k",
"500k_5m",
"over_5m"
],
"type": "string"
},
"exit_goal": {
"enum": [
"lifestyle",
"acquisition",
"ipo",
"unicorn"
],
"type": "string"
},
"expertise_sectors": {
"items": {
"maxLength": 80,
"minLength": 2,
"type": "string"
},
"maxItems": 8,
"type": "array"
},
"founder_type": {
"enum": [
"solo",
"cofounded_technical",
"cofounded_business",
"domain_expert",
"serial"
],
"type": "string"
},
"risk_tolerance": {
"enum": [
"conservative",
"moderate",
"aggressive"
],
"type": "string"
},
"runway_months": {
"maximum": 60,
"minimum": 0,
"type": "integer"
},
"time_horizon_years": {
"maximum": 15,
"minimum": 1,
"type": "integer"
}
},
"required": [
"founder_type"
],
"type": "object"
},
"sector": {
"type": "string"
},
"stage": {
"enum": [
"idea",
"mvp",
"seed",
"series_a_plus"
],
"type": "string"
},
"stageProbabilities": {
"properties": {
"idea": {
"maximum": 1,
"minimum": 0,
"type": "number"
},
"mvp": {
"maximum": 1,
"minimum": 0,
"type": "number"
},
"seed": {
"maximum": 1,
"minimum": 0,
"type": "number"
},
"series_a_plus": {
"maximum": 1,
"minimum": 0,
"type": "number"
}
},
"type": "object"
},
"unresolvedContradictions": {
"default": 0,
"minimum": 0,
"type": "integer"
}
},
"required": [
"stage",
"lensScores"
],
"type": "object"
},
"name": "compute_crossed_matrix",
"outputSchema": null
},
{
"description": "Methodology v2 dealbreakers — stage-aware weights + confidence-weighted lens scoring + risk-asymmetric verdict (GO requires score≥80 AND zero red flags AND avg confidence≥0.6). Optional `observer` triggers the crossed-product pipeline: substrate verdict (no-observer baseline) PLUS crossed verdict (observer-perturbed weights, risk-tolerance shifted thresholds) PLUS 5-row archetype matrix. The KILL gate (≥2 blockers / score<50) is observer-invariant — fatal stays fatal.",
"inputSchema": {
"properties": {
"hasMajorContradiction": {
"default": false,
"type": "boolean"
},
"lensScores": {
"items": {
"properties": {
"confidence": {
"maximum": 1,
"minimum": 0,
"type": "number"
},
"lens": {
"enum": [
"team",
"problem_solution",
"traction",
"competition",
"gtm",
"finance"
],
"type": "string"
},
"redFlag": {
"type": "boolean"
},
"score": {
"maximum": 100,
"minimum": 0,
"type": "number"
}
},
"required": [
"lens",
"score",
"confidence"
],
"type": "object"
},
"type": "array"
},
"observer": {
"description": "Founder profile that crosses with the substrate idea to produce an observer-relative verdict. When omitted, only the substrate verdict is returned.",
"properties": {
"capital_usd_band": {
"enum": [
"under_50k",
"50k_500k",
"500k_5m",
"over_5m"
],
"type": "string"
},
"exit_goal": {
"enum": [
"lifestyle",
"acquisition",
"ipo",
"unicorn"
],
"type": "string"
},
"expertise_sectors": {
"items": {
"maxLength": 80,
"minLength": 2,
"type": "string"
},
"maxItems": 8,
"type": "array"
},
"founder_type": {
"enum": [
"solo",
"cofounded_technical",
"cofounded_business",
"domain_expert",
"serial"
],
"type": "string"
},
"risk_tolerance": {
"enum": [
"conservative",
"moderate",
"aggressive"
],
"type": "string"
},
"runway_months": {
"maximum": 60,
"minimum": 0,
"type": "integer"
},
"time_horizon_years": {
"maximum": 15,
"minimum": 1,
"type": "integer"
}
},
"required": [
"founder_type"
],
"type": "object"
},
"sector": {
"type": "string"
},
"stage": {
"enum": [
"idea",
"mvp",
"seed",
"series_a_plus"
],
"type": "string"
},
"stageProbabilities": {
"properties": {
"idea": {
"maximum": 1,
"minimum": 0,
"type": "number"
},
"mvp": {
"maximum": 1,
"minimum": 0,
"type": "number"
},
"seed": {
"maximum": 1,
"minimum": 0,
"type": "number"
},
"series_a_plus": {
"maximum": 1,
"minimum": 0,
"type": "number"
}
},
"type": "object"
},
"unresolvedContradictions": {
"default": 0,
"minimum": 0,
"type": "integer"
}
},
"required": [
"stage",
"lensScores"
],
"type": "object"
},
"name": "compute_dealbreakers_v2",
"outputSchema": null
},
{
"description": "Compute funding_momentum_score (0-10) + badge (HOT/WARM/COOL/COLD) from tier-weighted funding-article hit counts.",
"inputSchema": {
"properties": {
"hitsByTier": {
"properties": {
"presswire": {
"minimum": 0,
"type": "integer"
},
"regional": {
"minimum": 0,
"type": "integer"
},
"tier_1": {
"minimum": 0,
"type": "integer"
},
"vertical": {
"minimum": 0,
"type": "integer"
}
},
"type": "object"
},
"recent30dHits": {
"minimum": 0,
"type": "integer"
}
},
"required": [
"hitsByTier"
],
"type": "object"
},
"name": "compute_funding_momentum",
"outputSchema": null
},
{
"description": "Compute hiring_demand_score (0-10) from priority-weighted ATS site hit counts (use registries/hiring-sources for priorities).",
"inputSchema": {
"properties": {
"sites": {
"items": {
"properties": {
"domain": {
"type": "string"
},
"hits": {
"minimum": 0,
"type": "integer"
},
"priority": {
"enum": [
1,
2,
3
],
"type": "integer"
}
},
"required": [
"domain",
"hits",
"priority"
],
"type": "object"
},
"type": "array"
}
},
"required": [
"sites"
],
"type": "object"
},
"name": "compute_hiring_demand",
"outputSchema": null
},
{
"description": "Compose lrs_final_100 (0-100) + label (WEAK/EMERGING/GOOD/STRONG/ELITE) + leaderboard_eligible flag + sub-percent breakdown. Weights: sv 0.25, sp 0.30, barrier 0.25, monetization 0.20.",
"inputSchema": {
"properties": {
"barrierScore": {
"maximum": 24,
"minimum": 0,
"type": "number"
},
"monetizationScore": {
"maximum": 21,
"minimum": 0,
"type": "number"
},
"searchVelocityScore": {
"maximum": 25,
"minimum": 0,
"type": "number"
},
"socialPainScore": {
"maximum": 30,
"minimum": 0,
"type": "number"
}
},
"required": [
"searchVelocityScore",
"socialPainScore",
"barrierScore",
"monetizationScore"
],
"type": "object"
},
"name": "compute_lrs_composite",
"outputSchema": null
},
{
"description": "LRS composite v2 — 6 components (SV, Pain, Barrier, Monet, X-Signal, Budget-Proof). Default Python weights 0.18/0.22/0.18/0.14/0.18/0.10 sum=1.0. Returns BOTH weighted score and equal-weight baseline (per OECD Handbook + Greco 2018 — equal-weight is defensible default when no outcome calibration exists). buildComplexityPenalty 0-10 subtracted from score. sectorProfile (ai_native/creator/crypto) opt-in reshuffles SV→0.16, X→0.20. Labels: THE_ROAR (≥80) / PROMISING (≥60) / EXPERIMENTAL (≥40) / WEAK_SIGNAL (<40).",
"inputSchema": {
"properties": {
"barrierScore": {
"maximum": 24,
"minimum": 0,
"type": "number"
},
"budgetProofScore": {
"maximum": 10,
"minimum": 0,
"type": "number"
},
"buildComplexityPenalty": {
"maximum": 10,
"minimum": 0,
"type": "number"
},
"monetizationScore": {
"maximum": 21,
"minimum": 0,
"type": "number"
},
"searchVelocityScore": {
"maximum": 25,
"minimum": 0,
"type": "number"
},
"sectorProfile": {
"description": "Opt-in sector weight override. Default uses Python canonical weights.",
"enum": [
"default",
"ai_native",
"creator",
"crypto"
],
"type": "string"
},
"socialPainScore": {
"maximum": 30,
"minimum": 0,
"type": "number"
},
"xSignalScore": {
"maximum": 20,
"minimum": 0,
"type": "number"
}
},
"required": [
"searchVelocityScore",
"socialPainScore",
"barrierScore",
"monetizationScore",
"xSignalScore",
"budgetProofScore"
],
"type": "object"
},
"name": "compute_lrs_composite_v2",
"outputSchema": null
},
{
"description": "Compute monetization_score (0-21) + label + has_pricing_anchors from pricing anchors + model tags + deal cycle hint.",
"inputSchema": {
"properties": {
"dealCycle": {
"description": "instant/days/weeks/months/quarters",
"type": "string"
},
"modelTags": {
"description": "e.g. [\"subscription\",\"usage\",\"marketplace\"]",
"items": {
"type": "string"
},
"type": "array"
},
"pricingAnchorsCount": {
"minimum": 0,
"type": "integer"
}
},
"required": [
"pricingAnchorsCount"
],
"type": "object"
},
"name": "compute_monetization",
"outputSchema": null
},
{
"description": "Multi-source TAM consensus. Pass 2-3 sources of market-size text. Optional `estimateYear` per source — when supplied, the result includes yearRange and a hasStaleData flag (true if the span exceeds 5 years). Outliers are dropped by modified Z-score over the median absolute deviation when n≥4. Returns the extracted dollar amounts + consensus median + an agreement score 0..1, where 1 means every source lands within 20% of the median.",
"inputSchema": {
"properties": {
"inputs": {
"items": {
"properties": {
"estimateYear": {
"description": "Optional: year the estimate was published.",
"maximum": 2100,
"minimum": 1990,
"type": "integer"
},
"source": {
"type": "string"
},
"text": {
"type": "string"
}
},
"required": [
"source",
"text"
],
"type": "object"
},
"type": "array"
}
},
"required": [
"inputs"
],
"type": "object"
},
"name": "compute_multi_source_tam",
"outputSchema": null
},
{
"description": "Wave 5 N.4 — compute ppc_spend_score (0-10) + label (STRONG/CONFIRMED/WEAK/ABSENT) + market_saturation from PPC traffic projection (avgCpcUsd, totalMonthlySpendUsd, optional competitorBidders + competition). Feed numbers from dataforseo_ad_traffic.",
"inputSchema": {
"properties": {
"avgCpcUsd": {
"minimum": 0,
"type": "number"
},
"competition": {
"maximum": 1,
"minimum": 0,
"type": "number"
},
"competitorBidders": {
"minimum": 0,
"type": "integer"
},
"totalMonthlySpendUsd": {
"minimum": 0,
"type": "number"
}
},
"required": [
"avgCpcUsd",
"totalMonthlySpendUsd"
],
"type": "object"
},
"name": "compute_ppc_spend_signal",
"outputSchema": null
},
{
"description": "Compute search_velocity_score (0-25) from Trends timeline values + rising queries count + geo region count.",
"inputSchema": {
"properties": {
"geoRegionCount": {
"minimum": 0,
"type": "integer"
},
"risingQueriesCount": {
"minimum": 0,
"type": "integer"
},
"timelineValues": {
"description": "Monthly Trends values 0-100 (e.g. last 10-12 months).",
"items": {
"maximum": 100,
"minimum": 0,
"type": "number"
},
"type": "array"
}
},
"required": [
"timelineValues"
],
"type": "object"
},
"name": "compute_search_velocity",
"outputSchema": null
},
{
"description": "Search velocity (0-25) v2 — canonical 0.40*volume + 0.30*trend + 0.20*intent + 0.10*geo. CRITICAL: externalVolumeNorm MUST come from external sources (Amazon BSR / app store installs / job-board postings) — NOT the Trends timeline (would double-count, since Trends is itself normalized 0-100 within window). trendNorm is derived internally from trendsTimelineValues. Trends peak<50 zeroes the trend component (Yotpo SEO floor). Optional daysSinceLastSignal applies exponential freshness decay (search half-life 90d).",
"inputSchema": {
"properties": {
"daysSinceLastSignal": {
"description": "Optional: days since most recent confirming signal. Triggers exponential freshness decay (half-life 90d).",
"minimum": 0,
"type": "number"
},
"externalVolumeNorm": {
"description": "Normalized 0-1 demand volume from EXTERNAL sources (Amazon, app stores, jobs). Caller normalizes before passing.",
"maximum": 1,
"minimum": 0,
"type": "number"
},
"geoSpreadNorm": {
"description": "0-1 geographic spread (regions with interest > threshold).",
"maximum": 1,
"minimum": 0,
"type": "number"
},
"intentNorm": {
"description": "0-1 commercial/transactional intent ratio.",
"maximum": 1,
"minimum": 0,
"type": "number"
},
"trendsTimelineValues": {
"description": "Monthly Trends values 0-100. Used ONLY to derive trendNorm — never as raw volume.",
"items": {
"maximum": 100,
"minimum": 0,
"type": "number"
},
"type": "array"
}
},
"required": [
"trendsTimelineValues",
"externalVolumeNorm",
"intentNorm",
"geoSpreadNorm"
],
"type": "object"
},
"name": "compute_search_velocity_v2",
"outputSchema": null
},
{
"description": "Compute social_pain_score (0-30) + total mentions + dominant perspective (business/consumer/trend/mixed).",
"inputSchema": {
"properties": {
"categoryCounts": {
"properties": {
"business": {
"minimum": 0,
"type": "integer"
},
"consumer": {
"minimum": 0,
"type": "integer"
},
"trend": {
"minimum": 0,
"type": "integer"
}
},
"type": "object"
},
"intentMentions": {
"default": 0,
"minimum": 0,
"type": "integer"
},
"painMentions": {
"minimum": 0,
"type": "integer"
},
"urgencyMentions": {
"default": 0,
"minimum": 0,
"type": "integer"
}
},
"required": [
"painMentions"
],
"type": "object"
},
"name": "compute_social_pain",
"outputSchema": null
},
{
"description": "Compose composite_urgency_score (0-10) + badge (LOW/MEDIUM/HIGH/VERY_HIGH/EXTREME) from 3 sub-scores: news, pain, hiring.",
"inputSchema": {
"properties": {
"hiringSignalScore": {
"maximum": 10,
"minimum": 0,
"type": "number"
},
"newsSignalScore": {
"maximum": 10,
"minimum": 0,
"type": "number"
},
"painSignalScore": {
"maximum": 10,
"minimum": 0,
"type": "number"
}
},
"required": [
"newsSignalScore",
"painSignalScore",
"hiringSignalScore"
],
"type": "object"
},
"name": "compute_urgency_composite",
"outputSchema": null
},
{
"description": "Compute x_signal_score (0-20) + recency share + positivity rate from X/Twitter mention counts.",
"inputSchema": {
"properties": {
"founderMentions": {
"minimum": 0,
"type": "integer"
},
"mentionsCount": {
"minimum": 0,
"type": "integer"
},
"recent7dCount": {
"minimum": 0,
"type": "integer"
},
"sentimentNegative": {
"minimum": 0,
"type": "integer"
},
"sentimentPositive": {
"minimum": 0,
"type": "integer"
}
},
"required": [
"mentionsCount"
],
"type": "object"
},
"name": "compute_x_signal",
"outputSchema": null
},
{
"description": "Derive a falsifiable, data-driven list of kill criteria from upstream signals — the outputs of validate_unit_economics and compute_dealbreakers_v2, plus an ICP drift count. Returns one row per rule with {rule, threshold, status, evidence?}, where status is tripped_now / monitor / cleared. Replaces prose kill criteria, which are tautologies that can never fire.",
"inputSchema": {
"properties": {
"dealbreakers": {
"description": "The result of compute_dealbreakers_v2.",
"type": "object"
},
"icpDriftCount": {
"minimum": 0,
"type": "integer"
},
"unitEcon": {
"description": "The result of validate_unit_economics.",
"type": "object"
}
},
"required": [],
"type": "object"
},
"name": "derive_kill_criteria",
"outputSchema": null
},
{
"description": "What this server is, what it will do for you right now without an account, and what an account adds. Call this first if you have no API key — it answers in one round trip instead of sending you to a website.",
"inputSchema": {
"properties": {},
"required": [],
"type": "object"
},
"name": "get_started",
"outputSchema": null
},
{
"description": "Sanity-check a unit-economics row before publishing it in a business-model slide. Catches the math-drift class of failures (customers × ARPU ≠ revenue), enforces the LTV/CAC ≥ 1.5 floor, the cohort-positivity check, and CAC payback bounds. Returns {ok, errors[{rule, severity, detail}], derived{ratios}}. Skills MUST regenerate the row when ok=false (block-severity errors); warn-severity errors should be surfaced in the final report but do not gate publication. No LLM calls.",
"inputSchema": {
"properties": {
"annualRevenue": {
"type": "number"
},
"arpu": {
"type": "number"
},
"cac": {
"type": "number"
},
"customers": {
"type": "number"
},
"grossMargin": {
"type": "number"
},
"ltv": {
"type": "number"
},
"monthlyChurn": {
"type": "number"
}
},
"required": [
"customers",
"arpu",
"annualRevenue"
],
"type": "object"
},
"name": "validate_unit_economics",
"outputSchema": null
}
]
}Verify it yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:19e38c521bce4fea162c7850345fe7e9e29a77aa44037e36308e5a05e27586d7 | sha256sum