uk-parliament-mcp-server
Server Details
Search UK Parliament bills, members, votes, Hansard, written questions, and committees.
- Status
- Healthy
- Uptime
- 100.0% over the last 24 hours
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- cyanheads/uk-parliament-mcp-server
- GitHub Stars
- 1
- Server Listing
- uk-parliament-mcp-server
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 9 tools
Each tool targets a distinct parliamentary resource (bills, committees, members, divisions, hansard, questions, reference data), so misselection is unlikely. However, committee search is folded into ukparl_get_committee rather than a separate search tool, creating a slight asymmetry with the rest of the set, and several tools are multi-modal with dense mode parameters that could blur boundaries.
All tools use the consistent ukparl_ prefix and snake_case, with a clear get_ vs search_ distinction for most resources. The only deviations are ukparl_lookup_reference (uses 'lookup' instead of 'search' or 'get') and ukparl_get_committee, which also performs search—both minor inconsistencies.
Nine tools is well within the ideal 3–15 range and each tool corresponds to a meaningful resource or action in the parliamentary domain. The set is scoped and no tool feels redundant or like padding.
The surface covers the core read-only workflows for bills, committees, members, divisions, hansard, and questions, with detail and pagination modes embedded in relevant tools. Minor gaps exist—e.g., committee search is only available via get_committee and there is no standalone fetch for individual Hansard contributions by ID—but agents can work around these.
Available Tools
9 toolsukparl_get_billUkparl Get BillARead-onlyIdempotentInspect
Retrieve a Westminster bill overview or select stages, stage, publications, amendments, amendment, motions or motion. Stage/amendment/motion selections require the bill-specific billStageId from section=stages; singular amendment/motion also require itemId from their parent collection. Use amendmentId for amendment retrieval and motion.id for motions. Filter only the amendments collection by amendmentNumber, decision or sponsoring memberId. Collection selectors paginate whole records. Overview leaves publications unchecked; select publications to discover actual supplied legislation.gov.uk statute links. Follow contentCursor with the original selection to reconstruct oversized records.
Inputs: billId (required), limit, cursor, itemId, +6 more. Returns: cap, page, error, found, +20 more
ukparl_get_committeeGet committees and evidenceARead-onlyIdempotentInspect
Find Westminster committees with mode=search, then use committeeId for detail, members, inquiries or publications. Inquiries returns every committee business type, labelled by isInquiry; use businessId with mode=inquiry for complete business detail or to filter publications. Use publicationId with mode=publication for complete report/publication metadata and source links. Use mode=evidence with businessId and evidenceType=written|oral to list evidence; mode=evidence_detail requires evidenceId and evidenceType in the same namespace. Memberships retain all role periods; personId is distinct from Members API memberId. No document downloads or text extraction. Follow cursors with unchanged filters; contentCursor retrieves oversized records losslessly. Typed entities retain sourcePath relationships to reconstruct nested source metadata.
Inputs: mode, house, limit, query, +16 more. Returns: cap, mode, page, error, +19 more
ukparl_get_memberUkparl Get MemberARead-onlyIdempotentInspect
Retrieve a member profile, roles, committee seats, official contact information, registered interests or recorded voting history. Roles without category lists available biography categories; select category to page whole periods. Interests and voting require an explicit House. Committee person IDs differ from member IDs. Voting uses native 20-row pages and reports recorded lobby and teller facts, without lifetime participation metrics. Follow collection cursors with unchanged selectors; use contentCursor to reconstruct oversized records.
Inputs: memberId (required), house, limit, cursor, +3 more. Returns: cap, page, error, found, +22 more
ukparl_lookup_referenceUkparl Lookup ReferenceARead-onlyIdempotentInspect
Resolve Parliament filter IDs and inspect source coverage before searching. Use identifiers for ID namespaces and required selectors, coverage for Hansard date limitations, or a named reference topic for filter IDs. Follow opaque collection cursors with the same filters; use contentCursor to reconstruct an oversized selected payload.
Inputs: topic (required), house, limit, cursor, +2 more. Returns: cap, page, error, items, +17 more
ukparl_search_billsUkparl Search BillsARead-onlyIdempotentInspect
Search Westminster bill summaries by title, current or originating House, session, sponsoring member, department, reference stage, bill type or status, with optional official ordering. Use ukparl_lookup_reference for stage/type/department IDs and ukparl_get_bill for complete selected records. Department IDs are distinct from answering-body IDs. inAmendableStage=true restricts to amendable stages; false is unrestricted. No session or date scope is inferred. Follow collection cursors with the same filters; use contentCursor to reconstruct an oversized item.
Inputs: house, limit, query, cursor, +11 more. Returns: cap, page, error, items, +13 more
ukparl_search_divisionsUkparl Search DivisionsARead-onlyIdempotentInspect
Search official Commons or Lords division summaries, or use detail, voters or party_totals with a divisionId from the same House. Search supports title/number text, member and inclusive division dates; member searches include memberVote with the recorded House-native lobby and teller flag. Detail preserves complete metadata and teller identities, with roster selectors for voters mode. Voters can filter exact source party labels and House-compatible lobbies. not_recorded means only the source list, never abstention. Party totals count listed non-tellers and tellers separately from official headline counts. Follow collection cursors with unchanged filters; reconstruct oversized content using contentCursor.
Inputs: house (required), mode, limit, lobby, +8 more. Returns: mode, page, error, found, +19 more
ukparl_search_hansardSearch spoken HansardARead-onlyIdempotentInspect
Search spoken Westminster Hansard contributions by topic, member, House, date or numeric debateSectionId. Returns full source contribution text where supplied, including HTML; previews are labelled summaries. Repeat with a returned debateSectionId to search that section, which does not establish an entire debate transcript. Historical completeness is not guaranteed, including the 2004–2006 website warning despite some API records. Use ukparl_lookup_reference topic=coverage for archive guidance. Follow collection cursors unchanged and contentCursor for lossless oversized contributions; retry timeouts with shorter date windows.
Inputs: house, limit, query, cursor, +5 more. Returns: cap, page, error, items, +20 more
ukparl_search_membersUkparl Search MembersARead-onlyIdempotentInspect
Find MPs and peers by name, location or constituency, party, House, and current or historical membership. currentOnly=false includes current and former members. asOf selects historical membership and accepts name only, without House, party or location filters. Search results preserve latest profile fields; retrieve sections with ukparl_get_member. Follow opaque cursors with unchanged filters and use contentCursor for oversized records.
Inputs: asOf, name, house, limit, +5 more. Returns: cap, mode, page, error, +16 more
ukparl_search_questionsSearch written questionsARead-onlyIdempotentInspect
Search Westminster written questions and answer previews by text, exact UIN, asking or answering member, House, answering body, answer state and dates. An undated UIN returns candidates across sessions; narrow with tabling dates and retrieve mode=detail with a returned questionId for complete question and answer HTML, corrections and attachment links. A UIN is not a questionId and never determines House. Search includes all sessions and withdrawn questions. Follow collection cursors unchanged; use contentCursor for lossless oversized answers.
Inputs: uin, mode, house, limit, +12 more. Returns: cap, mode, page, error, +19 more
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
Related MCP Connectors
Search Parliamentary questions and motions from UK House of Commons
Search MPs and Lords, fetch profiles, synopses, and Westminster constituencies
Search UK Acts, Statutory Instruments, and legislation with full text retrieval
Search Swiss parliamentary business, votes, debates, members, and declared interests.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables querying UK Parliament data including MPs, Lords, bills, Hansard debates, and divisions.278 npmMIT
- AlicenseAqualityDmaintenanceProvides 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.58 npm9MIT
- AlicenseNot gradedqualityBmaintenanceEnables searching and reading UK legislation as it stands now, as enacted, or on any date, resolving citations to canonical items and provisions, listing amendments and effects, and tracking daily changes via the legislation.gov.uk publication log.159 npm2Apache 2.0
- AlicenseNot gradedqualityBmaintenanceSearch bills, legislators, committees, and events across all 50 US states, DC, and 5 US territories via MCP.255 npm3Apache 2.0
Glama MCP Gateway
Add one secure layer between your agents and this server.