Uk Parliament (ChrisBrooksbank) MCP Server

uk-parliament-mcp PyPI v1.17.1

Published by chrisbrooksbank — no publish provenance, so origin is unverified, but the source is public: the repository link below is self-declared yet readable, so you can inspect the code before adopting it.

(Unofficial) UK Parliament MCP Server - bridges AI assistants with UK Parliament APIs

Trust grade
A
96/100
Last scanned get badge →
Trust
A · 96/100
Adoption risk for you: the threat score, then adjusted down for blast radius, publisher verification and how much the scan could see. Deterministic; every point is auditable.
Capability
Moderate
Blast radius if it went rogue — what the server’s tools could reach. Independent of trust.
Coverage
Source
How much the scan could actually inspect. Shallow coverage is stated, never hidden.
Share this Trust Score
𝕏 Share LinkedIn Reddit
A Why this grade threat 100 − adoption risk = 96/100

The grade answers one question — how safe is this server for you to adopt — so it is computed in two auditable stages. Nothing below is an opinion or an LLM's guess; every line is a real term the deterministic engine applied, and the same input always yields the same number.

1. Threat score — 100 − 0 = 100. What the published surface and source actually contain:

The deterministic scan raised no scored threat in the surface it inspected — the threat score stayed at 100. Capability observations and advisory notes are recorded but never lower it.

2. Client adoption risk — 100 − 4 = 96. Three small, subtract-only factors that reflect your risk in adopting it — a clean scan proves less on a powerful, unverified or barely-inspectable package, so the grade says so plainly:

PointsAdoption-risk factor
−3 capability blast radius (moderate) — client exposure if the model is manipulated
−1 publisher verification (public source) — no provenance, but the source is public and inspectable

Capability observations and info notes are shown under Findings but never scored. Open any row's finding below for the file, line and evidence behind a deduction.

Findings 1

low Shell/command execution in packaging/dev tooling (scripts/build-exe.py)MTC-SRC-002

In a packaging/dev/install script (shipped, but not the server runtime) (`scripts/build-exe.py:28`): Spawning a shell/process is command-execution capability; with unsanitized tool input it is command injection / RCE. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.

Evidence: utable …") result = subprocess.run( [ sys.executable, "-m", "PyInstaller

Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.

Location: server scripts/build-exe.py

Tools 200

Each tool and what it can reach — statically extracted from the published source.

  • browse_erskine_may_indexingests untrusted input
  • browse_locationsingests untrusted input
  • get_all_bills_rssingests untrusted input
  • get_bill_rssingests untrusted input
  • get_erskine_may_index_termingests untrusted input
  • get_private_bills_rssingests untrusted input
  • get_public_bills_rssingests untrusted input
  • bill_stagesno sensitive capability
  • bill_typesno sensitive capability
  • check_mp_voteno sensitive capability
Show 190 more tools ↓
  • edms_for_member_idno sensitive capability
  • get_act_of_parliamentno sensitive capability
  • get_amendment_by_idno sensitive capability
  • get_annulment_dateno sensitive capability
  • get_annunciator_by_dateno sensitive capability
  • get_answer_deadlineno sensitive capability
  • get_answering_bodiesno sensitive capability
  • get_archived_publication_linksno sensitive capability
  • get_bill_by_idno sensitive capability
  • get_bill_news_articlesno sensitive capability
  • get_bill_overviewno sensitive capability
  • get_bill_petition_by_idno sensitive capability
  • get_bill_publicationsno sensitive capability
  • get_bill_stage_amendmentsno sensitive capability
  • get_bill_stage_detailsno sensitive capability
  • get_bill_stage_ping_pong_itemsno sensitive capability
  • get_bill_stage_publicationsno sensitive capability
  • get_bill_stagesno sensitive capability
  • get_calendar_categoriesno sensitive capability
  • get_calendar_eventno sensitive capability
  • get_calendar_locationsno sensitive capability
  • get_cli_referenceno sensitive capability
  • get_committee_businessno sensitive capability
  • get_committee_business_by_idno sensitive capability
  • get_committee_business_publications_summaryno sensitive capability
  • get_committee_business_typesno sensitive capability
  • get_committee_by_idno sensitive capability
  • get_committee_eventsno sensitive capability
  • get_committee_meetingsno sensitive capability
  • get_committee_membersno sensitive capability
  • get_committee_publication_typesno sensitive capability
  • get_committee_publications_summaryno sensitive capability
  • get_committee_staffno sensitive capability
  • get_committee_summaryno sensitive capability
  • get_committee_typesno sensitive capability
  • get_committees_next_eventsno sensitive capability
  • get_commons_division_by_idno sensitive capability
  • get_commons_divisions_grouped_by_partyno sensitive capability
  • get_commons_divisions_search_countno sensitive capability
  • get_commons_voting_record_for_memberno sensitive capability
  • get_constituenciesno sensitive capability
  • get_constituency_by_idno sensitive capability
  • get_constituency_election_resultno sensitive capability
  • get_constituency_latest_electionno sensitive capability
  • get_constituency_representationsno sensitive capability
  • get_constituency_synopsisno sensitive capability
  • get_contributionsno sensitive capability
  • get_debate_by_columnno sensitive capability
  • get_debate_by_external_idno sensitive capability
  • get_debate_by_idno sensitive capability
  • get_debate_by_titleno sensitive capability
  • get_debate_divisionsno sensitive capability
  • get_debate_speakersno sensitive capability
  • get_departmentsno sensitive capability
  • get_division_detailsno sensitive capability
  • get_early_day_motionno sensitive capability
  • get_election_results_for_constituencyno sensitive capability
  • get_erskine_may_chapterno sensitive capability
  • get_erskine_may_paragraphno sensitive capability
  • get_erskine_may_partno sensitive capability
  • get_erskine_may_partsno sensitive capability
  • get_erskine_may_sectionno sensitive capability
  • get_erskine_may_section_relativeno sensitive capability
  • get_event_activitiesno sensitive capability
  • get_event_attendanceno sensitive capability
  • get_event_by_idno sensitive capability
  • get_event_type_metadatano sensitive capability
  • get_eventsno sensitive capability
  • get_government_postsno sensitive capability
  • get_hansard_calendarno sensitive capability
  • get_hansard_currently_processingno sensitive capability
  • get_hansard_first_yearno sensitive capability
  • get_hansard_last_sitting_dateno sensitive capability
  • get_hansard_linked_datesno sensitive capability
  • get_hansard_pdfs_for_dayno sensitive capability
  • get_hansard_section_treesno sensitive capability
  • get_hansard_sitting_dayno sensitive capability
  • get_hansard_speakers_for_dayno sensitive capability
  • get_hansard_timeline_statsno sensitive capability
  • get_historic_sitting_dayno sensitive capability
  • get_interest_by_idno sensitive capability
  • get_interest_categoryno sensitive capability
  • get_last_sitting_dateno sensitive capability
  • get_laying_bodiesno sensitive capability
  • get_lords_by_typeno sensitive capability
  • get_lords_division_by_idno sensitive capability
  • get_lords_divisions_grouped_by_partyno sensitive capability
  • get_lords_divisions_search_countno sensitive capability
  • get_lords_interests_registerno sensitive capability
  • get_lords_interests_staffno sensitive capability
  • get_lords_voting_record_for_memberno sensitive capability
  • get_member_by_idno sensitive capability
  • get_member_by_nameno sensitive capability
  • get_member_committee_membershipsno sensitive capability
  • get_member_contribution_summaryno sensitive capability
  • get_member_experienceno sensitive capability
  • get_member_focusno sensitive capability
  • get_member_hansard_contributionsno sensitive capability
  • get_member_latest_election_resultno sensitive capability
  • get_member_portrait_urlno sensitive capability
  • get_member_registered_interestsno sensitive capability
  • get_member_staffno sensitive capability
  • get_member_synopsisno sensitive capability
  • get_member_thumbnail_urlno sensitive capability
  • get_member_votingno sensitive capability
  • get_member_written_questionsno sensitive capability
  • get_members_biographyno sensitive capability
  • get_members_contactno sensitive capability
  • get_members_historyno sensitive capability
  • get_mp_profileno sensitive capability
  • get_my_mpno sensitive capability
  • get_next_sitting_dateno sensitive capability
  • get_non_sitting_daysno sensitive capability
  • get_opposition_postsno sensitive capability
  • get_oral_evidenceno sensitive capability
  • get_oral_evidence_by_idno sensitive capability
  • get_parliamentary_diaryno sensitive capability
  • get_ping_pong_item_by_idno sensitive capability
  • get_policy_interestsno sensitive capability
  • get_proposed_negative_sino sensitive capability
  • get_proposed_negative_si_business_itemsno sensitive capability
  • get_publication_by_idno sensitive capability
  • get_publication_documentno sensitive capability
  • get_publication_typesno sensitive capability
  • get_publicationsno sensitive capability
  • get_recently_tabled_edmsno sensitive capability
  • get_recently_updated_billsno sensitive capability
  • get_register_by_idno sensitive capability
  • get_registers_of_interestsno sensitive capability
  • get_session_by_idno sensitive capability
  • get_session_for_dateno sensitive capability
  • get_sessionsno sensitive capability
  • get_si_business_itemno sensitive capability
  • get_si_business_itemsno sensitive capability
  • get_si_procedureno sensitive capability
  • get_si_proceduresno sensitive capability
  • get_si_timeline_business_itemsno sensitive capability
  • get_sitting_datesno sensitive capability
  • get_sittingsno sensitive capability
  • get_speaker_and_deputiesno sensitive capability
  • get_speaker_eventsno sensitive capability
  • get_spokespersonsno sensitive capability
  • get_state_of_partiesno sensitive capability
  • get_statutory_instrumentno sensitive capability
  • get_submission_periodno sensitive capability
  • get_tabling_deadlineno sensitive capability
  • get_top_level_debate_idno sensitive capability
  • get_treatyno sensitive capability
  • get_treaty_business_itemsno sensitive capability
  • get_treaty_government_organisationsno sensitive capability
  • get_treaty_series_membershipsno sensitive capability
  • get_written_evidenceno sensitive capability
  • get_written_evidence_by_idno sensitive capability
  • happening_now_in_commonsno sensitive capability
  • happening_now_in_lordsno sensitive capability
  • interests_categoriesno sensitive capability
  • order_orderno sensitive capability
  • parliament_guideno sensitive capability
  • parliament_workflowno sensitive capability
  • parties_list_by_houseno sensitive capability
  • search_acts_of_parliamentno sensitive capability
  • search_bill_petitionsno sensitive capability
  • search_billsno sensitive capability
  • search_calendarno sensitive capability
  • search_committee_debatesno sensitive capability
  • search_committeesno sensitive capability
  • search_commons_divisionsno sensitive capability
  • search_early_day_motionsno sensitive capability
  • search_erskine_mayno sensitive capability
  • search_erskine_may_indexno sensitive capability
  • search_erskine_may_sectionsno sensitive capability
  • search_event_activitiesno sensitive capability
  • search_hansardno sensitive capability
  • search_hansard_committeesno sensitive capability
  • search_hansard_contributionsno sensitive capability
  • search_hansard_divisionsno sensitive capability
  • search_hansard_fullno sensitive capability
  • search_hansard_membersno sensitive capability
  • search_hansard_petitionsno sensitive capability
  • search_historic_sitting_daysno sensitive capability
  • search_historical_membersno sensitive capability
  • search_lords_divisionsno sensitive capability
  • search_membersno sensitive capability
  • search_oral_question_timesno sensitive capability
  • search_oral_questionsno sensitive capability
  • search_proposed_negative_sisno sensitive capability
  • search_roino sensitive capability
  • search_statutory_instrumentsno sensitive capability
  • search_treatiesno sensitive capability
  • search_treaties_advancedno sensitive capability

What this scan could not see

Versions 1

Scan history per published version. The engine is deterministic — the same version always yields the same score, so a changed score means the package itself changed.

VersionScoreFindingsEngineScanned
v1.17.1 latest A 96/100 1 1.13.0 2026-08-25

Embed this score

Show this server's live Trust Score in your README, docs or website. The badge is served straight from the registry and updates automatically after every rescan — no API key needed. It links back to this page, so anyone who sees the grade can also read the findings behind it instead of taking a number on faith.

MCP Trust Score: A · 96/100
Markdown (GitHub README)
[![MCP Trust Score](https://mcptrustchecker.com/registry/uk-parliament-mcp/badge.svg)](https://mcptrustchecker.com/registry/uk-parliament-mcp)
HTML
<a href="https://mcptrustchecker.com/registry/uk-parliament-mcp"><img src="https://mcptrustchecker.com/registry/uk-parliament-mcp/badge.svg" alt="MCP Trust Score" height="20"></a>
Prefer shields.io styling? Point it at https://mcptrustchecker.com/registry/uk-parliament-mcp/badge.json via https://img.shields.io/endpoint?url=…

Verify this score yourself

The score above is reproducible: the same package version always yields the same result. Run it locally or over the free API — no account, no LLM, fully deterministic.

npx mcptrustchecker scan uk-parliament-mcp --online --registry pypi

Use the free API → How scoring works

Other implementations of Uk Parliament 1

Independent packages implementing the same tool, scanned with the same engine. Compare all 2 side by side →

More in Data Science & ML