Skip to main content
Glama

Get Division Detail

votes_get_division
Read-onlyIdempotent

USE THIS TOOL WHEN you have a division_id + house and want the full member-by-member voting record.

Voter lists are truncated to 100 per side to fit response limits; total voter counts are always accurate regardless of truncation. Chain from votes_search_divisions or parliament_get_debate_divisions (which cross-resolves Hansard division refs into votes-API division_ids).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
houseNoWhich house this division belongs to.Commons
division_idYesDivision ID from votes_search_divisions results.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
idYesDivision ID
dateYesDate of the division
houseYesCommons or Lords
titleYesDivision title / motion text
passedYesWhether the motion passed
truncatedNoWhether voter lists were truncated to fit response limits
aye_votersNoMembers who voted Aye (may be truncated)
ayes_countYesTotal Aye votes
noe_votersNoMembers who voted No (may be truncated)
noes_countYesTotal No votes
total_aye_votersNoTotal number of Aye voters before truncation
total_noe_votersNoTotal number of No voters before truncation
is_government_winNoWhether the government won (Lords only)

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. Changed4 schema fields changed
    • addedInput schema / properties / division_id
      Added value: +{
      +  "description": "Division ID from votes_search_divisions results.",
      +  "minimum": 1,
      +  "type": "integer"
      +}
    • addedInput schema / properties / house
      Added value: +{
      +  "default": "Commons",
      +  "description": "Which house this division belongs to.",
      +  "enum": [
      +    "Commons",
      +    "Lords"
      +  ],
      +  "type": "string"
      +}
    • removedInput schema / properties / params
      Removed value: -{
      -  "additionalProperties": false,
      -  "description": "DivisionDetailInput.",
      -  "properties": {
      -    "division_id": {
      -      "description": "Division ID from votes_search_divisions results.",
      -      "minimum": 1,
      -      "type": "integer"
      -    },
      -    "house": {
      -      "default": "Commons",
      -      "description": "Which house this division belongs to.",
      -      "enum": [
      -        "Commons",
      -        "Lords"
      -      ],
      -      "type": "string"
      -    }
      -  },
      -  "required": [
      -    "division_id"
      -  ],
      -  "type": "object"
      -}
    • changedInput schema / required
      Previous value: -[
      -  "params"
      -]New value: +[
      +  "division_id"
      +]
  2. Changed1 schema field changed
    • changedInput schema / properties / params / description
      Previous value: -"DivisionDetailInput with division_id and house."New value: +"DivisionDetailInput."
  3. Changed2 schema fields changed
    • changedOutput schema / properties / aye_voters / items / properties / member_id / description
      Previous value: -"Parliament Members API member ID"New value: +"Parliament Members API integer ID — same ID space as the parliament_* module. Use as `member_id` in parliament_member_debates / parliament_member_interests to see this voter's contributions and registered interests, or as {member_id} in hansard://member/{member_id}/biography for their role history."
    • changedOutput schema / properties / noe_voters / items / properties / member_id / description
      Previous value: -"Parliament Members API member ID"New value: +"Parliament Members API integer ID — same ID space as the parliament_* module. Use as `member_id` in parliament_member_debates / parliament_member_interests to see this voter's contributions and registered interests, or as {member_id} in hansard://member/{member_id}/biography for their role history."
  4. Changed1 schema field changed
    • addedInput schema / properties / params / description
      Added value: +"DivisionDetailInput with division_id and house."
  5. Changed17 schema fields changed
    • removedOutput schema / description
      Removed value: -"Generic wrapper for non-object return types."
    • addedOutput schema / properties / aye_voters
      Added value: +{
      +  "description": "Members who voted Aye (may be truncated)",
      +  "items": {
      +    "properties": {
      +      "member_id": {
      +        "description": "Parliament Members API member ID",
      +        "type": "integer"
      +      },
      +      "name": {
      +        "description": "Member display name",
      +        "type": "string"
      +      },
      +      "party": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "description": "Political party"
      +      }
      +    },
      +    "required": [
      +      "member_id",
      +      "name"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / properties / ayes_count
      Added value: +{
      +  "description": "Total Aye votes",
      +  "type": "integer"
      +}
    • addedOutput schema / properties / date
      Added value: +{
      +  "description": "Date of the division",
      +  "format": "date",
      +  "type": "string"
      +}
    • addedOutput schema / properties / house
      Added value: +{
      +  "description": "Commons or Lords",
      +  "type": "string"
      +}
    • addedOutput schema / properties / id
      Added value: +{
      +  "description": "Division ID",
      +  "type": "integer"
      +}
    • addedOutput schema / properties / is_government_win
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "boolean"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Whether the government won (Lords only)"
      +}
    • addedOutput schema / properties / noe_voters
      Added value: +{
      +  "description": "Members who voted No (may be truncated)",
      +  "items": {
      +    "properties": {
      +      "member_id": {
      +        "description": "Parliament Members API member ID",
      +        "type": "integer"
      +      },
      +      "name": {
      +        "description": "Member display name",
      +        "type": "string"
      +      },
      +      "party": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "description": "Political party"
      +      }
      +    },
      +    "required": [
      +      "member_id",
      +      "name"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / properties / noes_count
      Added value: +{
      +  "description": "Total No votes",
      +  "type": "integer"
      +}
    • addedOutput schema / properties / passed
      Added value: +{
      +  "description": "Whether the motion passed",
      +  "type": "boolean"
      +}
    • removedOutput schema / properties / result
      Removed value: -{
      -  "type": "string"
      -}
    • addedOutput schema / properties / title
      Added value: +{
      +  "description": "Division title / motion text",
      +  "type": "string"
      +}
    • addedOutput schema / properties / total_aye_voters
      Added value: +{
      +  "default": 0,
      +  "description": "Total number of Aye voters before truncation",
      +  "type": "integer"
      +}
    • addedOutput schema / properties / total_noe_voters
      Added value: +{
      +  "default": 0,
      +  "description": "Total number of No voters before truncation",
      +  "type": "integer"
      +}
    • addedOutput schema / properties / truncated
      Added value: +{
      +  "default": false,
      +  "description": "Whether voter lists were truncated to fit response limits",
      +  "type": "boolean"
      +}
    • changedOutput schema / required
      Previous value: -[
      -  "result"
      -]New value: +[
      +  "id",
      +  "title",
      +  "date",
      +  "house",
      +  "ayes_count",
      +  "noes_count",
      +  "passed"
      +]
    • removedOutput schema / x-fastmcp-wrap-result
      Removed value: -true
  6. First observed

TDQS

A4.7/5.0
Behavior5/5

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

Beyond the annotations (read-only, idempotent), the description discloses a critical behavioral trait: voter lists are truncated to 100 per side while total counts remain accurate. This level of transparency helps agents set expectations and avoid misinterpreting truncated data. No contradiction with annotations.

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 description is highly concise, front-loaded with an explicit 'USE THIS TOOL WHEN' directive, and packs essential information (purpose, input prerequisites, truncation caveat, chaining) into two sentences. Every sentence adds value, and the capitalization draws appropriate attention.

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 only two parameters and an existing output schema, the description covers all critical aspects: what the tool does, when to use it, key limitations (truncation), and how to obtain inputs. No additional context is needed for an agent to invoke it correctly.

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?

The input schema already provides full coverage (100%) with descriptions for both parameters, including the source of division_id. The description only restates 'division_id + house' without adding further semantic detail, so it meets the baseline but does not elevate parameter understanding.

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 clearly states a specific action—retrieving the full member-by-member voting record for a division—and immediately distinguishes itself from sibling search and debate tools. The resource (division_id + house) is explicit, and the chaining reference to votes_search_divisions and parliament_get_debate_divisions further differentiates it.

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?

The description explicitly tells agents when to use this tool ('USE THIS TOOL WHEN you have a division_id + house'), and provides guidance on how to obtain the ID via sibling tools. It also clarifies the chaining workflow, though it could be more explicit about when not to use it; still, the guidance is strong and actionable.

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.

TDQS

A4.4/5.0
Disambiguation5/5

Every tool has a clearly distinct purpose, with detailed descriptions that prevent ambiguity. Tools covering similar domains (e.g., multiple parliament search tools) are carefully differentiated by their search approach and input requirements.

Naming Consistency5/5

All tools follow a consistent snake_case verb_noun pattern (e.g., bills_get_bill, case_law_search, citations_resolve). Even generic tools adhere to this style. No mixing of conventions.

Tool Count4/5

With 35 tools, the count is on the higher side but appropriate for the wide-ranging domain of UK legal research. Each tool contributes to specific sub-domains (bills, case law, citations, committees, HMRC, legislation, parliament, votes) without unnecessary duplication.

Completeness5/5

The tool surface covers nearly all essential aspects of UK legal research: searching and retrieving bills, case law, and legislation; parsing and resolving citations; exploring committee evidence; accessing Hansard debates and member interests; and checking HMRC guidance and VAT rates. Gaps like full judgment text retrieval are mitigated by paragraph-level access and indexing.