Skip to main content
Glama

Get Divisions Held In A Debate

parliament_get_debate_divisions
Read-onlyIdempotent

USE THIS TOOL WHEN you have a debate_ext_id and want the divisions (formal votes) held within it.

Most debates contain no divisions — Business of the House sittings, statements, urgent questions, debates without a vote. A populated list typically appears around bill stages, motions, and contested amendments. Empty list is the honest result, not a failure mode.

Each returned division carries TWO IDs:

  • id — Hansard-side reference. Useful for cross-referencing in Hansard.

  • votes_id — Lords/Commons Votes API ID (cross-resolved by date+number). AFTER calling, pass votes_id as division_id into votes_get_division for the full member-by-member voting record.

The two upstreams use distinct ID-spaces (Hansard Number=3 might be Votes-API divisionId=3392). The cross-resolve runs once per (date, house) group — typically one extra HTTP per debate. votes_id is None when the cross-resolve found no match.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
debate_ext_idYesDebate GUID (DebateSectionExtId). Chain from parliament_search_hansard contribution.debate_ext_id, top_debates[].debate_ext_id, or parliament_policy_position_summary top_debates[].debate_ext_id.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
divisionsNoDivisions held in this debate, in chronological order. Empty when no divisions occurred. Each element's `id` chains to votes_get_division.
debate_ext_idYesEcho of the input debate GUID.

Schema Changelog

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

  1. Changed3 schema fields changed
    • addedInput schema / properties / debate_ext_id
      Added value: +{
      +  "description": "Debate GUID (DebateSectionExtId). Chain from parliament_search_hansard contribution.debate_ext_id, top_debates[].debate_ext_id, or parliament_policy_position_summary top_debates[].debate_ext_id.",
      +  "minLength": 8,
      +  "type": "string"
      +}
    • removedInput schema / properties / params
      Removed value: -{
      -  "additionalProperties": false,
      -  "description": "GetDebateDivisionsInput with the debate_ext_id GUID\n(chain from parliament_search_hansard contribution.debate_ext_id\nor top_debates[].debate_ext_id).",
      -  "properties": {
      -    "debate_ext_id": {
      -      "description": "Debate GUID (DebateSectionExtId). Chain from parliament_search_hansard contribution.debate_ext_id, top_debates[].debate_ext_id, or parliament_policy_position_summary top_debates[].debate_ext_id.",
      -      "minLength": 8,
      -      "type": "string"
      -    }
      -  },
      -  "required": [
      -    "debate_ext_id"
      -  ],
      -  "type": "object"
      -}
    • changedInput schema / required
      Previous value: -[
      -  "params"
      -]New value: +[
      +  "debate_ext_id"
      +]
  2. Changed2 schema fields changed
    • changedOutput schema / properties / divisions / items / properties / id / description
      Previous value: -"Division ID. Use as the `division_id` input to votes_get_division for the full member-by-member voting record."New value: +"Hansard-side division ID — distinct ID-space from the Lords/Commons Votes API. This value does NOT chain to votes_get_division (different API). For per-member voting, see `votes_id` below — populated when cross-resolution succeeded."
    • addedOutput schema / properties / divisions / items / properties / votes_id
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "integer"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Lords/Commons Votes API division ID, cross-resolved from the upstream by (date + house + number). Use as the `division_id` input to votes_get_division for the full member-by-member voting record. None when the cross-resolve found no match (e.g. some Daily Part divisions are recorded in Hansard before the Votes API publishes them)."
      +}
  3. Added

TDQS

A4.6/5.0
Behavior5/5

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

Despite annotations indicating safe read-only behavior, the description adds valuable behavioral details: empty list is an honest result, cross-resolve happens once per (date, house) group with an extra HTTP, votes_id can be None, and the two ID spaces are distinct. 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.

Conciseness4/5

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

The description is front-loaded with the usage condition and contains well-structured bullet points for the two IDs. It is longer than minimal but every sentence adds meaningful context; no waste.

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?

Given the tool has an output schema, the description focuses on critical nuances: the possibility of an empty list, the meaning of votes_id, the cross-resolve behavior, and the None case. This provides a complete mental model for correct invocation and interpretation.

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% for the single parameter debate_ext_id, which already includes a detailed description with chaining sources. The tool description itself adds no additional parameter semantics beyond the usage line, so the baseline of 3 is appropriate.

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 the tool retrieves divisions (formal votes) held within a debate. It distinguishes itself from siblings like parliament_get_debate_contributions and votes_get_division by focusing on the debate-level divisions list and explicitly referencing the votes_id linkage.

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?

Explicitly says 'USE THIS TOOL WHEN you have a debate_ext_id and want the divisions'. Also provides when-not-to-use context (most debates have no divisions) and directs users to votes_get_division with the votes_id, giving clear alternative and follow-up guidance.

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.