{"serverId":"mcp-registry/io.github.terradev-cloud/quorum","tools":[{"name":"read","fixed":{"name":"read","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":{"type":"object","required":["proposal_id"],"properties":{"key":{"type":"string","description":"Optional: only entries with this key."},"proposal_id":{"type":"string"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":103,"tokensAfter":103},{"name":"resolve","fixed":{"name":"resolve","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":{"type":"object","required":["proposal_id"],"properties":{"proposal_id":{"type":"string"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":114,"tokensAfter":114},{"name":"vote","fixed":{"name":"vote","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":{"type":"object","required":["proposal_id","voter","value"],"properties":{"value":{"description":"Ballot in the algorithm's format.","type":"string"},"voter":{"type":"string"},"reasoning":{"type":"string","description":"Free-text rationale, kept in the audit trail."},"proposal_id":{"type":"string"}}}},"changes":[{"kind":"schema","detail":"Added \"type\":\"string\" to untyped parameters: value. Change to number/boolean/array where that's what you accept.","verify":true}],"tokensBefore":210,"tokensAfter":215},{"name":"write","fixed":{"name":"write","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":{"type":"object","required":["proposal_id","key","value"],"properties":{"key":{"type":"string","description":"Key other agents use to filter this entry on read."},"value":{"description":"Any JSON value.","type":"string"},"author":{"type":"string","description":"Optional author identity, recorded and attested."},"proposal_id":{"type":"string"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"schema","detail":"Added \"type\":\"string\" to untyped parameters: value. Change to number/boolean/array where that's what you accept.","verify":true},{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":151,"tokensAfter":155}],"toolsChanged":4,"tokensSaved":0,"todo":[{"tool":"history","params":["proposal_id"]},{"tool":"read","params":["proposal_id"]},{"tool":"resolve","params":["proposal_id"]},{"tool":"vote","params":["voter","proposal_id"]},{"tool":"write","params":["proposal_id"]}],"note":"Deterministic fixes. Changes marked verify need a human look before shipping (renames, inferred annotations, inferred types, removed text). Parameter descriptions in `todo` need to be written by someone who knows the API."}