Skip to main content
Glama

uk-parliament-mcp-server

Server Details

Search UK Parliament bills, members, votes, Hansard, written questions, and committees.

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
Repository
cyanheads/uk-parliament-mcp-server
GitHub Stars
0
Server Listing
uk-parliament-mcp-server

TDQS

A4.2/5.0

Scored across 9 tools

Disambiguation4/5

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.

Naming Consistency4/5

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.

Tool Count5/5

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.

Completeness4/5

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 tools
ukparl_get_billUkparl Get BillA
Read-onlyIdempotent
Inspect

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.

NameRequiredDescriptionDefault
limitNoCollection records; positive safe integer, default 20, effective cap 50; collections only.
billIdYesParent bill identifier from ukparl_search_bills.
cursorNoCollection continuation; collections only.
itemIdNoAmendment amendmentId or ping-pong motion.id; singular selections only.
sectionNoSelected bill section; overview by default.overview
decisionNoOfficial amendment decision filter; amendments collection only.
memberIdNoSponsoring member ID; amendments collection only.
billStageIdNoBill-specific stage occurrence ID, required for stage/amendment/motion selections.
contentCursorNoLossless same-selection content continuation.
amendmentNumberNoPublished amendment number, retaining letter suffixes; amendments collection only.

Output Schema

NameRequiredDescription
capNoEffective per-call collection limit.
pageNoActual emitted collection continuation.
errorNoPresent when the call failed. Absent on success.
foundNoWhether the selected entity exists.
itemsNoWhole selected collection records.
shownNoActual whole records emitted or selected for lossless reconstruction.
billIdNoParent bill ID.
noticeNoLicence, workload and selected empty-collection notices.
recordNoComplete selected record.
sourceNoSelected request provenance.
appliedNoNormalized selection and actual source.
sectionNoSelected bill section.
deliveryNoFull selected payload, child outline, or JSON fragment.
guidanceNoSame-server recovery for an entity miss.
identityNoStable selected-record identifiers retained during content retrieval.
retrievalNoSame-tool retrieval instruction.
truncatedNoFurther source records remain after this selected page.
provenanceNoSelected response provenance retained during content retrieval; source notices remain in the reconstructed payload.
totalCountNoKnown selected collection total.
contentPageNoLossless recursive content continuation.
detailLevelNoSelected source completeness.
collectionPageNoCollection continuation; reconstruct the outlined selected payload before following it.
requestedLimitNoCaller limit before clamping.
legislationHandoffNoAuthoritative statute handoff.

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and openWorldHint, lowering the disclosure burden. The description adds useful behavior beyond those annotations: collection selectors paginate whole records, overview omits publications, publications reveal supplied legislation.gov.uk statute links, and contentCursor reconstructs oversized records.

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 core retrieval purpose and every clause carries a selection, dependency, or pagination rule. It is dense and semicolon-heavy, which makes it harder to scan, but there is little obvious 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?

This is a complex 10-parameter tool with an output schema and annotations. The description supplies the critical cross-parameter dependencies, collection filtering limits, publication nuance, and oversized-record recovery needed to invoke it 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 the baseline is 3, but the description adds cross-parameter meaning beyond the schema. It links billStageId to section=stages, itemId to the parent collection for singular amendment/motion retrieval, and restricts amendment filters to the amendments collection.

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 states a specific verb and resource: retrieve a Westminster bill overview or selected sections including stages, publications, amendments, and motions. It enumerates the selectable sections, so an agent can understand the tool's scope without opening the schema, and it is not a tautology of the title.

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 clear conditional guidance for selecting sections, including that stage/amendment/motion selections require billStageId and singular selections also require itemId. It also explains filtering and pagination rules, though it does not explicitly route the agent from ukparl_search_bills to this retrieval tool beyond the schema's billId note.

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

ukparl_get_committeeGet committees and evidenceA
Read-onlyIdempotent
Inspect

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.

NameRequiredDescriptionDefault
modeNoSearch, committee detail, members, business list/detail, publication list/detail or written/oral evidence list/detail.search
houseNoCommons, Lords or Joint, case-insensitive; exact House of Commons/Lords aliases also accepted. Search only.
limitNoCollection size: search default 10 cap 20; nested default 20 cap 50. Safe over-cap values clamp. Omit for singular modes.
queryNoSearch terms for search, inquiries or publications; latter two require at least two characters.
cursorNoOpaque collection continuation; repeat unchanged filters and effective limit.
statusNoSearch: Current|Former|All. Inquiries: Open|Closed. Omitted uses source default.
openedToNoInquiries opened on/before this ISO date.
sortOrderNoInquiries: DateOpenedNewest|DateOpenedOldest|PublicationDateAscending|PublicationDateDescending. Publications: PublicationDateAscending|PublicationDateDescending|ResponseDateAscending|ResponseDateDescending. Omitted preserves source order.
businessIdNoBusiness ID required for inquiry and evidence; optional additional publication filter.
evidenceIdNoEvidence detail ID, scoped by evidenceType.
membershipNoMembers mode only, default all; filters role-period membership status.
openedFromNoInquiries opened on/after this ISO date.
committeeIdNoCommittee ID required for detail, members and publications; optional for inquiries to discover businesses across committees.
publishedToNoPublications starting on/before this ISO date.
evidenceTypeNoRequired for evidence list/detail; written and oral IDs are distinct.
contentCursorNoOpaque same-selection content continuation; reconstruct records before advancing collection cursor.
publicationIdNoPublication ID required for publication detail.
publishedFromNoPublications starting on/after this ISO date.
acceptingEvidenceNoInquiries only: true selects accepting businesses; false leaves source selection unrestricted.
publicationTypeIdsNoPublications only: positive publication type IDs, serialized as repeated parameters.

Output Schema

NameRequiredDescription
capNoMaximum collection workload for this mode.
modeNoSelected committee operation.
pageNoWhole-record collection continuation.
errorNoPresent when the call failed. Absent on success.
foundNoSingular lookup result; false requires guidance.
itemsNoSelected whole collection items.
shownNoActually emitted whole collection records.
totalNoSource total collection records.
noticeNoLicence, namespace, business and document-access notices.
recordNoComplete selected source record with typed relationship pointers.
sourceNoActual selected official request provenance.
appliedNoEffective operation, page size and explicit source visibility.
filtersNoComplete normalized caller selection.
deliveryNoFull selected payload, child outline, or JSON fragment.
guidanceNoRecovery for empty or missing selections.
identityNoStable selected-record identifiers retained during content retrieval.
retrievalNoSame-tool retrieval instruction.
truncatedNoFurther whole collection records remain.
provenanceNoSelected response provenance retained during content retrieval; source notices remain in the reconstructed payload.
sourcePageNoSource collection envelope metadata.
contentPageNoLossless recursive content continuation.
collectionPageNoCollection continuation; reconstruct the outlined selected payload before following it.
requestedLimitNoOriginal page-size request when capped.

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/openWorld, so the safety profile is covered. The description adds real behavior beyond that: cursors must be followed with unchanged filters, contentCursor retrieves oversized records losslessly (and must be drained before advancing the collection cursor), memberships retain all role periods, and no document text is extracted. It does not discuss failure modes or error semantics for invalid ID/namespace combinations, but the added context is substantial.

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

Conciseness3/5

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

Front-loaded well — the search-then-detail workflow leads — and every sentence is factual. But it is one undifferentiated paragraph of ten terse clauses with jargon (isInquiry, sourcePath, contentCursor) strung together, making it hard to scan for the mode an agent actually needs; the closing sentence about sourcePath is low-value density for most calls.

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

Completeness4/5

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

For 20 parameters across 9 modes with an output schema present, the description covers the routing, cursor discipline, ID namespaces, and scope exclusions an agent needs to invoke it correctly. Remaining gaps (rate limits, invalid-combination errors, expected empty results) are minor given full schema coverage and an output schema.

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 baseline is 3; the description earns above that by explaining parameter interdependencies the schema does not state as relationships — that evidenceId and evidenceType must be in the same namespace, that businessId is required for inquiry/evidence but merely an optional publication filter, and that personId is not the Members API memberId. It still leaves the evidenceType effect on evidence listing slightly implicit.

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 Westminster committees") and immediately enumerates the multi-mode surface: detail, members, inquiries, publications, evidence. An agent can tell what the tool does and that it is a committee-scoped hub, and it is implicitly distinct from the bill/member/division siblings. It stops short of an explicit sibling differentiation statement (e.g., "for member biographies use ukparl_get_member instead of mode=members").

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 dominant usage decision for this tool is which mode to pick, and the description routes every one of them: mode=search to find, committeeId for detail/members/inquiries/publications, businessId+mode=inquiry for business detail, publicationId+mode=publication for report metadata, mode=evidence with businessId and evidenceType, mode=evidence_detail requiring evidenceId plus matching evidenceType. It also states a clear when-not ("No document downloads or text extraction") and a cross-API warning (personId vs Members API memberId).

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

ukparl_get_memberUkparl Get MemberA
Read-onlyIdempotent
Inspect

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.

NameRequiredDescriptionDefault
houseNoRequired for interests and voting; forbidden for other sections.
limitNoRequested whole rows; default 20, cap 50 for local histories. Voting uses native 20-row pages independently of limit.
cursorNoOpaque whole-item collection continuation with unchanged selectors.
sectionNoSelected member subsection; default profile.profile
categoryNoRoles only: select one complete biography collection.
memberIdYesMembers API decimal identifier from ukparl_search_members.
contentCursorNoOpaque same-selection lossless content continuation.

Output Schema

NameRequiredDescription
capNoEffective whole-item workload cap.
pageNoContinuation by actual emitted items.
errorNoPresent when the call failed. Absent on success.
foundNoWhether the parent member exists.
itemsNoWhole selected source records tagged by kind.
linksNoSelected source relationship links.
shownNoActual whole items emitted in this collection page.
noticeNoLicence, coverage and workload notices.
recordNoWhole member profile or explicit role category outline.
sourceNoActual selected source request.
appliedNoNormalized selectors, source and effective workload.
sectionNoSelected member subsection.
deliveryNoFull selected payload, child outline, or JSON fragment.
guidanceNoAbsence, uncertainty or same-server follow-up guidance.
identityNoStable selected-record identifiers retained during content retrieval.
memberIdNoCanonical Members API identifier.
retrievalNoSame-tool retrieval instruction.
truncatedNoFurther whole collection items remain.
nativePageNoActual requested source voting page, starting at one.
provenanceNoSelected response provenance retained during content retrieval; source notices remain in the reconstructed payload.
totalCountNoComplete selected collection count when known.
contentPageNoLossless recursive content continuation.
collectionPageNoCollection continuation; reconstruct the outlined selected payload before following it.
nativePageSizeNoNative voting page size, independent of caller limit.
requestedLimitNoCaller limit when a cap or native-page rule applies.
membershipContextsNoSource person metadata, including people with unavailable or empty membership collections.

TDQS

A4.7/5.0
Behavior5/5

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

Beyond the read-only/idempotent annotations, the description discloses important behavior: voting uses native 20-row pages, reports lobby and teller facts, and omits lifetime participation metrics. It also explains cursor continuation rules and the existence of contentCursor for reconstructing oversized records.

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 dense but front-loaded and every clause carries operational meaning. It is somewhat semicolon-heavy and could be easier to scan, but it does not waste words.

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 a seven-parameter tool with an output schema and rich annotations, the description covers all critical caller decisions: section selection, house applicability, role categories, cursor handling, and voting pagination. Nothing essential is missing for correct invocation.

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

Parameters5/5

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

Although schema coverage is already 100%, the description adds cross-parameter semantics: house is required for interests/voting, category applies only to roles, and cursor continuation requires unchanged selectors. It also clarifies that voting pagination is independent of the limit parameter and that committee person IDs differ from member IDs.

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 gives a specific verb and resource: retrieving a member profile and its subsections (roles, committee seats, contact, interests, voting). It clearly distinguishes the tool from list/search siblings by requiring a member ID and by enumerating member-specific subsections.

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 clear usage conditions: interests and voting require an explicit House, and roles need a category to page whole biography collections. It does not explicitly mention when to use this instead of ukparl_search_members, but the get-vs-search distinction is clear from the description.

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

ukparl_lookup_referenceUkparl Lookup ReferenceA
Read-onlyIdempotent
Inspect

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.

NameRequiredDescriptionDefault
houseNoCommons or Lords; required for active parties.
limitNoRequested whole reference rows; positive safe integer, default 10, effective cap 20.
topicYesReference topic or static identifier/coverage guide.
cursorNoOpaque collection cursor; repeat the same normalized filters.
nameContainsNoCase-insensitive AND tokens over the complete named reference set.
contentCursorNoOpaque same-selection recursive content continuation.

Output Schema

NameRequiredDescription
capNoEffective maximum whole reference rows per call.
pageNoWhole reference-row pagination.
errorNoPresent when the call failed. Absent on success.
itemsNoComplete named reference rows in the selected page.
shownNoActual whole reference rows selected for delivery.
topicNoSelected reference topic on a full payload.
noticeNoLicence, coverage and workload notices.
appliedNoNormalized selection applied by this call.
sourcesNoAll requests that supplied the complete reference set.
coverageNoStatic typed historical coverage facts and official sources.
deliveryNoFull selected payload, child outline, or JSON fragment.
identityNoStable selected-record identifiers retained during content retrieval.
retrievalNoSame-tool retrieval instruction.
truncatedNoFurther reference rows remain after the selected page.
provenanceNoSelected response provenance retained during content retrieval; source notices remain in the reconstructed payload.
totalCountNoKnown complete selected guide or reference row count.
contentPageNoLossless recursive content continuation.
identifiersNoStatic typed identifier namespaces and supported selections.
nameContainsNoComplete normalized AND-token filter, retained through content continuation.
collectionPageNoCollection continuation; reconstruct the outlined selected payload before following it.
requestedLimitNoCaller limit before an effective cap was applied.

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/openWorld, so the description's value-add is the cursor lifecycle: 'Follow opaque collection cursors with the same filters; use contentCursor to reconstruct an oversized selected payload.' That explains pagination and reconstruction behavior beyond structured fields. It stops short of describing return shape, but the output schema covers that.

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?

Two compact sentences, front-loaded with the core 'resolve/inspect before searching' purpose, then behavior. The phrase 'or a named reference topic for filter IDs' is slightly opaque, but overall there is little waste.

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

Completeness4/5

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

With 6 parameters, full schema coverage, an output schema, and read-only annotations, the description covers the missing behavioral layer (cursor/reconstruction semantics). It is complete enough to invoke correctly, with only minor ambiguity around reference topics.

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 baseline is 3, but the description adds operational meaning to the cursors: cursor requires repeating the same normalized filters, and contentCursor reconstructs an oversized payload. That is genuine meaning beyond the schema's one-line parameter descriptions, justifying a bump.

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?

The first sentence states a specific verb+resource pair ('Resolve Parliament filter IDs and inspect source coverage') and positions the tool as a pre-search reference, which distinguishes it from the sibling search/get tools. It is clear what the tool does, though the dense enumeration in the second sentence muddies the core purpose slightly.

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?

The description explicitly frames usage as 'before searching' and maps topic choices to situations ('identifiers for ID namespaces and required selectors, coverage for Hansard date limitations, or a named reference topic for filter IDs'). This gives an agent clear selection context, though there are no explicit when-not-to-use exclusions.

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

ukparl_search_billsUkparl Search BillsA
Read-onlyIdempotent
Inspect

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.

NameRequiredDescriptionDefault
houseNoCurrent Commons or Lords House.
limitNoRequested bills; positive safe integer, default 10, effective cap 20.
queryNoBill title search text.
cursorNoOpaque collection continuation; preserve filters.
memberIdNoSponsoring member identifier.
stageIdsNoReference stages, distinct from bill-specific stage IDs.
sessionIdNoSession identifier discovered in bill records.
sortOrderNoOfficial ordering; omission preserves the source default.
isDefeatedNoFilter by defeated state, including false.
billTypeIdsNoReference bill types.
isWithdrawnNoFilter by withdrawn state, including false.
departmentIdNoMembers department ID from ukparl_lookup_reference topic=departments; distinct from answering-body IDs.
contentCursorNoOpaque same-selection lossless content continuation.
inAmendableStageNoTrue restricts to amendable stages; false applies no restriction.
originatingHouseNoOriginating Commons or Lords House; omission includes all.

Output Schema

NameRequiredDescription
capNoEffective per-call collection limit.
pageNoActual whole-item pagination.
errorNoPresent when the call failed. Absent on success.
itemsNoComplete source bill summaries on this page.
queryNoComplete normalized query text, also reconstructed through content continuation.
shownNoActual whole records emitted or selected for lossless reconstruction.
noticeNoLicence and empty/workload notices.
appliedNoNormalized filters; no implicit current-session scope.
deliveryNoFull selected payload, child outline, or JSON fragment.
identityNoStable selected-record identifiers retained during content retrieval.
retrievalNoSame-tool retrieval instruction.
truncatedNoFurther source matches remain after this selected page.
provenanceNoSelected response provenance retained during content retrieval; source notices remain in the reconstructed payload.
totalCountNoSource total matches.
contentPageNoLossless recursive content continuation.
collectionPageNoCollection continuation; reconstruct the outlined selected payload before following it.
requestedLimitNoCaller limit before clamping.

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already cover read-only, idempotent and open-world semantics. The description adds real operational context beyond them: no implicit session/date scoping, cursor continuation must retain filters, and contentCursor is a lossless same-selection continuation. It does not cover output shape, but an output schema exists.

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, then routes to siblings, then caveats. Dense but each sentence carries information; there is minor redundancy (department/answering-body distinction appears twice) but nothing wasteful.

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 a 15-parameter, all-optional search with a full output schema and safety annotations already present, the description supplies what's missing: sibling routing, the absence of implicit scoping, and pagination/oversized-item handling. An agent has enough to call it 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 the baseline is 3, but the description adds cross-field meaning: department IDs are distinct from answering-body IDs, inAmendableStage=false means unrestricted (not 'non-amendable'), and originatingHouse omission includes all. Some of this duplicates schema text, but the clarifications genuinely reduce misuse.

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 ('Search') on a specific resource ('Westminster bill summaries') and enumerates the filterable dimensions (title, house, session, sponsor, department, stage, type, status). It explicitly distinguishes itself from ukparl_get_bill (full records) and ukparl_lookup_reference (ID resolution), so an agent can route without opening schemas.

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?

Gives explicit routing: use ukparl_lookup_reference for stage/type/department IDs and ukparl_get_bill for complete records. It also states that no session/date scope is inferred, how to follow collection cursors (preserve filters), and how contentCursor reconstructs oversized items — concrete when/when-not guidance.

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

ukparl_search_divisionsUkparl Search DivisionsA
Read-onlyIdempotent
Inspect

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.

NameRequiredDescriptionDefault
modeNoOperation; defaults to search; accepts case-insensitive canonical mode names.search
houseYesSelected House and division ID namespace.
limitNoPositive safe integer; search default 5/cap 10, voters default 20/cap 50; detail and party_totals do not paginate.
lobbyNoVoters only: Commons aye/no/not_recorded or Lords content/not_content.
partyNoExact case-insensitive source party label; voters only, not a party ID.
queryNoDivision title or number search text; search mode only.
cursorNoOpaque search/voters collection continuation; repeat the same filters.
endDateNoInclusive source division-date upper bound; search only.
memberIdNoMembers API ID; search returns this member's recorded lobby and teller flag, including divisions where they were a teller.
startDateNoInclusive source division-date lower bound; search only.
divisionIdNoDivision ID in the selected House; required outside search.
contentCursorNoOpaque same-selection lossless content continuation, separate from collection cursor.

Output Schema

NameRequiredDescription
modeNoSelected division operation.
pageNoActual emitted whole-row collection continuation.
errorNoPresent when the call failed. Absent on success.
foundNoSelected division existence; absent in search mode.
houseNoHouse scoping division IDs.
itemsNoExplicit search summaries without full roster arrays.
noticeNoLicence, coverage, empty-result and workload notices.
recordNoComplete selected division metadata, teller identities and roster selectors.
sourceNoActual selected API request provenance.
votersNoWhole deduplicated selected voter rows, including tellers.
appliedNoRequired normalized operation and actual workload metadata.
deliveryNoFull selected payload, child outline, or JSON fragment.
guidanceNoActionable recovery for a missing division or unavailable complete roster.
identityNoStable selected-record identifiers retained during content retrieval.
retrievalNoSame-tool retrieval instruction.
selectionNoComplete normalized filters retained through content delivery.
provenanceNoSelected response provenance retained during content retrieval; source notices remain in the reconstructed payload.
totalCountNoKnown selected collection total; search arrays do not supply a total.
truncationNoFurther collection rows remain; follow page.nextCursor.
contentPageNoLossless recursive content continuation.
partyTotalsNoComplete roster-derived party/lobby non-teller and teller counts.
collectionPageNoCollection continuation; reconstruct the outlined selected payload before following it.
requestedLimitNoCaller limit when clamped to the operation cap.

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/openWorld, so the bar is lower, yet the description adds real semantic caveats: 'not_recorded means only the source list, never abstention', party totals count non-tellers and tellers separately from headline counts, and detail preserves teller identities. It does not cover error behavior or cross-House mismatch consequences, which keeps it from a 5.

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

Conciseness3/5

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

Front-loads the search case correctly and has no filler, but it is a single semicolon-chained run-on that packs mode routing, caveats, and cursor rules together, making it harder to parse than a short bulleted structure would be. Terms like 'roster selectors' and 'memberVote' are introduced without explanation.

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 a 12-parameter, 4-mode tool with an output schema, the description covers mode selection, required divisionId, cursor vs contentCursor distinction, and data-interpretation quirks across all modes. Nothing essential for correct invocation is missing.

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 baseline is 3; the description still adds meaning by tying memberId results to memberVote with the recorded lobby and teller flag, clarifying party is an exact source label 'not a party ID', and explaining that divisionId must come from the same House. That is genuine value beyond the schema text.

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?

States a specific verb+resource ('Search official Commons or Lords division summaries') and enumerates the four operation modes (search, detail, voters, party_totals). The resource noun (division summaries) implicitly separates it from siblings like search_hansard or search_bills, though no sibling is named explicitly.

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 per-mode routing: text/date/member filtering for search, and 'use detail, voters or party_totals with a divisionId from the same House'. Also states the operational rules for cursors ('Follow collection cursors with unchanged filters'). No explicit when-not-to-use or named alternatives among the ukparl_* siblings.

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

ukparl_search_hansardSearch spoken HansardA
Read-onlyIdempotent
Inspect

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.

NameRequiredDescriptionDefault
houseNoCommons or Lords; exact official House aliases are accepted.
limitNoRequested whole contributions; default 5, effective cap 20 with notice.
queryNoSpoken contribution search text; no date range is inferred.
cursorNoOpaque collection continuation; repeat the same filters and effective limit.
endDateNoInclusive latest sitting date, real YYYY-MM-DD; must not precede startDate.
memberIdNoMembers API identifier discovered with ukparl_search_members.
startDateNoInclusive earliest sitting date, real YYYY-MM-DD; no inferred archive cutoff.
contentCursorNoOpaque lossless content continuation; preserve original selection and collection cursor.
debateSectionIdNoReturned numeric debateSectionId, distinct from external debate IDs.

Output Schema

NameRequiredDescription
capNoActual collection workload cap.
pageNoActual emitted whole-item continuation, independent of content delivery.
errorNoPresent when the call failed. Absent on success.
itemsNoWhole Spoken contributions in source search order.
queryNoComplete normalized search text, reconstructable during content delivery.
shownNoWhole contributions emitted or selected for reconstruction.
noticeNoLicence, coverage, missing-text, empty-result and clamped-limit guidance.
sourceNoExact official Spoken request provenance, including empty pages.
appliedNoNormalized filters and actual workload.
coverageNoHistorical source facts; samples never establish complete coverage.
deliveryNoFull selected payload, child outline, or JSON fragment.
identityNoStable selected-record identifiers retained during content retrieval.
retrievalNoSame-tool retrieval instruction.
truncatedNoFurther whole contributions remain; follow the collection cursor.
provenanceNoSelected response provenance retained during content retrieval; source notices remain in the reconstructed payload.
totalCountNoSource TotalResultCount.
contentPageNoLossless recursive content continuation.
searchTermsNoSource parsed terms, including explicit null.
collectionPageNoCollection continuation; reconstruct the outlined selected payload before following it.
requestedLimitNoOriginal request when above the workload cap.
spokenResultCountNoSource SpokenResultCount, distinct from total matches.
writtenResultCountNoSource WrittenResultCount metadata.
divisionsResultCountNoSource DivisionsResultCount metadata.
correctionsResultCountNoSource CorrectionsResultCount metadata.

TDQS

A4.6/5.0
Behavior5/5

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

Goes well beyond the readOnly/openWorld/idempotent annotations by disclosing that full contribution text including HTML is returned, that previews are labelled summaries, that debateSectionId does not yield a whole debate transcript, and that historical coverage has a 2004–2006 gap. It also specifies cursor disciplines (collection cursor unchanged, contentCursor for lossless oversized contributions), which is exactly the operational detail annotations cannot convey.

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 core purpose lands in the first sentence and each subsequent sentence carries distinct information with no filler. The final sentence packs cursor and retry rules together, which is dense but still readable, so it falls just short of ideal structure.

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 a 9-parameter, zero-required search tool with an output schema and full annotation coverage, the description supplies the remaining essentials: archive completeness caveats, sibling routing for coverage questions, pagination/continuation rules, and result-shape expectations. Nothing an agent needs in order to call it correctly appears to be missing.

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 the baseline is 3, but the description adds real semantics on top: it explains how cursor must be replayed with identical filters, what contentCursor is for, and how debateSectionId is used across repeated calls. Date-window narrowing on retry also gives practical meaning to startDate/endDate.

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 plus resource (search spoken Westminster Hansard contributions) and enumerates the available facets (topic, member, House, date, debateSectionId). The word 'spoken' cleanly separates it from siblings like ukparl_search_questions and ukparl_search_divisions without the agent needing to open another schema.

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 concrete operating guidance: repeat with a returned debateSectionId to drill into a section, consult ukparl_lookup_reference topic=coverage for archive questions, and retry timeouts with shorter date windows. It doesn't explicitly state when to prefer a sibling such as ukparl_search_questions over this tool, which keeps it short of a 5.

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

ukparl_search_membersUkparl Search MembersA
Read-onlyIdempotent
Inspect

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.

NameRequiredDescriptionDefault
asOfNoHistorical membership on YYYY-MM-DD; only name and pagination may accompany it.
nameNoName substring; omission searches all names.
houseNoFilter most recent House; unavailable with asOf.
limitNoRequested whole members; default 10, cap 20; safe over-cap integers are clamped.
cursorNoOpaque collection cursor for the same filters.
partyIdNoParty ID; active reference parties do not exhaust historical IDs.
currentOnlyNoTrue restricts to current members; false includes former and current.
constituencyNoSource location or constituency text, not exact equality.
contentCursorNoSame-selection lossless content continuation.

Output Schema

NameRequiredDescription
capNoEffective member workload cap.
modeNoModern or dated historical search.
pageNoCollection continuation by actually emitted records.
errorNoPresent when the call failed. Absent on success.
itemsNoWhole summary member records.
queryNoComplete normalized filters and membership-date semantics.
shownNoActual whole members emitted.
noticeNoLicence, historical scope and workload notices.
sourceNoActual official search request.
appliedNoEffective source and workload; full filters stay in /query.
deliveryNoFull selected payload, child outline, or JSON fragment.
guidanceNoEmpty-result recovery guidance.
identityNoStable selected-record identifiers retained during content retrieval.
retrievalNoSame-tool retrieval instruction.
truncatedNoFurther whole member results remain.
provenanceNoSelected response provenance retained during content retrieval; source notices remain in the reconstructed payload.
totalCountNoSource total before paging.
contentPageNoLossless recursive content continuation.
collectionPageNoCollection continuation; reconstruct the outlined selected payload before following it.
requestedLimitNoOriginal request when capped.

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already establish readOnly, idempotent, and openWorld behavior, so the description's job is to add call-specific behavior. It does so by noting that results preserve latest profile fields, that cursor continuation requires unchanged filters, and that contentCursor handles oversized records. Those are valuable operational details beyond the annotations, though it could say more about result ordering or partial-match behavior.

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?

Three dense sentences, front-loaded with the core purpose and immediately followed by the two most consequential parameter behaviors and the retrieval alternative. 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?

Annotations cover safety and an output schema exists, so the description need not explain return values. It still covers the operational edges an agent needs: historical queries, cursor stability, oversized records, and the handoff to ukparl_get_member.

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?

With schema description coverage at 100%, the baseline is 3. The description restates the asOf restriction and cursor invariants that the schema already documents for those parameters, adding little new semantic detail beyond consolidation.

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 and resource ('Find MPs and peers') and enumerates the searchable dimensions. It also explicitly names the retrieval sibling ukparl_get_member, so an agent can distinguish search from fetch without inspecting schemas.

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 states when to use this tool versus ukparl_get_member ('retrieve sections with ukparl_get_member') and gives explicit behavioral rules for currentOnly, asOf, and cursor reuse. The asOf exclusion ('accepts name only, without House, party or location filters') tells the agent exactly how to avoid an invalid combination.

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

ukparl_search_questionsSearch written questionsA
Read-onlyIdempotent
Inspect

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.

NameRequiredDescriptionDefault
uinNoExact UIN lookup string, such as 36068 or HL1234; preserves leading zeros. Search only; combine with tabling dates to narrow reused UINs.
modeNoSearch previews or retrieve one complete question.search
houseNoCommons or Lords; search only.
limitNoSearch page size, default 10, cap 20; larger safe integers are capped. Omit in detail.
queryNoQuestion or answer content terms; search only.
cursorNoOpaque search continuation; repeat unchanged filters.
answeredNoTrue answered, false unanswered, omission either; search only.
memberIdNoAsking Members API ID; search only.
tabledToNoInclusive tabling end YYYY-MM-DD; search only.
answeredToNoInclusive answer end YYYY-MM-DD; search only.
questionIdNoPositive decimal Questions API ID required in detail; UIN is not this ID.
tabledFromNoInclusive tabling start YYYY-MM-DD; search only.
answeredFromNoInclusive answer start YYYY-MM-DD; search only.
contentCursorNoOpaque lossless content continuation for this same selection.
answeringBodyIdsNoUp to 20 answering-body IDs resolved through ukparl_lookup_reference; search only.
answeringMemberIdNoAnswering Members API ID; search only, independent of asking memberId.

Output Schema

NameRequiredDescription
capNoEffective search page-size cap.
modeNoSelected question operation.
pageNoWhole-question search continuation.
errorNoPresent when the call failed. Absent on success.
foundNoDetail lookup success; false requires guidance.
itemsNoSelected search page; never automatically hydrated.
shownNoActually emitted whole search results.
totalNoUpstream total when known.
noticeNoLicence, preview and workload notices.
recordNoComplete selected question including answer HTML and attachments metadata.
sourceNoActual selected official request.
appliedNoEffective filters, explicit upstream scope and date semantics.
filtersNoComplete normalized selection filters.
deliveryNoFull selected payload, child outline, or JSON fragment.
guidanceNoSame-tool recovery for missing or empty selections.
identityNoStable selected-record identifiers retained during content retrieval.
retrievalNoSame-tool retrieval instruction.
truncatedNoFurther whole search results remain.
provenanceNoSelected response provenance retained during content retrieval; source notices remain in the reconstructed payload.
questionIdNoSelected Questions API ID.
contentPageNoLossless recursive content continuation.
collectionPageNoCollection continuation; reconstruct the outlined selected payload before following it.
requestedLimitNoOriginal page-size request when capped.

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/openWorld, and the description adds real behavior beyond them: search spans all sessions and includes withdrawn questions, undated UIN lookups are ambiguous and return multiple candidates, and contentCursor exists for lossless oversized answers. It does not discuss error behavior or result ordering, but the scope and cursor semantics are meaningful disclosures.

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 purpose and facets, then moom into mode/UIN and cursor rules with no filler sentences. Dense but each clause carries an operational instruction; slightly packed, with four distinct rules in the middle sentence.

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 16 optional parameters, two modes, an output schema and complex cursor/pagination behavior, the description covers what an agent needs: how to pick a mode, how to disambiguate UINs, how to handle paging, and where to get full content. Output format details are correctly left to the output schema.

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?

With 100% schema coverage the baseline is 3, but the description adds semantics the schema alone does not convey: the UIN/questionId distinction, that a UIN never determines House, and that answeringMemberId is independent of memberId. Cursor handling (follow collection cursors unchanged, use contentCursor for oversized answers) further clarifies two of the parameters.

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?

Names a specific verb and resource ('Search Westminster written questions and answer previews') and enumerates the searchable facets: text, UIN, asking/answering member, House, answering body, answer state and dates. It also distinguishes the detail mode, which separates it from the pure search siblings like ukparl_search_hansard.

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?

Gives explicit operational guidance: an undated UIN returns candidates across sessions, so narrow with tabling dates; switch to mode=detail with a returned questionId for full HTML, corrections and attachments. It also states the exclusion rule that a UIN is not a questionId and never determines House, and gives cursor handling instructions.

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. 9 tool updates
    • First observedukparl_get_bill
    • First observedukparl_get_committee
    • First observedukparl_get_member
    • First observedukparl_lookup_reference
    • First observedukparl_search_bills
    • First observedukparl_search_divisions
    • First observedukparl_search_hansard
    • First observedukparl_search_members
    • First observedukparl_search_questions

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
    4 npm
    9
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables 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.
    36 npm
    2
    Apache 2.0
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.