Meeting Quorum & Participation Calculator
See whether the participation you entered reaches your rule, and how much more is needed.
Using this tool from an agent
The same operations this page runs, over HTTP or MCP. Schemas are the ones the server enforces, so what is written here is what will actually be accepted.
Operations
| Operation | Engine | Cost |
|---|---|---|
meeting_quorum.calculateMCP tool name: meeting_quorum_calculate | deterministic | No key needed No credential needed. Deterministic arithmetic, so it costs no allowance and is rate limited by address. |
Calling it
curl -X POST https://tools.rodri.ai/api/agent/tools/meeting_quorum/runs \
-H "Content-Type: application/json" \
-d '{"operation": "meeting_quorum.calculate", "input": { … }}'Input schema: meeting_quorum.calculate
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"communityName": {
"type": "string",
"maxLength": 120
},
"meetingType": {
"default": "owner",
"type": "string",
"enum": [
"owner",
"board"
]
},
"snapshotKind": {
"default": "planning",
"type": "string",
"enum": [
"planning",
"opening",
"during"
]
},
"snapshotLabel": {
"type": "string",
"maxLength": 80
},
"measurement": {
"default": "equal_votes",
"type": "string",
"enum": [
"equal_votes",
"weighted_power"
]
},
"totalEligible": {
"type": "string",
"pattern": "^\\d{1,9}(\\.\\d{1,6})?$"
},
"representedPower": {
"anyOf": [
{
"type": "string",
"pattern": "^\\d{1,9}(\\.\\d{1,6})?$"
},
{
"type": "string",
"const": ""
}
]
},
"pendingPower": {
"anyOf": [
{
"type": "string",
"pattern": "^\\d{1,9}(\\.\\d{1,6})?$"
},
{
"type": "string",
"const": ""
}
]
},
"quorumRule": {
"oneOf": [
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "fraction"
},
"numerator": {
"type": "string",
"pattern": "^\\d{1,9}$"
},
"denominator": {
"type": "string",
"pattern": "^\\d{1,9}$"
},
"comparison": {
"type": "string",
"enum": [
"at_least",
"more_than"
]
}
},
"required": [
"kind",
"numerator",
"denominator",
"comparison"
]
},
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "fixed"
},
"amount": {
"type": "string",
"pattern": "^\\d{1,9}(\\.\\d{1,6})?$"
},
"comparison": {
"type": "string",
"enum": [
"at_least",
"more_than"
]
}
},
"required": [
"kind",
"amount",
"comparison"
]
}
]
},
"denominatorDisputed": {
"type": "boolean"
},
"rosterMode": {
"default": "none",
"type": "string",
"enum": [
"none",
"full",
"represented_subset"
]
},
"roster": {
"maxItems": 1000,
"type": "array",
"items": {
"type": "object",
"properties": {
"identifier": {
"type": "string",
"minLength": 1,
"maxLength": 80
},
"weight": {
"type": "string",
"pattern": "^\\d{1,9}(\\.\\d{1,6})?$"
},
"represented": {
"type": "boolean"
},
"participationNote": {
"type": "string",
"maxLength": 80
}
},
"required": [
"identifier",
"weight",
"represented"
]
}
},
"ruleReference": {
"type": "string",
"maxLength": 1000
},
"approval": {
"anyOf": [
{
"type": "object",
"properties": {
"threshold": {
"oneOf": [
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "fraction"
},
"numerator": {
"type": "string",
"pattern": "^\\d{1,9}$"
},
"denominator": {
"type": "string",
"pattern": "^\\d{1,9}$"
},
"comparison": {
"type": "string",
"enum": [
"at_least",
"more_than"
]
}
},
"required": [
"kind",
"numerator",
"denominator",
"comparison"
]
},
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "fixed"
},
"amount": {
"type": "string",
"pattern": "^\\d{1,9}(\\.\\d{1,6})?$"
},
"comparison": {
"type": "string",
"enum": [
"at_least",
"more_than"
]
}
},
"required": [
"kind",
"amount",
"comparison"
]
}
]
},
"basis": {
"type": "string",
"enum": [
"yes_no",
"represented",
"all_eligible"
]
},
"yes": {
"type": "string",
"pattern": "^\\d{1,9}(\\.\\d{1,6})?$"
},
"no": {
"type": "string",
"pattern": "^\\d{1,9}(\\.\\d{1,6})?$"
},
"abstain": {
"default": "0",
"anyOf": [
{
"type": "string",
"pattern": "^\\d{1,9}(\\.\\d{1,6})?$"
},
{
"type": "string",
"const": ""
}
]
},
"notVoting": {
"default": "0",
"anyOf": [
{
"type": "string",
"pattern": "^\\d{1,9}(\\.\\d{1,6})?$"
},
{
"type": "string",
"const": ""
}
]
},
"tallyComplete": {
"default": false,
"type": "boolean"
}
},
"required": [
"threshold",
"basis",
"yes",
"no"
]
},
{
"type": "null"
}
]
},
"locale": {
"default": "en",
"type": "string",
"enum": [
"en",
"es"
]
}
},
"required": [
"totalEligible",
"quorumRule"
]
}