MCP Server

doom

vc.doomscore/doom
Business & Operations Data & Analytics Public & reachable MCP 2026-07-28

What this MCP does

Assesses a product's risk of becoming obsolete due to absorption by core LLM-platform features using roadmap signals and calibration data.

assess_product
Assess one product's obsolescence risk. Provide exactly ONE of description/url/pitch_company_id/deck_text. Async — returns job_id; poll get_assessment. Defaults to deep mode. Optionally pass requested_by to identify the caller (shown in the activity feed).
Input schema
{'type': 'object', 'properties': {'url': {'type': 'string'}, 'mode': {'enum': ['quick', 'deep'], 'type': 'string', 'default': 'deep'}, 'deck_text': {'type': 'string'}, 'description': {'type': 'string'}, 'requested_by': {'type': 'string', 'description': 'Who is requesting this assessment (name/handle/agent id) — shown in the #doom-activity feed; defaults to anonymous.'}, 'pitch_company_id': {'type': 'string'}}, 'additionalProperties': False}
doom_prep
Prep Gate. Validates config + confirms the roadmap-signals KB is within the staleness threshold. Fails closed if stale. Call before assess_product.
Input schema
{'type': 'object', 'properties': {}, 'additionalProperties': False}
get_assessment
Poll an assessment job_id. Returns status + the typed assessment when complete. Hard timeout — never hangs on pending.
Input schema
{'type': 'object', 'required': ['job_id'], 'properties': {'job_id': {'type': 'string'}}, 'additionalProperties': False}
list_assessments
Recent assessments, filterable by verdict.
Input schema
{'type': 'object', 'properties': {'limit': {'type': 'number', 'default': 20}, 'verdict': {'type': 'string'}}, 'additionalProperties': False}
list_kb_signals
List the active (signed, grounding) roadmap signals with their ids — use to find a signal_id to retire. Operator-only.
Input schema
{'type': 'object', 'required': ['operator_key'], 'properties': {'operator_key': {'type': 'string'}}, 'additionalProperties': False}
list_signal_candidates
KB-refresh review queue. List auto-scraped candidate roadmap signals (default: pending). Operator-only. Approve/reject with review_signal_candidate; the weekly cron signs approved ones into the live KB.
Input schema
{'type': 'object', 'required': ['operator_key'], 'properties': {'limit': {'type': 'number', 'default': 50}, 'status': {'enum': ['pending', 'approved', 'rejected', 'signed'], 'type': 'string'}, 'operator_key': {'type': 'string'}}, 'additionalProperties': False}
overview
Inspectable State. No input. Counts, recent activity, roadmap-signal freshness, health, last calibration run.
Input schema
{'type': 'object', 'properties': {}, 'additionalProperties': False}
record_outcome
Outcome-feedback (learning loop). Record what ACTUALLY happened to a previously-assessed product as a labeled calibration case; the weekly recalibration folds it into the gate. Operator-only (requires operator_key). Provide either job_id (links the case to that assessment + reuses its product) or product text.
Input schema
{'type': 'object', 'required': ['operator_key', 'actual_outcome', 'expected_verdict'], 'properties': {'notes': {'type': 'string'}, 'job_id': {'type': 'string'}, 'product': {'type': 'string'}, 'operator_key': {'type': 'string'}, 'year_observed': {'type': 'number'}, 'actual_outcome': {'enum': ['sherlocked', 'survived', 'thrived'], 'type': 'string'}, 'expected_verdict': {'enum': ['roadkill', 'squeezed', 'defensible', 'riding-the-wave'], 'type': 'string'}}, 'additionalProperties': False}
retire_signal
UNLEARN a KB signal that became false/obsolete (e.g. a rumored feature cancelled, or a signal no longer predictive). Soft-deletes it (active=false) so it stops grounding assessments immediately — recoverable. Operator-only. Find the id via list_kb_signals.
Input schema
{'type': 'object', 'required': ['operator_key', 'signal_id', 'reason'], 'properties': {'reason': {'type': 'string'}, 'signal_id': {'type': 'string'}, 'operator_key': {'type': 'string'}}, 'additionalProperties': False}
review_signal_candidate
Approve or reject a KB-refresh candidate signal. Operator-only. Approved candidates are signed (Ed25519) into the live roadmap_signals KB by the next refresh run; rejected ones are dropped. Controls what becomes grounding truth.
Input schema
{'type': 'object', 'required': ['operator_key', 'candidate_id', 'action'], 'properties': {'action': {'enum': ['approve', 'reject'], 'type': 'string'}, 'candidate_id': {'type': 'string'}, 'operator_key': {'type': 'string'}}, 'additionalProperties': False}
supersede_calibration_case
UNLEARN a calibration case whose label turned out wrong or obsolete — retires it (active=false) so the recalibration gate stops scoring it. To correct, retire the wrong case then record_outcome the right one. Operator-only.
Input schema
{'type': 'object', 'required': ['operator_key', 'case_id', 'reason'], 'properties': {'reason': {'type': 'string'}, 'case_id': {'type': 'string'}, 'operator_key': {'type': 'string'}}, 'additionalProperties': False}
Added
supersede_calibration_case
Sept. 17, 2026, 12:55 p.m.
Added
retire_signal
Sept. 17, 2026, 12:55 p.m.
Added
list_kb_signals
Sept. 17, 2026, 12:55 p.m.
Added
review_signal_candidate
Sept. 17, 2026, 12:55 p.m.
Added
list_signal_candidates
Sept. 17, 2026, 12:55 p.m.
Added
record_outcome
Sept. 17, 2026, 12:55 p.m.
Added
overview
Sept. 17, 2026, 12:55 p.m.
Added
list_assessments
Sept. 17, 2026, 12:55 p.m.
Added
get_assessment
Sept. 17, 2026, 12:55 p.m.
Added
assess_product
Sept. 17, 2026, 12:55 p.m.
Added
doom_prep
Sept. 17, 2026, 12:55 p.m.