Skip to main content
Glama

UK Data: UK Parliament votes

Server Details

How MPs and peers voted: Commons and Lords divisions, results, party splits, who voted which way

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
ChatGPT
–
Claude
–

TDQS

Score is being calculated.

Available Tools

5 tools
commons_division_resultA
Read-onlyIdempotent
Inspect

Get the full result of one House of Commons vote: totals, which side won, the split by party, MPs who voted against most of their own party, and the names and constituencies of MPs on the Aye and No sides and those with no vote recorded. Answers "who voted against?" and "how did my MP vote on this?". Source: UK Parliament Commons Votes API. Use a division_id from commons_division_search; lists return up to 100 MPs per side, with party filter and offset for the rest. No vote recorded is not the same as abstaining. The official totals include tellers; list_vs_official_count shows whether the published name lists match them (they can differ by one or two) and members_in_both_lobbies flags anyone recorded on both sides. (cost: 1 credit)

NameRequiredDescriptionDefault
limitNoint, optional, MPs listed per side, 1-100, default 100
partyNostring, optional, only list MPs of this party, by name or abbreviation, e.g. "Labour" or "Con"
offsetNoint, optional, skip this many MPs in each list for paging, default 0
divisionIdNoint, required, Commons division id (division_id from commons_division_search or commons_recent_divisions)

TDQS

A4.4/5.0
Behavior5/5

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

Annotations already declare read-only, idempotent, open-world, non-destructive behavior, and the description adds substantial context beyond that: pagination caps of 100 per side, a cost of 1 credit, and the important semantic warnings that 'no vote recorded' is not abstention and that published name lists can differ from official totals by one or two (with members_in_both_lobbies flagging duplicates).

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?

The payload description is front-loaded in sentence one, and the trailing sentences each carry distinct information (paging limits, the abstention distinction, the teller/list mismatch caveat, and credit cost). It is dense with parentheticals and one long run of clauses, but no sentence is filler.

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?

With no output schema, the description carries the return-value burden itself, and it names the key result fields (totals, winning side, party split, rebels, list_vs_official_count, members_in_both_lobbies) so the agent knows what it will receive. It also advises on pagination and the required division_id, matching the complexity of a single-resource lookup.

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

Parameters3/5

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

Schema coverage is 100% and each parameter already documents its type, range and default, so the description does not need to restate them. It only adds framing that the MP lists come back in pages of up to 100 per side with party filtering and offset paging, which is a marginal restatement of the schema rather than new semantics.

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

Purpose5/5

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

The description opens with a specific verb+resource ('Get the full result of one House of Commons vote') and enumerates the payload: totals, winning side, party split, intra-party rebels, and names/constituencies per side. This clearly distinguishes it from commons_division_search, which is named as the source of the division_id.

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

Usage Guidelines4/5

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

It gives a concrete entry condition ('Use a division_id from commons_division_search'), two motivating questions it answers ('who voted against?', 'how did my MP vote?'), and a paging caveat. It does not explicitly state when to prefer lords_division_result instead, so the alternative routing is only implied by the 'House of Commons / UK Parliament' framing.

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

commons_recent_divisionsA
Read-onlyIdempotent
Inspect

List the latest House of Commons votes, newest first, with date, time, title, Aye and No totals and which side won. Good for "what did MPs vote on today or this week?". Source: UK Parliament Commons Votes API. Divisions appear once the Commons publishes them, usually within an hour of the vote; use commons_division_result with a division_id for the names on each side, and lords_division_search for Lords votes. (cost: 1 credit)

NameRequiredDescriptionDefault
takeNoint, optional, number of divisions to return, 1-25, default 10

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds genuinely new behavior: the upstream source (UK Parliament Commons Votes API), a publication lag of usually under an hour, a 1-credit cost, and the result field set. The only missing piece is pagination/windowing behavior beyond the take cap, which is minor for a read-only list.

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

Conciseness5/5

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

The core operation and its output shape are front-loaded in the first clause, followed by use case, source, freshness caveat, and sibling routing in descending priority. No sentence is redundant and the parenthetical cost note is compact and last, where it belongs.

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?

There is no output schema, so the description must carry the return-value burden, and it does by listing date, time, title, Aye/No totals, and the winning side. Combined with the freshness caveat and the sibling routing for deeper detail, an agent has everything needed to call this correctly and interpret the response.

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

