Endpoints: 28,729MCP servers: 18,413Payout addresses: 2,071Paid calls: 1,533Letters: 13Defects: 1,322counted just now
teppi

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 yourselfcurl -s https://api.teppi.xyz/v1/evidence/sha256:f1ab74868819a696ae2b435509891dda73cd1ce4a32473fc89a42786113df68e | sha256sum