MCPサーバー

ideaudit

studio.inite/ideaudit-tools
ビジネス・業務 データ・分析 公開・接続可能 MCP 2025-11-25

このMCPでできること

Performs deterministic startup and product opportunity audits, calculating market, demand, monetization, complexity, funding, hiring, unit-economics, and dealbreaker scores.

compute_barrier
Compute barrier_score (0-24) + label (PRISTINE/OPEN/COMPETITIVE/CROWDED) from competitor counts + SERP noise fraction.
入力スキーマ
{'type': 'object', 'required': ['directCompetitorCount'], 'properties': {'serpNoise': {'type': 'number', 'default': 0, 'maximum': 1, 'minimum': 0}, 'directCompetitorCount': {'type': 'integer', 'minimum': 0}, 'adjacentCompetitorCount': {'type': 'integer', 'default': 0, 'minimum': 0}}}
compute_budget_proof
Compute budget_proof_score (0-10) + label (STRONG/CONFIRMED/WEAK/ABSENT) + purchase_intent_pct from pricing hits + review-site hits + intent mentions.
入力スキーマ
{'type': 'object', 'required': ['pricingHitsCount'], 'properties': {'hasNamedPricing': {'type': 'boolean'}, 'pricingHitsCount': {'type': 'integer', 'minimum': 0}, 'reviewSiteHitsCount': {'type': 'integer', 'minimum': 0}, 'purchaseIntentMentions': {'type': 'integer', 'minimum': 0}}}
compute_build_complexity
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.
入力スキーマ
{'type': 'object', 'required': ['externalApisCount'], 'properties': {'externalApisCount': {'type': 'integer', 'minimum': 0}, 'integrationsCount': {'type': 'integer', 'minimum': 0}, 'stackComplexityTags': {'type': 'array', 'items': {'type': 'string'}}}}
compute_collection_scores
Compute 12 deterministic collection scores (0-100) + badges + death reason for an enriched idea. Pure math. No external calls.
入力スキーマ
{'type': 'object', 'required': ['analysisId', 'enrichedData'], 'properties': {'analysisId': {'type': 'string'}, 'enrichedData': {'type': 'object', 'description': 'EnrichedData with canonical_idea signals.'}}}
compute_crossed_matrix
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.
入力スキーマ
{'type': 'object', 'required': ['stage', 'lensScores'], 'properties': {'stage': {'enum': ['idea', 'mvp', 'seed', 'series_a_plus'], 'type': 'string'}, 'sector': {'type': 'string'}, 'observer': {'type': 'object', 'required': ['founder_type'], 'properties': {'exit_goal': {'enum': ['lifestyle', 'acquisition', 'ipo', 'unicorn'], 'type': 'string'}, 'founder_type': {'enum': ['solo', 'cofounded_technical', 'cofounded_business', 'domain_expert', 'serial'], 'type': 'string'}, 'runway_months': {'type': 'integer', 'maximum': 60, 'minimum': 0}, 'risk_tolerance': {'enum': ['conservative', 'moderate', 'aggressive'], 'type': 'string'}, 'capital_usd_band': {'enum': ['under_50k', '50k_500k', '500k_5m', 'over_5m'], 'type': 'string'}, 'expertise_sectors': {'type': 'array', 'items': {'type': 'string', 'maxLength': 80, 'minLength': 2}, 'maxItems': 8}, 'time_horizon_years': {'type': 'integer', 'maximum': 15, 'minimum': 1}}, 'description': 'Founder profile that crosses with the substrate idea to produce an observer-relative verdict. When omitted, only the substrate verdict is returned.'}, 'lensScores': {'type': 'array', 'items': {'type': 'object', 'required': ['lens', 'score', 'confidence'], 'properties': {'lens': {'enum': ['team', 'problem_solution', 'traction', 'competition', 'gtm', 'finance'], 'type': 'string'}, 'score': {'type': 'number', 'maximum': 100, 'minimum': 0}, 'redFlag': {'type': 'boolean'}, 'confidence': {'type': 'number', 'maximum': 1, 'minimum': 0}}}}, 'stageProbabilities': {'type': 'object', 'properties': {'mvp': {'type': 'number', 'maximum': 1, 'minimum': 0}, 'idea': {'type': 'number', 'maximum': 1, 'minimum': 0}, 'seed': {'type': 'number', 'maximum': 1, 'minimum': 0}, 'series_a_plus': {'type': 'number', 'maximum': 1, 'minimum': 0}}}, 'hasMajorContradiction': {'type': 'boolean', 'default': False}, 'unresolvedContradictions': {'type': 'integer', 'default': 0, 'minimum': 0}}}
compute_dealbreakers_v2
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.
入力スキーマ
{'type': 'object', 'required': ['stage', 'lensScores'], 'properties': {'stage': {'enum': ['idea', 'mvp', 'seed', 'series_a_plus'], 'type': 'string'}, 'sector': {'type': 'string'}, 'observer': {'type': 'object', 'required': ['founder_type'], 'properties': {'exit_goal': {'enum': ['lifestyle', 'acquisition', 'ipo', 'unicorn'], 'type': 'string'}, 'founder_type': {'enum': ['solo', 'cofounded_technical', 'cofounded_business', 'domain_expert', 'serial'], 'type': 'string'}, 'runway_months': {'type': 'integer', 'maximum': 60, 'minimum': 0}, 'risk_tolerance': {'enum': ['conservative', 'moderate', 'aggressive'], 'type': 'string'}, 'capital_usd_band': {'enum': ['under_50k', '50k_500k', '500k_5m', 'over_5m'], 'type': 'string'}, 'expertise_sectors': {'type': 'array', 'items': {'type': 'string', 'maxLength': 80, 'minLength': 2}, 'maxItems': 8}, 'time_horizon_years': {'type': 'integer', 'maximum': 15, 'minimum': 1}}, 'description': 'Founder profile that crosses with the substrate idea to produce an observer-relative verdict. When omitted, only the substrate verdict is returned.'}, 'lensScores': {'type': 'array', 'items': {'type': 'object', 'required': ['lens', 'score', 'confidence'], 'properties': {'lens': {'enum': ['team', 'problem_solution', 'traction', 'competition', 'gtm', 'finance'], 'type': 'string'}, 'score': {'type': 'number', 'maximum': 100, 'minimum': 0}, 'redFlag': {'type': 'boolean'}, 'confidence': {'type': 'number', 'maximum': 1, 'minimum': 0}}}}, 'stageProbabilities': {'type': 'object', 'properties': {'mvp': {'type': 'number', 'maximum': 1, 'minimum': 0}, 'idea': {'type': 'number', 'maximum': 1, 'minimum': 0}, 'seed': {'type': 'number', 'maximum': 1, 'minimum': 0}, 'series_a_plus': {'type': 'number', 'maximum': 1, 'minimum': 0}}}, 'hasMajorContradiction': {'type': 'boolean', 'default': False}, 'unresolvedContradictions': {'type': 'integer', 'default': 0, 'minimum': 0}}}
compute_funding_momentum
Compute funding_momentum_score (0-10) + badge (HOT/WARM/COOL/COLD) from tier-weighted funding-article hit counts.
入力スキーマ
{'type': 'object', 'required': ['hitsByTier'], 'properties': {'hitsByTier': {'type': 'object', 'properties': {'tier_1': {'type': 'integer', 'minimum': 0}, 'regional': {'type': 'integer', 'minimum': 0}, 'vertical': {'type': 'integer', 'minimum': 0}, 'presswire': {'type': 'integer', 'minimum': 0}}}, 'recent30dHits': {'type': 'integer', 'minimum': 0}}}
compute_hiring_demand
Compute hiring_demand_score (0-10) from priority-weighted ATS site hit counts (use registries/hiring-sources for priorities).
入力スキーマ
{'type': 'object', 'required': ['sites'], 'properties': {'sites': {'type': 'array', 'items': {'type': 'object', 'required': ['domain', 'hits', 'priority'], 'properties': {'hits': {'type': 'integer', 'minimum': 0}, 'domain': {'type': 'string'}, 'priority': {'enum': [1, 2, 3], 'type': 'integer'}}}}}}
compute_lrs_composite
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.
入力スキーマ
{'type': 'object', 'required': ['searchVelocityScore', 'socialPainScore', 'barrierScore', 'monetizationScore'], 'properties': {'barrierScore': {'type': 'number', 'maximum': 24, 'minimum': 0}, 'socialPainScore': {'type': 'number', 'maximum': 30, 'minimum': 0}, 'monetizationScore': {'type': 'number', 'maximum': 21, 'minimum': 0}, 'searchVelocityScore': {'type': 'number', 'maximum': 25, 'minimum': 0}}}
compute_lrs_composite_v2
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).
入力スキーマ
{'type': 'object', 'required': ['searchVelocityScore', 'socialPainScore', 'barrierScore', 'monetizationScore', 'xSignalScore', 'budgetProofScore'], 'properties': {'barrierScore': {'type': 'number', 'maximum': 24, 'minimum': 0}, 'xSignalScore': {'type': 'number', 'maximum': 20, 'minimum': 0}, 'sectorProfile': {'enum': ['default', 'ai_native', 'creator', 'crypto'], 'type': 'string', 'description': 'Opt-in sector weight override. Default uses Python canonical weights.'}, 'socialPainScore': {'type': 'number', 'maximum': 30, 'minimum': 0}, 'budgetProofScore': {'type': 'number', 'maximum': 10, 'minimum': 0}, 'monetizationScore': {'type': 'number', 'maximum': 21, 'minimum': 0}, 'searchVelocityScore': {'type': 'number', 'maximum': 25, 'minimum': 0}, 'buildComplexityPenalty': {'type': 'number', 'maximum': 10, 'minimum': 0}}}
compute_monetization
Compute monetization_score (0-21) + label + has_pricing_anchors from pricing anchors + model tags + deal cycle hint.
入力スキーマ
{'type': 'object', 'required': ['pricingAnchorsCount'], 'properties': {'dealCycle': {'type': 'string', 'description': 'instant/days/weeks/months/quarters'}, 'modelTags': {'type': 'array', 'items': {'type': 'string'}, 'description': 'e.g. ["subscription","usage","marketplace"]'}, 'pricingAnchorsCount': {'type': 'integer', 'minimum': 0}}}
compute_multi_source_tam
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.
入力スキーマ
{'type': 'object', 'required': ['inputs'], 'properties': {'inputs': {'type': 'array', 'items': {'type': 'object', 'required': ['source', 'text'], 'properties': {'text': {'type': 'string'}, 'source': {'type': 'string'}, 'estimateYear': {'type': 'integer', 'maximum': 2100, 'minimum': 1990, 'description': 'Optional: year the estimate was published.'}}}}}}
compute_ppc_spend_signal
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.
入力スキーマ
{'type': 'object', 'required': ['avgCpcUsd', 'totalMonthlySpendUsd'], 'properties': {'avgCpcUsd': {'type': 'number', 'minimum': 0}, 'competition': {'type': 'number', 'maximum': 1, 'minimum': 0}, 'competitorBidders': {'type': 'integer', 'minimum': 0}, 'totalMonthlySpendUsd': {'type': 'number', 'minimum': 0}}}
compute_search_velocity
Compute search_velocity_score (0-25) from Trends timeline values + rising queries count + geo region count.
入力スキーマ
{'type': 'object', 'required': ['timelineValues'], 'properties': {'geoRegionCount': {'type': 'integer', 'minimum': 0}, 'timelineValues': {'type': 'array', 'items': {'type': 'number', 'maximum': 100, 'minimum': 0}, 'description': 'Monthly Trends values 0-100 (e.g. last 10-12 months).'}, 'risingQueriesCount': {'type': 'integer', 'minimum': 0}}}
compute_search_velocity_v2
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).
入力スキーマ
{'type': 'object', 'required': ['trendsTimelineValues', 'externalVolumeNorm', 'intentNorm', 'geoSpreadNorm'], 'properties': {'intentNorm': {'type': 'number', 'maximum': 1, 'minimum': 0, 'description': '0-1 commercial/transactional intent ratio.'}, 'geoSpreadNorm': {'type': 'number', 'maximum': 1, 'minimum': 0, 'description': '0-1 geographic spread (regions with interest > threshold).'}, 'externalVolumeNorm': {'type': 'number', 'maximum': 1, 'minimum': 0, 'description': 'Normalized 0-1 demand volume from EXTERNAL sources (Amazon, app stores, jobs). Caller normalizes before passing.'}, 'daysSinceLastSignal': {'type': 'number', 'minimum': 0, 'description': 'Optional: days since most recent confirming signal. Triggers exponential freshness decay (half-life 90d).'}, 'trendsTimelineValues': {'type': 'array', 'items': {'type': 'number', 'maximum': 100, 'minimum': 0}, 'description': 'Monthly Trends values 0-100. Used ONLY to derive trendNorm — never as raw volume.'}}}
compute_social_pain
Compute social_pain_score (0-30) + total mentions + dominant perspective (business/consumer/trend/mixed).
入力スキーマ
{'type': 'object', 'required': ['painMentions'], 'properties': {'painMentions': {'type': 'integer', 'minimum': 0}, 'categoryCounts': {'type': 'object', 'properties': {'trend': {'type': 'integer', 'minimum': 0}, 'business': {'type': 'integer', 'minimum': 0}, 'consumer': {'type': 'integer', 'minimum': 0}}}, 'intentMentions': {'type': 'integer', 'default': 0, 'minimum': 0}, 'urgencyMentions': {'type': 'integer', 'default': 0, 'minimum': 0}}}
compute_urgency_composite
Compose composite_urgency_score (0-10) + badge (LOW/MEDIUM/HIGH/VERY_HIGH/EXTREME) from 3 sub-scores: news, pain, hiring.
入力スキーマ
{'type': 'object', 'required': ['newsSignalScore', 'painSignalScore', 'hiringSignalScore'], 'properties': {'newsSignalScore': {'type': 'number', 'maximum': 10, 'minimum': 0}, 'painSignalScore': {'type': 'number', 'maximum': 10, 'minimum': 0}, 'hiringSignalScore': {'type': 'number', 'maximum': 10, 'minimum': 0}}}
compute_x_signal
Compute x_signal_score (0-20) + recency share + positivity rate from X/Twitter mention counts.
入力スキーマ
{'type': 'object', 'required': ['mentionsCount'], 'properties': {'mentionsCount': {'type': 'integer', 'minimum': 0}, 'recent7dCount': {'type': 'integer', 'minimum': 0}, 'founderMentions': {'type': 'integer', 'minimum': 0}, 'sentimentNegative': {'type': 'integer', 'minimum': 0}, 'sentimentPositive': {'type': 'integer', 'minimum': 0}}}
derive_kill_criteria
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.
入力スキーマ
{'type': 'object', 'required': [], '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}}}
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.
入力スキーマ
{'type': 'object', 'required': [], 'properties': {}}
validate_unit_economics
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.
入力スキーマ
{'type': 'object', 'required': ['customers', 'arpu', 'annualRevenue'], 'properties': {'cac': {'type': 'number'}, 'ltv': {'type': 'number'}, 'arpu': {'type': 'number'}, 'customers': {'type': 'number'}, 'grossMargin': {'type': 'number'}, 'monthlyChurn': {'type': 'number'}, 'annualRevenue': {'type': 'number'}}}
追加
validate_unit_economics
2026年9月17日12:55
追加
derive_kill_criteria
2026年9月17日12:55
追加
compute_x_signal
2026年9月17日12:55
追加
compute_urgency_composite
2026年9月17日12:55
追加
compute_social_pain
2026年9月17日12:55
追加
compute_search_velocity
2026年9月17日12:55
追加
compute_search_velocity_v2
2026年9月17日12:55
追加
compute_ppc_spend_signal
2026年9月17日12:55
追加
compute_multi_source_tam
2026年9月17日12:55
追加
compute_monetization
2026年9月17日12:55
追加
compute_lrs_composite
2026年9月17日12:55
追加
compute_lrs_composite_v2
2026年9月17日12:55
追加
compute_hiring_demand
2026年9月17日12:55
追加
compute_funding_momentum
2026年9月17日12:55
追加
compute_dealbreakers_v2
2026年9月17日12:55
追加
compute_crossed_matrix
2026年9月17日12:55
追加
compute_collection_scores
2026年9月17日12:55
追加
compute_build_complexity
2026年9月17日12:55
追加
compute_budget_proof
2026年9月17日12:55
追加
compute_barrier
2026年9月17日12:55
追加
get_started
2026年9月17日12:55