Skip to main content
Glama

switzerland-parliament-mcp-server

Chparl Get Votes

chparl_get_votes
Read-onlyIdempotent

Find Nationalrat roll calls with mode votes and businessId, sessionId, or both. Use mode members with voteId for one paged roll call, or personNumber without voteId for member history optionally filtered by businessId and sessionId. Use mode groups with voteId for complete decision counts by parliamentary group. Member roll calls start in the 2003 winter session and exclude Ständerat member votes; an empty result does not prove no vote occurred. Member counts cover only delivered rows; groups mode reads all published member rows before reporting totals. Verbatim decisionTexts accompany code buckets when published. Code meanings include 1 yes, 2 no, 3 abstention, 4 present, 5 did not participate, 6 excused under Art. 57 para. 4, 7 president does not vote, and 8 resigned. Unknown codes and missing decisions are retained. Follow nextOffset with the same mode and filters.

Input Schema

NameRequiredDescriptionDefault
modeNoWorkflow: votes (default), members, or complete groups.votes
limitNoPaged modes only: votes default 10/max 50, members default 50/max 100; higher requests are clamped with notice.
offsetNoPaged modes only: starting row offset, default zero; continue using returned nextOffset.
voteIdNoMembers or groups only: positive Int32 Vote.ID discovered through votes mode; omit for personNumber history. Cannot combine with businessId or sessionId.
languageNoMetadata language: de (default), fr, or it; decision text remains as published.de
sessionIdNoVotes or member history only: positive Int32 Session.ID from chparl_list_reference topic sessions; combine with businessId to narrow discovery.
businessIdNoVotes or member history only: canonical eight-digit businessId from chparl_search_business, or a published short number such as 99.1234.
personNumberNoMembers only: exact PersonNumber from chparl_search_members, distinct from Person.ID or current group affiliation.

Output Schema

NameRequiredDescriptionDefault
modeNoVote workflow returned.
voteNoResolved roll-call metadata in members or groups mode.
errorNoPresent when the call failed. Absent on success.
foundNoWhether a supplied business or selected vote exists; unkeyed history/session searches succeed with true even when empty.
votesNoWhole metadata records delivered in votes mode.
groupsNoComplete group aggregates; empty when member data is unavailable.
noticeNoCombined clamping, whole-item fitting, empty-result, or coverage guidance.
hasMoreNoWhether more rows remain after the delivered page; false for complete groups.
membersNoWhole member decisions delivered in members mode.
businessNoResolved business identity when supplied for vote discovery or member history.
coverageNoCoverage of the published member decisions.
guidanceNoIdentifier discovery guidance when the parent was not found.
nextOffsetNoOriginal offset plus delivered rows; absent when exhausted.
provenanceNoAttribution, publication status, and source download dates.
totalCountNoExact whole-query count of votes or filtered member rows, when supplied.
returnedCountNoNumber of delivered vote, member, or group records.
decisionCountsNoPage counts in members mode or complete nonempty vote counts in groups mode.
effectiveLimitNoEffective page size after mode-specific clamping.
effectiveFiltersNoNormalized mode, identifiers, metadata language, and applicable paging defaults.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/openWorld, so the description earns credit for going further: it warns that an empty result does not prove no vote occurred, distinguishes member counts (delivered rows only) from groups mode (reads all published rows before totaling), notes Ständerat votes are excluded and the coverage starts in the 2003 winter session, and states unknown codes are retained. These are non-obvious data-fidelity caveats an agent could not infer.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core purpose and mode routing, with caveats after. The eight enumerated code meanings take up roughly a third of the text and largely restate decodable output, which is the one portion that does not clearly earn its space given an output schema exists.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an 8-parameter, three-mode, paged tool, the description covers mode selection, filter combinations, coverage limits, code interpretation, retention of unknown values, and pagination via nextOffset. Return-shape detail is left to the output schema, which is the right division of labor.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3; the description still adds value by explaining how mode interacts with filters as a workflow rather than isolated fields. It does not add syntax or format detail beyond the schema, but the mode-conditioned usage framing exceeds baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with a specific verb+resource ("Find Nationalrat roll calls") and immediately enumerates the three workflow modes, which no sibling offers. It references siblings only as ID sources (chparl_search_business, chparl_search_members) rather than stating an explicit this-not-that boundary, so differentiation is strong but not stated outright.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Each mode is paired with its required and permitted inputs: "mode members with voteId for one paged roll call, or personNumber without voteId for member history", and "mode groups with voteId for complete decision counts". It also flags the combination constraints (voteId cannot combine with businessId/sessionId) so an agent can pick a mode without opening the schema.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.