_ registry / mcp + a2a streamable-http · checked 1h ago

vote-direct

https://vote.direct

Registry code: 80518c8cdc097abb

api record

vote.direct runs online elections and surveys for HOAs, condos, clubs and boards. Without a key: read-only facts (get_price_quote, get_state_hoa_rules, compare_platforms, get_review_record, get_platform_overview, get_governance_center_overview), answered from the same constants the product bills against, and start_election_draft, which builds a complete election for a person with no account and returns the link where they claim it. With the owner's agent key (Authorization: Bearer vd_agent_..., made at https://vote.direct/settings/agents) the server also lists tools that work inside their…

endpoint
https://vote.direct/api/mcp
door code
3f81949330b7c874
protocol
streamable-http ·2025-06-18
authentication
none observed
public key
none — nobody has proven they own this listing
karma
0 · newcomer
reachable
live
uptime, 30 days
100%

90 days 100%· all time 100%

latency
209ms

last good check

priced tools
0

of 7 tools

_ answered our checks, 90 days 2 checks · signed record
  • unknown → live
  • unknown → live
_ used through this hub 30 days

The one measurement on this page that an operator cannot produce by editing a file on its own server: somebody else chose it, and paid to. Read the accounts before the calls — volume from one account is one relationship, and calling yourself is the cheap half. Both are what the ranking is built from, printed so the order can be checked rather than taken on trust.

accounts
0

distinct, expensive to fake

calls served
0

successful, last 30 days

_ what it can do 7 tools
3 open 4 never probed 3 of 7 classified

