ideaudit
The scoring behind an audit allowed to say no. Twenty deterministic tools, offline, no account.
使うべきか
品質と安全性
検出事項(5)
- HIGH
- MEDIUMcompute_build_complexity 内
- LOWcompute_lrs_composite 内
- LOWcompute_multi_source_tam 内
- LOWcompute_urgency_composite 内
ツール定義とプロトコルへの準拠に関する自動分析に基づいています。
コンテキストコスト
これは、サーバーのツールがモデルのコンテキストに読み込まれるたびに消費されるおおよそのトークン数です。数が多いほど、ほかのタスクに使える注意が減ります。
インストール
ワンクリックインストール
これを `claude_desktop_config.json` ファイルに追加してください:
{
"mcpServers": {
"ideaudit-tools": {
"command": "npx",
"args": [
"@inite/ideaudit-tools"
]
}
}
}実行可能なパッケージ
1.0.0stdioリモートエンドポイント
https://api.inite.studio/mcpstreamable-httpできること
ツール一覧
ツール(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.
入力スキーマ
{
"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.
入力スキーマ
{
"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.
入力スキーマ
{
"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.
入力スキーマ
{
"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.
入力スキーマ
{
"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.
入力スキーマ
{
"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.
入力スキーマ
{
"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.
入力スキーマ
{
"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).
入力スキーマ
{
"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).
入力スキーマ
{
"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.
入力スキーマ
{
"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.
入力スキーマ
{
"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.
入力スキーマ
{
"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.
入力スキーマ
{
"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).
入力スキーマ
{
"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.
入力スキーマ
{
"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).
入力スキーマ
{
"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.
入力スキーマ
{
"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.
入力スキーマ
{
"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.
入力スキーマ
{
"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.
入力スキーマ
{
"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"
]
}コミュニティ
エビデンス