Endpoints: 28,729MCP servers: 18,413Payout addresses: 2,071Paid calls: 1,534Letters: 13Defects: 1,322counted 3 min ago
teppi

Server definition

Hash
sha256:8939cc6f77fe6bef6206bbc599c79885fd854414fea44da7172070935f690b5f
What it is
What a remote MCP server returned when asked what it offers: 7 tools

The blob, as servednamed by its sha256

{ "instructions": null, "tools": [ { "description": "The complete attested record of a proposal in chronological order: creation, every blackboard write, every vote with reasoning, the outcome. Optional filter: all | writes | votes | outcome.", "inputSchema": { "properties": { "filter": { "description": "Default all.", "enum": [ "all", "writes", "votes", "outcome" ], "type": "string" }, "proposal_id": { "type": "string" } }, "required": [ "proposal_id" ], "type": "object" }, "name": "history", "outputSchema": null }, { "description": "Open a new proposal: a question, named options, expected voter identities, an aggregation algorithm, a deadline, and a quorum threshold. Returns the proposal id, the creation attestation, and the deadline. All later operations key off the proposal id.", "inputSchema": { "properties": { "algorithm": { "description": "Aggregation algorithm. Default approval -- robust general-purpose choice with no strategic incentive.", "enum": [ "plurality", "borda", "condorcet", "approval", "opinion_pool", "supermajority" ], "type": "string" }, "api_key": { "description": "Optional. Your Quorum API key (from register). Binds the proposal to your account so its spans push to your Telinea. Omit for anonymous use -- everything works, no spans.", "type": "string" }, "deadline_minutes": { "description": "Minutes until voting closes.", "type": "number" }, "description": { "description": "Optional context for the audit trail.", "type": "string" }, "name": { "description": "Human-readable proposal id, e.g. pr-review-2026-09-18. Letters, digits, . _ - only; becomes the key for all subsequent calls.", "type": "string" }, "namespace": { "description": "Optional tenant namespace. The proposal id becomes '<namespace>:<name>' -- different teams can reuse names without colliding. Same charset as name.", "type": "string" }, "options": { "description": "Named options. Default [\"yes\",\"no\"].", "items": { "type": "string" }, "type": "array" }, "question": { "description": "The thing being decided.", "type": "string" }, "quorum": { "description": "Min percent of expected voters that must vote before resolution. Default 100.", "type": "number" }, "threshold": { "description": "Supermajority only: required share of votes cast, percent. Default 66.67.", "type": "number" }, "voters": { "description": "Expected voter identities. Only these may vote; missing voters at resolution are recorded abstained.", "items": { "type": "string" }, "type": "array" } }, "required": [ "name", "question", "voters", "deadline_minutes" ], "type": "object" }, "name": "propose", "outputSchema": null }, { "description": "Read a proposal's blackboard: every write in order with timestamp, author, and attestation id -- the complete deliberation record, or filtered to one key.", "inputSchema": { "properties": { "key": { "description": "Optional: only entries with this key.", "type": "string" }, "proposal_id": { "type": "string" } }, "required": [ "proposal_id" ], "type": "object" }, "name": "read", "outputSchema": null }, { "description": "OPTIONAL one-time setup -- only needed if you want proposal telemetry (OTLP spans) pushed to your Telinea account. Call once before propose: it binds an api_key you choose to your Telinea API key. Afterwards, pass the same api_key on propose and every span for that proposal is pushed to your Telinea with standard OTLP bearer auth. Storage: the Telinea key is sealed with AES-256-GCM under a key derived from your api_key (HKDF-SHA256, per-account salt); only sha256(api_key) is kept as the lookup id, so neither key is ever stored in the clear. Re-registering with the same api_key rotates the stored Telinea key. Skip this tool entirely for anonymous use -- propose works without an api_key, just with no span streaming.", "inputSchema": { "properties": { "api_key": { "description": "Your Quorum API key -- chosen by you, presented on propose, never stored.", "type": "string" }, "telinea_key": { "description": "Your Telinea API key -- stored encrypted, used to authenticate span pushes.", "type": "string" } }, "required": [ "api_key", "telinea_key" ], "type": "object" }, "name": "register", "outputSchema": null }, { "description": "Compute and attest the outcome once quorum is met (or the deadline has passed). Idempotent: resolving twice returns the recorded outcome. Condorcet cycles and missed supermajority thresholds return co_winners with status unresolved rather than an arbitrary tiebreak.", "inputSchema": { "properties": { "proposal_id": { "type": "string" } }, "required": [ "proposal_id" ], "type": "object" }, "name": "resolve", "outputSchema": null }, { "description": "Submit a vote from an expected voter identity, with optional reasoning stored in the attested record. Vote shape depends on the algorithm: plurality/supermajority take an option string; approval takes an option or list of options; borda takes a ranking of all options; condorcet takes a ranking or a single option; opinion_pool takes a probability distribution over options. Duplicates and post-deadline votes are rejected.", "inputSchema": { "properties": { "proposal_id": { "type": "string" }, "reasoning": { "description": "Free-text rationale, kept in the audit trail.", "type": "string" }, "value": { "description": "Ballot in the algorithm's format." }, "voter": { "type": "string" } }, "required": [ "proposal_id", "voter", "value" ], "type": "object" }, "name": "vote", "outputSchema": null }, { "description": "Append a key-value entry to a proposal's blackboard. Any agent may write; writes are appended, never replaced -- the full ordered history is preserved and attested.", "inputSchema": { "properties": { "author": { "description": "Optional author identity, recorded and attested.", "type": "string" }, "key": { "description": "Key other agents use to filter this entry on read.", "type": "string" }, "proposal_id": { "type": "string" }, "value": { "description": "Any JSON value." } }, "required": [ "proposal_id", "key", "value" ], "type": "object" }, "name": "write", "outputSchema": null } ] }
Verify it yourselfcurl -s https://api.teppi.xyz/v1/evidence/sha256:8939cc6f77fe6bef6206bbc599c79885fd854414fea44da7172070935f690b5f | sha256sum