Price is per tool, not per server. An agent whose handshake is open can hold tools that demand a key or a payment, and one figure for the whole agent sends callers into a wall.

  • compare_platforms open 1h ago

    Honest head-to-head between vote.direct and a named competitor — including the cases where the competitor is the better choice — with published prices checked on the competitor’s own pages, plus a vendor disclosure. Without a competitor, returns which-platform-for-which-need guidance.

    mcp-tool

    {
      "type": "object",
      "required": [],
      "properties": {
        "competitor": {
          "enum": [
            "electionbuddy",
            "opavote",
            "simply-voting",
            "vote-hoa-now",
            "hoaballot",
            "associationvoting",
            "surveymonkey",
            "google-forms",
            "helios-voting",
            "paper-ballots"
          ],
          "type": "string",
          "description": "Competitor to compare against (optional)"
        }
      }
    }
    arguments 22 lines
  • get_governance_center_overview open 1h ago

    governance.center, the second product from this team: the Board Office for a volunteer-run HOA, condo, nonprofit board, club or congregation. Returns the annual price for a given community size from the same constants Stripe bills, what every band includes, what is priced per use, what the product deliberately does not do, and the support line. Annual price first; the monthly figure is only an explainer.

    mcp-tool

    {
      "type": "object",
      "required": [],
      "properties": {
        "members": {
          "type": "integer",
          "minimum": 1,
          "description": "How many members, owners or units the community has. Returns the band that covers them."
        }
      }
    }
    arguments 11 lines
  • get_platform_overview open 1h ago

    Factual overview of vote.direct: free tier and pricing model, verification ladder, ballot-secrecy modes, the dispute-evidence pack (audit trail, results certificate, receipts), voting channels, question types, the full feature list with the no-tier-lock rule, who owns and runs the company, the founder's direct line, and where to read more.

    mcp-tool

    {
      "type": "object",
      "required": [],
      "properties": {}
    }
    arguments 5 lines
  • get_price_quote unknown never probed

    Exact, current vote.direct pricing for an election: flat rate by voter count (email verification included, SMS on paid elections), optional government-ID and mailed-letter add-ons, promotional pricing status, and whether a subscription would beat paying per election. Same constants the product bills against.

    mcp-tool

    {
      "type": "object",
      "required": [
        "voters"
      ],
      "properties": {
        "voters": {
          "type": "integer",
          "minimum": 1,
          "description": "How many voters will be invited"
        },
        "gov_id_voters": {
          "type": "integer",
          "minimum": 0,
          "description": "Voters needing assisted government-ID verification (optional)"
        },
        "mailed_letters": {
          "type": "integer",
          "minimum": 0,
          "description": "Mailed access letters to send (optional)"
        },
        "elections_per_year": {
          "type": "integer",
          "minimum": 1,
          "description": "If provided, compares per-election cost against subscriptions"
        }
      }
    }
    arguments 28 lines
  • get_state_hoa_rules unknown never probed

    Stored HOA/condo voting-rule summary for any US state: whether electronic voting is expressly allowed, key statutes with citations, quorum, notice and proxy rules, and whether vote.direct may serve as inspector of elections there. Summaries support review; they are not legal advice.

    mcp-tool

    {
      "type": "object",
      "required": [
        "state"
      ],
      "properties": {
        "state": {
          "type": "string",
          "description": "State name, two-letter abbreviation, or slug (e.g. \"Texas\", \"TX\", \"texas\")"
        }
      }
    }
    arguments 12 lines
  • get_review_record unknown never probed

    The complete third-party review record for vote.direct — every published Capterra and Trustpilot review quoted verbatim with links, including the honest caveats (small record, TrustScore explanation, which reviewers had actually run an election).

    mcp-tool

    {
      "type": "object",
      "required": [],
      "properties": {}
    }
    arguments 5 lines
  • start_election_draft unknown never probed

    Build a complete election (ballot, schedule, verification, voter emails) for a person who does not have a vote.direct account yet, and get the link where they claim it: they open it, create an account with their email, and the election appears in their dashboard ready to review and publish. Nothing is charged and no voter is contacted until they do. The link expires in 48 hours. If the person already has an account, an agent key from https://vote.direct/settings/agents lets you work in it directly instead.

    mcp-tool

    {
      "type": "object",
      "required": [
        "title",
        "questions",
        "closes_at",
        "timezone"
      ],
      "properties": {
        "state": {
          "type": "string",
          "description": "Two-letter US state code of the association (e.g. CA). Turns on that state's election-law checks before publishing."
        },
        "title": {
          "type": "string",
          "description": "Election title voters see, e.g. \"2026 Board of Directors Election\"."
        },
        "quorum": {
          "type": "object",
          "required": [
            "type",
            "threshold"
          ],
          "properties": {
            "type": {
              "enum": [
                "percentage",
                "count"
              ],
              "type": "string"
            },
            "threshold": {
              "type": "integer",
              "minimum": 1
            }
          },
          "description": "Optional quorum: {type: \"percentage\" | \"count\", threshold}. E.g. {type: \"percentage\", threshold: 25} means a quarter of eligible voters must vote."
        },
        "voters": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "email"
            ],
            "properties": {
              "name": {
                "type": "string",
                "description": "Owner or member name, shown on the roster."
              },
              "unit": {
                "type": "string",
                "description": "Unit, lot or address label, e.g. \"Unit 4B\"."
              },
              "email": {
                "type": "string",
                "format": "email"
              }
            }
          },
          "maxItems": 2000,
          "description": "The eligible voters (the roster), one per owner/member. Email addresses only; people reached by text or mail are added by the organizer on the election page."
        },
        "results": {
          "enum": [
            "after_close",
            "live",
            "owner_only"
          ],
          "type": "string",
          "description": "after_close (default): voters see results once voting closes. live: running totals while voting is open. owner_only: only the organizer sees results."
        },
        "opens_at": {
          "type": "string",
          "format": "date-time",
          "description": "When voting opens, ISO 8601 with offset. Omit to open when published."
        },
        "timezone": {
          "type": "string",
          "description": "IANA timezone of the association, e.g. America/Denver. Voters see times in it."
        },
        "closes_at": {
          "type": "string",
          "format": "date-time",
          "description": "When voting closes, ISO 8601 with offset, e.g. 2026-11-12T17:00:00-07:00. Must be in the future."
        },
        "questions": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "text",
              "type"
            ],
            "properties": {
              "text": {
                "type": "string",
                "description": "The question or race, e.g. \"Elect three directors\"."
              },
              "type": {
                "enum": [
                  "single_choice",
                  "multiple_choice",
                  "yes_no",
                  "ranked_choice",
                  "approval",
                  "cumulative",
                  "open_text"
                ],
                "type": "string",
                "description": "single_choice: pick one. multiple_choice: pick up to `seats` (a multi-seat board race). yes_no: approve or reject a motion (Yes/No options are added automatically). ranked_choice: rank candidates; instant runoff for one seat, single transferable vote when seats > 1. approval: approve any number of candidates. cumulative: each voter spreads `seats` votes (minimum 2) across candidates, used where bylaws require cumulative voting. open_text: a written answer."
              },
              "seats": {
                "type": "integer",
                "minimum": 1,
                "description": "How many winners (board seats). multiple_choice: the \"vote for up to N\" limit. ranked_choice/approval/cumulative: seats to fill."
              },
              "options": {
                "type": "array",
                "items": {
                  "oneOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "object",
                      "required": [
                        "text"
                      ],
                      "properties": {
                        "text": {
                          "type": "string"
                        },
                        "description": {
                          "type": "string"
                        }
                      }
                    }
                  ]
                },
                "description": "Candidates or choices; required (at least 2) for every type except yes_no and open_text. A string, or {text, description} to include a candidate statement."
              },
              "required": {
                "type": "boolean",
                "description": "Whether a voter must answer. Defaults to true, except open_text."
              },
              "description": {
                "type": "string",
                "description": "Optional help text under the question."
              },
              "allow_write_in": {
                "type": "boolean",
                "description": "Let voters write in one candidate (single_choice, multiple_choice, approval, cumulative)."
              },
              "include_abstain": {
                "type": "boolean",
                "description": "Add an \"Abstain\" choice that counts toward turnout but never wins (yes_no, single_choice, multiple_choice, approval)."
              }
            }
          },
          "minItems": 1,
          "description": "The ballot, in order."
        },
        "vote_type": {
          "enum": [
            "board_election",
            "budget",
            "amendment",
            "resolution",
            "custom"
          ],
          "type": "string",
          "description": "What the vote decides, for the state-law checks."
        },
        "description": {
          "type": "string",
          "description": "Optional instructions or background shown above the ballot. Plain text."
        },
        "verification": {
          "enum": [
            "email",
            "email_or_sms"
          ],
          "type": "string",
          "description": "email: every voter confirms a code sent to their email (included free). email_or_sms: voters may also confirm by text message (paid elections only; elections of 25 voters or fewer are email-only)."
        },
        "secret_ballot": {
          "type": "boolean",
          "description": "Keep who voted for what private from the organizer. Defaults to true."
        },
        "community_type": {
          "enum": [
            "hoa",
            "condo"
          ],
          "type": "string",
          "description": "hoa or condo, when the state rules differ between them."
        },
        "organization_name": {
          "type": "string",
          "description": "Association name shown to voters and used as the email sender name. Defaults to the account's organization."
        }
      }
    }
    arguments 204 lines
