voting-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| bordaA | Borda count over ranking ballots: positional scoring (top of m gets m-1). Condorcet-inconsistent and clone-sensitive — useful as a contrast rule. Truncated ballots give unranked candidates the average of the remaining points (never a silent zero). Errors if any ballot is not a ranking. |
| copelandB | Copeland over ranking ballots: +1 per pairwise win, +0.5 per pairwise tie. Condorcet-consistent: a candidate that beats all others pairwise wins. Errors if any ballot is not a ranking. |
| condorcetA | Condorcet winner over ranking ballots: beats every other candidate pairwise. If the majority relation cycles (e.g. a>b>c>a) there is NO Condorcet winner:
|
| approvalA | Approval voting: each candidate scores the total weight approving it. Consumes approval ballots ( |
| stvA | Single-winner STV / instant-runoff over ranking ballots. Rounds: count top active preferences; a strict majority wins, else eliminate the fewest-voted (ties broken by eliminating the lexicographically largest) and transfer. Ballots with no remaining preference are exhausted. Clone-resistant. Errors if any ballot is not a ranking. |
| opinion_poolA | Linear opinion pool over probability-distribution ballots. Returns the weight-averaged distribution in |
| pluralityB | Plurality baseline over ranking ballots: most first-choice votes wins. |
| majorityB | Strict-majority rule over ranking ballots. A candidate wins only with > 50% of first-choice weight; otherwise there is
NO winner ( |
| aggregate_ruleB | Apply any rule by name (enum Equivalent to the per-rule tools. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 9 tools
Most tools are distinct voting methods with clear descriptions. However, `aggregate_rule` duplicates the functionality of the per-rule tools, potentially causing confusion about which to use.
Names are all lowercase and based on voting methods, which is consistent. However, the pattern is not uniform: some are single words (e.g., `borda`) while others use underscores (e.g., `opinion_pool`), and `aggregate_rule` breaks the naming convention of referring to a specific rule.
With 9 tools covering a variety of common voting rules plus a dispatch tool, the count is well-scoped for a voting MCP server. It is neither too sparse nor overly numerous.
The set includes major voting methods but lacks utility tools for managing ballots or providing rule descriptions. As a stateless tallying server, it covers core rules well but could be more complete with additional supporting tools.