ideaudit
The scoring behind an audit allowed to say no. Twenty deterministic tools, offline, no account.
¿Debería usar esto?
Calidad y seguridad
Hallazgos (5)
- HIGH
- MEDIUMen compute_build_complexity
- LOWen compute_lrs_composite
- LOWen compute_multi_source_tam
- LOWen compute_urgency_composite
Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.
Costo de contexto
Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.
Instalar
Instalación con un clic
Agrega esto a tu archivo `claude_desktop_config.json`:
{
"mcpServers": {
"ideaudit-tools": {
"command": "npx",
"args": [
"@inite/ideaudit-tools"
]
}
}
}Paquetes ejecutables
1.0.0stdioPuntos de conexión remotos
https://api.inite.studio/mcpstreamable-httpQué puede hacer
Inventario de herramientas
Herramientas (21)
🟢get_started
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.
Esquema de entrada
{
"type": "object",
"properties": {},
"required": []
}🟢compute_barrier(directCompetitorCount, adjacentCompetitorCount, serpNoise)
Compute barrier_score (0-24) + label (PRISTINE/OPEN/COMPETITIVE/CROWDED) from competitor counts + SERP noise fraction.
Esquema de entrada
{
"type": "object",
"properties": {
"directCompetitorCount": {
"type": "integer",
"minimum": 0
},
"adjacentCompetitorCount": {
"type": "integer",
"minimum": 0,
"default": 0
},
"serpNoise": {
"type": "number",
"minimum": 0,
"maximum": 1,
"default": 0
}
},
"required": [
"directCompetitorCount"
]
}🟢compute_budget_proof(pricingHitsCount, reviewSiteHitsCount, purchaseIntentMentions, hasNamedPricing)
Compute budget_proof_score (0-10) + label (STRONG/CONFIRMED/WEAK/ABSENT) + purchase_intent_pct from pricing hits + review-site hits + intent mentions.
Esquema de entrada
{
"type": "object",
"properties": {
"pricingHitsCount": {
"type": "integer",
"minimum": 0
},
"reviewSiteHitsCount": {
"type": "integer",
"minimum": 0
},
"purchaseIntentMentions": {
"type": "integer",
"minimum": 0
},
"hasNamedPricing": {
"type": "boolean"
}
},
"required": [
"pricingHitsCount"
]
}🟢compute_build_complexity(externalApisCount, stackComplexityTags, integrationsCount)
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.
Esquema de entrada
{
"type": "object",
"properties": {
"externalApisCount": {
"type": "integer",
"minimum": 0
},
"stackComplexityTags": {
"type": "array",
"items": {
"type": "string"
}
},
"integrationsCount": {
"type": "integer",
"minimum": 0
}
},
"required": [
"externalApisCount"
]
}🟢compute_collection_scores(analysisId, enrichedData)
Compute 12 deterministic collection scores (0-100) + badges + death reason for an enriched idea. Pure math. No external calls.
Esquema de entrada
{
"type": "object",
"properties": {
"analysisId": {
"type": "string"
},
"enrichedData": {
"type": "object",
"description": "EnrichedData with canonical_idea signals."
}
},
"required": [
"analysisId",
"enrichedData"
]
}🟢compute_crossed_matrix(stage, sector, lensScores, stageProbabilities, unresolvedContradictions, ...)
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.
Esquema de entrada
{
"type": "object",
"properties": {
"stage": {
"type": "string",
"enum": [
"idea",
"mvp",
"seed",
"series_a_plus"
]
},
"sector": {
"type": "string"
},
"lensScores": {
"type": "array",
"items": {
"type": "object",
"required": [
"lens",
"score",
"confidence"
],
"properties": {
"lens": {
"type": "string",
"enum": [
"team",
"problem_solution",
"traction",
"competition",
"gtm",
"finance"
]
},
"score": {
"type": "number",
"minimum": 0,
"maximum": 100
},
"confidence": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"redFlag": {
"type": "boolean"
}
}
}
},
"stageProbabilities": {
"type": "object",
"properties": {
"idea": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"mvp": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"seed": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"series_a_plus": {
"type": "number",
"minimum": 0,
"maximum": 1
}
}
},
"unresolvedContradictions": {
"type": "integer",
"minimum": 0,
"default": 0
},
"hasMajorContradiction": {
"type": "boolean",
"default": false
},
"observer": {
"type": "object",
"description": "Founder profile that crosses with the substrate idea to produce an observer-relative verdict. When omitted, only the substrate verdict is returned.",
"required": [
"founder_type"
],
"properties": {
"founder_type": {
"type": "string",
"enum": [
"solo",
"cofounded_technical",
"cofounded_business",
"domain_expert",
"serial"
]
},
"runway_months": {
"type": "integer",
"minimum": 0,
"maximum": 60
},
"capital_usd_band": {
"type": "string",
"enum": [
"under_50k",
"50k_500k",
"500k_5m",
"over_5m"
]
},
"risk_tolerance": {
"type": "string",
"enum": [
"conservative",
"moderate",
"aggressive"
]
},
"expertise_sectors": {
"type": "array",
"maxItems": 8,
"items": {
"type": "string",
"minLength": 2,
"maxLength": 80
}
},
"time_horizon_years": {
"type": "integer",
"minimum": 1,
"maximum": 15
},
"exit_goal": {
"type": "string",
"enum": [
"lifestyle",
"acquisition",
"ipo",
"unicorn"
]
}
}
}
},
"required": [
"stage",
"lensScores"
]
}🟢compute_dealbreakers_v2(stage, sector, lensScores, stageProbabilities, unresolvedContradictions, ...)
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.
Esquema de entrada
{
"type": "object",
"properties": {
"stage": {
"type": "string",
"enum": [
"idea",
"mvp",
"seed",
"series_a_plus"
]
},
"sector": {
"type": "string"
},
"lensScores": {
"type": "array",
"items": {
"type": "object",
"required": [
"lens",
"score",
"confidence"
],
"properties": {
"lens": {
"type": "string",
"enum": [
"team",
"problem_solution",
"traction",
"competition",
"gtm",
"finance"
]
},
"score": {
"type": "number",
"minimum": 0,
"maximum": 100
},
"confidence": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"redFlag": {
"type": "boolean"
}
}
}
},
"stageProbabilities": {
"type": "object",
"properties": {
"idea": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"mvp": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"seed": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"series_a_plus": {
"type": "number",
"minimum": 0,
"maximum": 1
}
}
},
"unresolvedContradictions": {
"type": "integer",
"minimum": 0,
"default": 0
},
"hasMajorContradiction": {
"type": "boolean",
"default": false
},
"observer": {
"type": "object",
"description": "Founder profile that crosses with the substrate idea to produce an observer-relative verdict. When omitted, only the substrate verdict is returned.",
"required": [
"founder_type"
],
"properties": {
"founder_type": {
"type": "string",
"enum": [
"solo",
"cofounded_technical",
"cofounded_business",
"domain_expert",
"serial"
]
},
"runway_months": {
"type": "integer",
"minimum": 0,
"maximum": 60
},
"capital_usd_band": {
"type": "string",
"enum": [
"under_50k",
"50k_500k",
"500k_5m",
"over_5m"
]
},
"risk_tolerance": {
"type": "string",
"enum": [
"conservative",
"moderate",
"aggressive"
]
},
"expertise_sectors": {
"type": "array",
"maxItems": 8,
"items": {
"type": "string",
"minLength": 2,
"maxLength": 80
}
},
"time_horizon_years": {
"type": "integer",
"minimum": 1,
"maximum": 15
},
"exit_goal": {
"type": "string",
"enum": [
"lifestyle",
"acquisition",
"ipo",
"unicorn"
]
}
}
}
},
"required": [
"stage",
"lensScores"
]
}🟢compute_funding_momentum(hitsByTier, recent30dHits)
Compute funding_momentum_score (0-10) + badge (HOT/WARM/COOL/COLD) from tier-weighted funding-article hit counts.
Esquema de entrada
{
"type": "object",
"properties": {
"hitsByTier": {
"type": "object",
"properties": {
"tier_1": {
"type": "integer",
"minimum": 0
},
"presswire": {
"type": "integer",
"minimum": 0
},
"regional": {
"type": "integer",
"minimum": 0
},
"vertical": {
"type": "integer",
"minimum": 0
}
}
},
"recent30dHits": {
"type": "integer",
"minimum": 0
}
},
"required": [
"hitsByTier"
]
}🟢compute_hiring_demand(sites)
Compute hiring_demand_score (0-10) from priority-weighted ATS site hit counts (use registries/hiring-sources for priorities).
Esquema de entrada
{
"type": "object",
"properties": {
"sites": {
"type": "array",
"items": {
"type": "object",
"properties": {
"domain": {
"type": "string"
},
"hits": {
"type": "integer",
"minimum": 0
},
"priority": {
"type": "integer",
"enum": [
1,
2,
3
]
}
},
"required": [
"domain",
"hits",
"priority"
]
}
}
},
"required": [
"sites"
]
}🟢compute_lrs_composite_v2(searchVelocityScore, socialPainScore, barrierScore, monetizationScore, xSignalScore, ...)
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).
Esquema de entrada
{
"type": "object",
"properties": {
"searchVelocityScore": {
"type": "number",
"minimum": 0,
"maximum": 25
},
"socialPainScore": {
"type": "number",
"minimum": 0,
"maximum": 30
},
"barrierScore": {
"type": "number",
"minimum": 0,
"maximum": 24
},
"monetizationScore": {
"type": "number",
"minimum": 0,
"maximum": 21
},
"xSignalScore": {
"type": "number",
"minimum": 0,
"maximum": 20
},
"budgetProofScore": {
"type": "number",
"minimum": 0,
"maximum": 10
},
"buildComplexityPenalty": {
"type": "number",
"minimum": 0,
"maximum": 10
},
"sectorProfile": {
"type": "string",
"enum": [
"default",
"ai_native",
"creator",
"crypto"
],
"description": "Opt-in sector weight override. Default uses Python canonical weights."
}
},
"required": [
"searchVelocityScore",
"socialPainScore",
"barrierScore",
"monetizationScore",
"xSignalScore",
"budgetProofScore"
]
}🟢compute_lrs_composite(searchVelocityScore, socialPainScore, barrierScore, monetizationScore)
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.
Esquema de entrada
{
"type": "object",
"properties": {
"searchVelocityScore": {
"type": "number",
"minimum": 0,
"maximum": 25
},
"socialPainScore": {
"type": "number",
"minimum": 0,
"maximum": 30
},
"barrierScore": {
"type": "number",
"minimum": 0,
"maximum": 24
},
"monetizationScore": {
"type": "number",
"minimum": 0,
"maximum": 21
}
},
"required": [
"searchVelocityScore",
"socialPainScore",
"barrierScore",
"monetizationScore"
]
}🟢compute_monetization(pricingAnchorsCount, modelTags, dealCycle)
Compute monetization_score (0-21) + label + has_pricing_anchors from pricing anchors + model tags + deal cycle hint.
Esquema de entrada
{
"type": "object",
"properties": {
"pricingAnchorsCount": {
"type": "integer",
"minimum": 0
},
"modelTags": {
"type": "array",
"items": {
"type": "string"
},
"description": "e.g. [\"subscription\",\"usage\",\"marketplace\"]"
},
"dealCycle": {
"type": "string",
"description": "instant/days/weeks/months/quarters"
}
},
"required": [
"pricingAnchorsCount"
]
}🟢compute_multi_source_tam(inputs)
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.
Esquema de entrada
{
"type": "object",
"properties": {
"inputs": {
"type": "array",
"items": {
"type": "object",
"required": [
"source",
"text"
],
"properties": {
"source": {
"type": "string"
},
"text": {
"type": "string"
},
"estimateYear": {
"type": "integer",
"minimum": 1990,
"maximum": 2100,
"description": "Optional: year the estimate was published."
}
}
}
}
},
"required": [
"inputs"
]
}🟢compute_ppc_spend_signal(avgCpcUsd, totalMonthlySpendUsd, competitorBidders, competition)
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.
Esquema de entrada
{
"type": "object",
"properties": {
"avgCpcUsd": {
"type": "number",
"minimum": 0
},
"totalMonthlySpendUsd": {
"type": "number",
"minimum": 0
},
"competitorBidders": {
"type": "integer",
"minimum": 0
},
"competition": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"avgCpcUsd",
"totalMonthlySpendUsd"
]
}🟢compute_search_velocity_v2(trendsTimelineValues, externalVolumeNorm, intentNorm, geoSpreadNorm, daysSinceLastSignal)
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).
Esquema de entrada
{
"type": "object",
"properties": {
"trendsTimelineValues": {
"type": "array",
"items": {
"type": "number",
"minimum": 0,
"maximum": 100
},
"description": "Monthly Trends values 0-100. Used ONLY to derive trendNorm — never as raw volume."
},
"externalVolumeNorm": {
"type": "number",
"minimum": 0,
"maximum": 1,
"description": "Normalized 0-1 demand volume from EXTERNAL sources (Amazon, app stores, jobs). Caller normalizes before passing."
},
"intentNorm": {
"type": "number",
"minimum": 0,
"maximum": 1,
"description": "0-1 commercial/transactional intent ratio."
},
"geoSpreadNorm": {
"type": "number",
"minimum": 0,
"maximum": 1,
"description": "0-1 geographic spread (regions with interest > threshold)."
},
"daysSinceLastSignal": {
"type": "number",
"minimum": 0,
"description": "Optional: days since most recent confirming signal. Triggers exponential freshness decay (half-life 90d)."
}
},
"required": [
"trendsTimelineValues",
"externalVolumeNorm",
"intentNorm",
"geoSpreadNorm"
]
}🟢compute_search_velocity(timelineValues, risingQueriesCount, geoRegionCount)
Compute search_velocity_score (0-25) from Trends timeline values + rising queries count + geo region count.
Esquema de entrada
{
"type": "object",
"properties": {
"timelineValues": {
"type": "array",
"items": {
"type": "number",
"minimum": 0,
"maximum": 100
},
"description": "Monthly Trends values 0-100 (e.g. last 10-12 months)."
},
"risingQueriesCount": {
"type": "integer",
"minimum": 0
},
"geoRegionCount": {
"type": "integer",
"minimum": 0
}
},
"required": [
"timelineValues"
]
}🟢compute_social_pain(painMentions, intentMentions, urgencyMentions, categoryCounts)
Compute social_pain_score (0-30) + total mentions + dominant perspective (business/consumer/trend/mixed).
Esquema de entrada
{
"type": "object",
"properties": {
"painMentions": {
"type": "integer",
"minimum": 0
},
"intentMentions": {
"type": "integer",
"minimum": 0,
"default": 0
},
"urgencyMentions": {
"type": "integer",
"minimum": 0,
"default": 0
},
"categoryCounts": {
"type": "object",
"properties": {
"business": {
"type": "integer",
"minimum": 0
},
"consumer": {
"type": "integer",
"minimum": 0
},
"trend": {
"type": "integer",
"minimum": 0
}
}
}
},
"required": [
"painMentions"
]
}🟢compute_urgency_composite(newsSignalScore, painSignalScore, hiringSignalScore)
Compose composite_urgency_score (0-10) + badge (LOW/MEDIUM/HIGH/VERY_HIGH/EXTREME) from 3 sub-scores: news, pain, hiring.
Esquema de entrada
{
"type": "object",
"properties": {
"newsSignalScore": {
"type": "number",
"minimum": 0,
"maximum": 10
},
"painSignalScore": {
"type": "number",
"minimum": 0,
"maximum": 10
},
"hiringSignalScore": {
"type": "number",
"minimum": 0,
"maximum": 10
}
},
"required": [
"newsSignalScore",
"painSignalScore",
"hiringSignalScore"
]
}🟢compute_x_signal(mentionsCount, recent7dCount, sentimentPositive, sentimentNegative, founderMentions)
Compute x_signal_score (0-20) + recency share + positivity rate from X/Twitter mention counts.
Esquema de entrada
{
"type": "object",
"properties": {
"mentionsCount": {
"type": "integer",
"minimum": 0
},
"recent7dCount": {
"type": "integer",
"minimum": 0
},
"sentimentPositive": {
"type": "integer",
"minimum": 0
},
"sentimentNegative": {
"type": "integer",
"minimum": 0
},
"founderMentions": {
"type": "integer",
"minimum": 0
}
},
"required": [
"mentionsCount"
]
}🟢derive_kill_criteria(unitEcon, dealbreakers, icpDriftCount)
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.
Esquema de entrada
{
"type": "object",
"properties": {
"unitEcon": {
"type": "object",
"description": "The result of validate_unit_economics."
},
"dealbreakers": {
"type": "object",
"description": "The result of compute_dealbreakers_v2."
},
"icpDriftCount": {
"type": "integer",
"minimum": 0
}
},
"required": []
}🟢validate_unit_economics(customers, arpu, annualRevenue, monthlyChurn, cac, ...)
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.
Esquema de entrada
{
"type": "object",
"properties": {
"customers": {
"type": "number"
},
"arpu": {
"type": "number"
},
"annualRevenue": {
"type": "number"
},
"monthlyChurn": {
"type": "number"
},
"cac": {
"type": "number"
},
"ltv": {
"type": "number"
},
"grossMargin": {
"type": "number"
}
},
"required": [
"customers",
"arpu",
"annualRevenue"
]
}Comunidad
Evidencia