Server definition
- Hash
- sha256:f1ab74868819a696ae2b435509891dda73cd1ce4a32473fc89a42786113df68e
- What it is
- What a remote MCP server returned when asked what it offers: 11 tools
The blob, as servednamed by its sha256
{
"instructions": null,
"tools": [
{
"description": "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).",
"inputSchema": {
"additionalProperties": false,
"properties": {
"deck_text": {
"type": "string"
},
"description": {
"type": "string"
},
"mode": {
"default": "deep",
"enum": [
"quick",
"deep"
],
"type": "string"
},
"pitch_company_id": {
"type": "string"
},
"requested_by": {
"description": "Who is requesting this assessment (name/handle/agent id) — shown in the #doom-activity feed; defaults to anonymous.",
"type": "string"
},
"url": {
"type": "string"
}
},
"type": "object"
},
"name": "assess_product",
"outputSchema": null
},
{
"description": "Prep Gate. Validates config + confirms the roadmap-signals KB is within the staleness threshold. Fails closed if stale. Call before assess_product.",
"inputSchema": {
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "doom_prep",
"outputSchema": null
},
{
"description": "Poll an assessment job_id. Returns status + the typed assessment when complete. Hard timeout — never hangs on pending.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"job_id": {
"type": "string"
}
},
"required": [
"job_id"
],
"type": "object"
},
"name": "get_assessment",
"outputSchema": null
},
{
"description": "Recent assessments, filterable by verdict.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"limit": {
"default": 20,
"type": "number"
},
"verdict": {
"type": "string"
}
},
"type": "object"
},
"name": "list_assessments",
"outputSchema": null
},
{
"description": "List the active (signed, grounding) roadmap signals with their ids — use to find a signal_id to retire. Operator-only.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"operator_key": {
"type": "string"
}
},
"required": [
"operator_key"
],
"type": "object"
},
"name": "list_kb_signals",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"limit": {
"default": 50,
"type": "number"
},
"operator_key": {
"type": "string"
},
"status": {
"enum": [
"pending",
"approved",
"rejected",
"signed"
],
"type": "string"
}
},
"required": [
"operator_key"
],
"type": "object"
},
"name": "list_signal_candidates",
"outputSchema": null
},
{
"description": "Inspectable State. No input. Counts, recent activity, roadmap-signal freshness, health, last calibration run.",
"inputSchema": {
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "overview",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"actual_outcome": {
"enum": [
"sherlocked",
"survived",
"thrived"
],
"type": "string"
},
"expected_verdict": {
"enum": [
"roadkill",
"squeezed",
"defensible",
"riding-the-wave"
],
"type": "string"
},
"job_id": {
"type": "string"
},
"notes": {
"type": "string"
},
"operator_key": {
"type": "string"
},
"product": {
"type": "string"
},
"year_observed": {
"type": "number"
}
},
"required": [
"operator_key",
"actual_outcome",
"expected_verdict"
],
"type": "object"
},
"name": "record_outcome",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"operator_key": {
"type": "string"
},
"reason": {
"type": "string"
},
"signal_id": {
"type": "string"
}
},
"required": [
"operator_key",
"signal_id",
"reason"
],
"type": "object"
},
"name": "retire_signal",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"action": {
"enum": [
"approve",
"reject"
],
"type": "string"
},
"candidate_id": {
"type": "string"
},
"operator_key": {
"type": "string"
}
},
"required": [
"operator_key",
"candidate_id",
"action"
],
"type": "object"
},
"name": "review_signal_candidate",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"case_id": {
"type": "string"
},
"operator_key": {
"type": "string"
},
"reason": {
"type": "string"
}
},
"required": [
"operator_key",
"case_id",
"reason"
],
"type": "object"
},
"name": "supersede_calibration_case",
"outputSchema": null
}
]
}Verify it yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:f1ab74868819a696ae2b435509891dda73cd1ce4a32473fc89a42786113df68e | sha256sum