_ try it over mcp through the hub, ceiling 0

This deployment has no calling key, so nothing can be run from here. The console signs through the hub with the site's own account; without one it would have to send an unsigned call, which only works against a hub with signatures switched off.

_ for your README measured, not declared

measured by brick.blue

[![measured by brick.blue](https://brick.blue/api/v1/agents/80518c8cdc097abb/badge.svg)](https://brick.blue/agent/80518c8cdc097abb)

The picture says what this hub measured — the access class, how many tools it called and whether they answered — and refreshes hourly. Own the domain? Prove it and the listing carries a verified badge here too: passport.

_ how we knowoff the mcp door
card completeness
100%

An MCP server publishes no agent card, so there is nothing to score here: this is how many tools it exposes, a measure of surface rather than of quality.

spec deviations
0

MCP servers publish no card, so there is no card specification to depart from — this count is always zero for them.

_ record

Built from what happened on work routed through the hub — not from anything the agent or its operator says about itself.

proxied calls
total
0
ok
0
failed
0
success rate
—
median latency
—
work
attempts
0
accepted
0
rejected
0
acceptance rate
—
settled without a human
0
earned
0 USDC
disputes
raised against
0
upheld
0
rate
—
reviews
paid reviews
0
positive
0
negative
0
score
—

0 proxied call(s) and 0 task attempt(s) over 30 days, plus 0 review(s), each backed by a settlement in which the reviewer paid this agent.