Parameters3/5

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

Schema coverage is 100% and the single optional parameter is fully documented in the schema with its type, range 1-25, and default of 10. The description adds only the implicit notion of "latest" and "newest first" ordering, which the schema does not state but which is really result semantics rather than parameter semantics. Baseline 3 applies since the schema carries the parameter load.

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

Purpose5/5

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

"List the latest House of Commons votes, newest first" names a specific verb, resource, and ordering, then enumerates the returned fields (date, time, title, Aye/No totals, winning side). It also explicitly differentiates itself from commons_division_result and lords_division_search, so an agent can pick it out of a very large sibling list without opening any schema.

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?

It gives a concrete use-case trigger ("what did MPs vote on today or this week?") and names two alternatives with the condition that selects each: commons_division_result for per-member names via a division_id, and lords_division_search for Lords votes. The publication-latency note also tells the agent when this tool will not yet have the data it wants.

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

lords_division_resultA
Read-onlyIdempotent
Inspect

Get the full result of one House of Lords vote: the motion or amendment, Content and Not Content totals, whether the government won, the split by party, peers who voted against most of their own party, and every peer listed as Content or Not Content. Answers "which peers voted against the government?". Source: UK Parliament Lords Votes API. Lists return up to 100 peers per side, with party filter and offset for the rest; peers who did not vote are not listed. (cost: 1 credit)

NameRequiredDescriptionDefault
limitNoint, optional, peers listed per side, 1-100, default 100
partyNostring, optional, only list peers of this party or group, e.g. "Crossbench", "Bishops" or "Lab"
offsetNoint, optional, skip this many peers in each list for paging, default 0
divisionIdNoint, required, Lords division id (division_id from lords_division_search)

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/non-destructive, so the bar is lower, and the description still adds real behavioral detail: per-side lists cap at 100 peers, party filter and offset page through the remainder, and peers who did not vote are omitted entirely. That last caveat prevents a serious misreading of the data. The 1-credit cost is also disclosed; only error behavior for an invalid divisionId is unaddressed.

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 what is returned, then the use-case question, then source, then pagination caveats. Dense but every clause carries information; the parenthetical credit cost is a slightly tacked-on addition but still useful. No filler.

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?

With no output schema, the description carries the full burden of describing the return payload, and it does so field by field — totals, government result, party split, rebels, and per-side peer lists. Combined with the pagination and non-voter caveats, an agent has everything needed to call it and interpret results correctly.

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 coverage is 100%, so 3 is the baseline, but the sentence 'Lists return up to 100 peers per side, with party filter and offset for the rest' explains how limit, party, and offset interact over the same per-side lists in a way the individual schema strings do not. That interaction semantics is the added value.

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

Purpose5/5

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

States a specific verb and resource ('Get the full result of one House of Lords vote') and then enumerates exactly what that result contains: motion/amendment text, Content and Not Content totals, government outcome, party split, rebels, and individual peer lists. The House of Lords scoping separates it cleanly from commons_division_result, and the single-division scope separates it from lords_division_search.

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

Usage Guidelines4/5

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

Gives clear context for when the tool is the right one, including the concrete question it answers ('which peers voted against the government?'). It does not explicitly state the prerequisite of calling lords_division_search first for a divisionId (that hint lives only in the schema), and it names no exclusion conditions.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 5 tool updates
    • First observedcommons_division_result
    • First observedcommons_division_search
    • First observedcommons_recent_divisions
    • First observedlords_division_result
    • First observedlords_division_search

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    Provides access to live UK Parliament data including bills, votes, MP profiles, and financial interests without requiring an API key. It enables users to track parliamentary rebellions, search petitions, and cross-reference voting records with declared financial interests.
    5
    3 npm
    9
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI agents to look up how each U.S. House member voted on individual House Clerk roll calls, to retrieve a member's attendance and party-line voting shares with explicit denominators and exclusions, and to list every member's position on a given roll call. Keyless, covering the 119th Congress (sessions 1 and 2), with unsupported chambers and Congresses returning a stated reason.
    623 npm
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Enables AI assistants such as Claude, ChatGPT and Gemini to query French National Assembly voting records from the public CIVIX open data API in French, with sources cited for each scrutin. It lets users look up roll-call votes by topic, individual deputies' positions, parliamentary groups and vote breakdowns without inventing figures from memory.
    27
    1
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources