Skip to content

io.github.cyanheads/uk-parliament-mcp-server

io.github.cyanheads/uk-parliament-mcp-servercyanheadsstreamable-httpv0.1.2Scanned

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

9 tools: 9 only read.

Tools: 0 delete, 0 irreversible, 0 write, 9 read.
  • Reads private data · 1
  • Reads text others write · 9
  • Can send data out · 0
  • No findings

Anlyon alternative

Run the operations that matter as governed actions.

Declare what an action changes, and Anlyon puts it under a shared limit, binds every approval to the exact request, and grades the outcome. It works on any HTTPS API you can describe as an action.

Anlyon does not run, proxy or govern this MCP server. A tool your own code calls directly is not routed through Anlyon and is not governed by it.

Import an OpenAPI spec →

Tools

Grouped by what each tool does, most consequential first. Open one for its reasons and full description; descriptions are the publisher's own words.

9 tools

Only reads 9Show 9 read-only tools
  • ukparl_get_billRetrieve a Westminster bill overview or select stages, stage, publications, amendments, amendment, motions or motion.Reads text others writeNo findings

    Why it is in this group

    • The name "ukparl_get_bill" says "get": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • openWorldHint: true
  • ukparl_get_committeeFind Westminster committees with mode=search, then use committeeId for detail, members, inquiries or publications.Reads text others writeNo findings

    Why it is in this group

    • The name "ukparl_get_committee" says "get": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • openWorldHint: true
  • ukparl_get_memberRetrieve a member profile, roles, committee seats, official contact information, registered interests or recorded voting history.Reads private dataReads text others writeNo findings

    Why it is in this group

    • The name "ukparl_get_member" says "get": a word for reading.

    What it can reach

    • private-dataThe description's first sentence says "retrieve" and "contact": it reads contacts.
    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • openWorldHint: true
  • ukparl_lookup_referenceResolve Parliament filter IDs and inspect source coverage before searching.Reads text others writeNo findings

    Why it is in this group

    • The name "ukparl_lookup_reference" says "lookup": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • openWorldHint: true
  • ukparl_search_billsSearch Westminster bill summaries by title, current or originating House, session, sponsoring member, department, reference stage, bill type or status, with optional official order…Reads text others writeNo findings

    Why it is in this group

    • The name "ukparl_search_bills" says "search": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • openWorldHint: true
  • ukparl_search_divisionsSearch official Commons or Lords division summaries, or use detail, voters or party_totals with a divisionId from the same House.Reads text others writeNo findings

    Why it is in this group

    • The name "ukparl_search_divisions" says "search": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • openWorldHint: true
  • ukparl_search_hansardSearch spoken Westminster Hansard contributions by topic, member, House, date or numeric debateSectionId.Reads text others writeNo findings

    Why it is in this group

    • The name "ukparl_search_hansard" says "search": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • openWorldHint: true
  • ukparl_search_membersFind MPs and peers by name, location or constituency, party, House, and current or historical membership.Reads text others writeNo findings

    Why it is in this group

    • The name "ukparl_search_members" says "search": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • openWorldHint: true
  • ukparl_search_questionsSearch Westminster written questions and answer previews by text, exact UIN, asking or answering member, House, answering body, answer state and dates.Reads text others writeNo findings

    Why it is in this group

    • The name "ukparl_search_questions" says "search": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • openWorldHint: true

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Exfil surface

Which tools read private data, which read text someone else can write, and which can send data out. One of each is a path a prompt injection can use.

No private-data, untrusted-input, outbound path in this server alone: no tool is tagged outbound.

Reads private data1
Reads files, mail, messages, databases, secrets, calendars or repositories.
Can send data out0
Can carry data to people or systems: it sends, posts or publishes, or takes a recipient, channel or URL.

Other servers in the same agent add their own tools to these paths. Audit your whole setup to see them together.

Findings

Matches of fixed checks, with the text they matched.

No check matched anything in these tool definitions. That is not a safety guarantee.

History

Changes to its tool definitions and to its remote endpoint, newest first.

No change seen yet. Its tools are rescanned every day, and a remote endpoint is looked at once a week.

Install

Pinned to version 0.1.2. Values in angle brackets are yours to fill in.

claude mcp add --transport http uk-parliament https://uk-parliament.caseyjhand.com/mcp
claude mcp add --transport http uk-parliament https://uk-parliament.caseyjhand.com/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change or a way out, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__uk-parliament__ukparl_lookup_reference",
      "mcp__uk-parliament__ukparl_search_bills",
      "mcp__uk-parliament__ukparl_get_bill",
      "mcp__uk-parliament__ukparl_search_members",
      "mcp__uk-parliament__ukparl_get_member",
      "mcp__uk-parliament__ukparl_search_divisions",
      "mcp__uk-parliament__ukparl_search_hansard",
      "mcp__uk-parliament__ukparl_search_questions",
      "mcp__uk-parliament__ukparl_get_committee"
    ],
    "ask": [],
    "deny": []
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. A read that can send data out (it takes a URL, say) asks first too. It assumes the server is installed as uk-parliament. Review it before you use it.

Capability tags behind 9 rules
  • mcp__uk-parliament__ukparl_lookup_reference untrusted-input
  • mcp__uk-parliament__ukparl_search_bills untrusted-input
  • mcp__uk-parliament__ukparl_get_bill untrusted-input
  • mcp__uk-parliament__ukparl_search_members untrusted-input
  • mcp__uk-parliament__ukparl_get_member private-data, untrusted-input
  • mcp__uk-parliament__ukparl_search_divisions untrusted-input
  • mcp__uk-parliament__ukparl_search_hansard untrusted-input
  • mcp__uk-parliament__ukparl_search_questions untrusted-input
  • mcp__uk-parliament__ukparl_get_committee untrusted-input

Pin

Keep the decision: fail CI when the tools change, follow every change, or show a badge.

Pin in CI

Fail a build when the tools you reviewed are not the tools the server serves today.

curl -s "https://anlyon.dev/api/v1/servers/io.github.cyanheads/uk-parliament-mcp-server/verify?hash=55739652d2862454230db6967acb7b2439c6a52f5b194e4c78fc64a84cb2b8a8" | jq -e '.changed == false'

Pinned hash 55739652d286, from Oct 26, 2026, 04:18 UTC.

Watch

Get told when its tools change: a new tool, a new description, a new class.

https://anlyon.dev/servers/io.github.cyanheads/uk-parliament-mcp-server/changes.xml

An Atom feed. Works in any feed reader or Slack's RSS app.

Badge

anlyon.dev badge for io.github.cyanheads/uk-parliament-mcp-server
[![anlyon.dev](https://anlyon.dev/badge/io.github.cyanheads/uk-parliament-mcp-server.svg)](https://anlyon.dev/servers/io.github.cyanheads/uk-parliament-mcp-server)

Source: MCP Registry · repository. Synced Oct 26, 2026, 04:17 UTC.