# io.github.nick-ma/uk-parliament-members (npm · @darkhorseone/mcp-server-uk-parliament-members)

MCP server for UK Parliament Members API

- Trust score: 64/100 (medium)
- Change this week: +18
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-03

## Components

- npm · `@darkhorseone/mcp-server-uk-parliament-members`: 64/100 (this document), [markdown](https://verifymcp.io/servers/nick-ma-uk-parliament-members/darkhorseone-mcp-server-uk-parliament-members.md), [page](https://verifymcp.io/servers/nick-ma-uk-parliament-members/darkhorseone-mcp-server-uk-parliament-members)

## Channel facts

- Registry: `npm`
- Package: `@darkhorseone/mcp-server-uk-parliament-members`
- Version: `1.0.2`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-03.

- **Supply Chain Security**: 86/100
  - No malware found by supply-chain analysis.
  - Only part of the dependency tree could be resolved (94 of 98), so this covers what we could see, not the whole tree.
  - No install/post-install scripts declared.
  - Only part of the dependency tree could be resolved (94 of 98), so this covers what we could see, not the whole tree.
- **Provenance & Transparency**: 45/100
  - Source repository is publicly reachable at the declared URL.
  - Provenance check failed: no build-provenance attestation is published.
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 143 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 54/100
  - AI-judged instruction clarity (fair).
  - Tool/resource definitions use about 2023 tokens (~47/item across 43 items; 43 tools + 0 resources), lean.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 23/100
  - Stability observed for 7 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 95/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 86% of tool parameters carry a description.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### Claude

```bash
claude mcp add nick-ma-uk-parliament-members -- npx -y @darkhorseone/mcp-server-uk-parliament-members
```

### Codex

```bash
codex mcp add nick-ma-uk-parliament-members -- npx -y @darkhorseone/mcp-server-uk-parliament-members
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "nick-ma-uk-parliament-members": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "@darkhorseone/mcp-server-uk-parliament-members"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add nick-ma-uk-parliament-members --command npx --arg -y --arg @darkhorseone/mcp-server-uk-parliament-members
```

### Hermes

```yaml
mcp_servers:
  nick-ma-uk-parliament-members:
    command: "npx"
    args: ["-y", "@darkhorseone/mcp-server-uk-parliament-members"]
```

### Other

```json
{
  "mcpServers": {
    "nick-ma-uk-parliament-members": {
      "command": "npx",
      "args": [
        "-y",
        "@darkhorseone/mcp-server-uk-parliament-members"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-03 (score 64, +4)

- [functional improvement] Stability: unverified → 0.23

### 2026-08-02 (score 60, +32)

- [security regression] Provenance: fail → unverified
- [security regression] Install scripts: pass → unverified
- [security improvement] Known CVEs: unverified → partial
- [security improvement] Malware scan: unverified → pass
- [security] Stability: Stability not yet verified: not enough scan history yet (needs a 30-day window).
- [functional regression] Tool coverage: 100 → unverified
- [functional regression] License: pass → unverified
- [functional regression] Maintenance: pass → unverified
- [functional improvement] MCP protocol: unverified → pass
- [functional improvement] Dependency health: unverified → partial
- [functional improvement] Schema quality: unverified → fair
- [functional] First check of Schema quality: unverified
- [functional] Licence: MIT

### 2026-08-01 (score 28, −25)

- [security regression] Malware scan: pass → unverified
- [security regression] Known CVEs: partial → unverified
- [functional regression] Dependency health: partial → unverified

### 2026-07-31 (score 53, +25)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-30 (score 28, −18)

- [security regression] Malware scan: pass → unverified

### 2026-07-27 (score 46)

First indexed and scored.

## MCP tools (43)

### `ukp_location_browse` (~45 tokens)

Returns a list of locations, both parent and child

Input parameters:

- `locationName` (string, required): Location by name specified
- `locationType` (required): Location by type of location

### `ukp_location_constituency_search` (~77 tokens)

Returns a list of constituencies

Input parameters:

- `searchText` (string): Constituencies containing serach term in their name
- `skip`: The number of records to skip from the first, default is 0
- `take`: The number of records to return, default is 20. Maximum is 20

### `ukp_location_constituency` (~27 tokens)

Returns a constituency by ID

Input parameters:

- `id` (required): Constituency by ID

### `ukp_location_constituency_synopsis` (~30 tokens)

Returns a synopsis by constituency ID

Input parameters:

- `id` (required): Synopsis by constituency ID

### `ukp_location_constituency_representations` (~34 tokens)

Returns a list of representations by constituency ID

Input parameters:

- `id` (required): Representations by constituency ID

### `ukp_location_constituency_geometry` (~28 tokens)

Returns geometry by constituency ID

Input parameters:

- `id` (required): Geometry by constituency ID

### `ukp_location_constituency_election_results` (~35 tokens)

Returns a list of election results by constituency ID

Input parameters:

- `id` (required): Elections results by constituency ID

### `ukp_location_constituency_election_result` (~46 tokens)

Returns an election result by constituency and election id

Input parameters:

- `electionId` (required): Election result by election id
- `id` (required): Election result by constituency id

### `ukp_location_constituency_election_result_latest` (~35 tokens)

Returns latest election result by constituency id

Input parameters:

- `id` (required): Latest election result by constituency id

### `ukp_lords_interests_register` (~65 tokens)

Returns a list of registered interests

Input parameters:

- `includeDeleted`: Registered interests that have been deleted
- `page`: Page of results to return, default 0. Results per page 20.
- `searchTerm` (string): Registered interests containing search term

### `ukp_lords_interests_staff` (~51 tokens)

Returns a list of staff

Input parameters:

- `page`: Page of results to return, default 0. Results per page 20.
- `searchTerm` (string): Staff containing search term

### `ukp_members_search` (~426 tokens)

Returns a list of current members of the Commons or Lords

Input parameters:

- `ConstituencyId`: Members which currently hold the constituency with constituency id
- `Experience` (string): Members with specified experience
- `Gender` (string): Members with the gender specified
- `House`: Members where their most recent house is the house specified
- `IsCurrentMember`: Members who are current or former members
- `IsEligible`: Members currently Eligible to sit in their House
- `Location` (string): Members where postcode or geographical location matches the term specified     Searches for current constituencies with full postcode, or outward code; and name of constituency     If there are no…
- `MembershipEnded.MembershipEndReasonIds`
- `MembershipEnded.MembershipEndedSince` (string): Members who left the House on or after the date given
- `MembershipInDateRange.WasMemberOfHouse`: Members who were active in the house specifid
- `MembershipInDateRange.WasMemberOnOrAfter` (string): Members who were active on or after the date specified
- `MembershipInDateRange.WasMemberOnOrBefore` (string): Members who were active on or before the date specified
- `MembershipStartedSince` (string): Members who started on or after the date given
- `Name` (string): Members where name contains term specified
- `NameStartsWith` (string): Members with surname begining with letter(s) specified
- `PartyId`: Members which are currently affiliated with party with party ID
- `PolicyInterestId`: Members with specified policy interest
- `PostTitle` (string): Members which have held the post specified
- `skip`: The number of records to skip from the first, default is 0
- `take`: The number of records to return, default is 20. Maximum is 20

### `ukp_members_search_historical` (~102 tokens)

Returns a list of members of the Commons or Lords

Input parameters:

- `dateToSearchFor` (string): Members that were an active member of the Commons or Lords on the date specified
- `name` (string): Members with names containing the term specified
- `skip`: The number of records to skip from the first, default is 0
- `take`: The number of records to return, default is 20. Maximum is 20

### `ukp_members_get_by_id` (~46 tokens)

Return member by ID

Input parameters:

- `detailsForDate` (string): Member object will be populated with details from the date specified
- `id` (required): Member by ID specified

### `ukp_members_biography` (~30 tokens)

Return biography of member by ID

Input parameters:

- `id` (required): Biography of Member by ID specified

### `ukp_members_contact` (~32 tokens)

Return list of contact details of member by ID

Input parameters:

- `id` (required): Contact details of Member by ID specified

### `ukp_members_contribution_summary` (~37 tokens)

Return contribution summary of member by ID

Input parameters:

- `id` (required): Contribution summary of Member by ID specified
- `page`

### `ukp_members_edms` (~40 tokens)

Return list of early day motions of member by ID

Input parameters:

- `id` (required): Early day motions of Member by ID specified
- `page`

### `ukp_members_experience` (~29 tokens)

Return experience of member by ID

Input parameters:

- `id` (required): Experience of Member by ID specified

### `ukp_members_focus` (~34 tokens)

Return list of areas of focus of member by ID

Input parameters:

- `id` (required): Areas of focus of Member by ID specified

### `ukp_members_history` (~36 tokens)

Return members by ID with list of their historical names, parties and memberships

Input parameters:

- `ids`: List of MemberIds to find

### `ukp_members_latest_election_result` (~35 tokens)

Return latest election result of member by ID

Input parameters:

- `id` (required): Latest election result of Member by ID specified

### `ukp_members_portrait` (~41 tokens)

Return portrait of member by ID

Input parameters:

- `cropType`
- `id` (required): Portrait of Member by ID specified
- `webVersion`

### `ukp_members_portrait_url` (~32 tokens)

Return portrait url of member by ID

Input parameters:

- `id` (required): Portrait url of Member by ID specified

### `ukp_members_registered_interests` (~46 tokens)

Return list of registered interests of member by ID

Input parameters:

- `house`: Registered interests of Member by House specified
- `id` (required): Registered interests of Member by ID specified

### `ukp_members_staff` (~30 tokens)

Return list of staff of member by ID

Input parameters:

- `id` (required): Staff of Member by ID specified

### `ukp_members_synopsis` (~29 tokens)

Return synopsis of member by ID

Input parameters:

- `id` (required): Synopsis of Member by ID specified

### `ukp_members_thumbnail` (~28 tokens)

Return thumbnail of member by ID

Input parameters:

- `id` (required): Thumbnail of Member by ID specified

### `ukp_members_thumbnail_url` (~31 tokens)

Return thumbnail url of member by ID

Input parameters:

- `id` (required): Thumbnail url of Member by ID specified

### `ukp_members_voting` (~41 tokens)

Return list of votes by member by ID

Input parameters:

- `house` (required)
- `id` (required): Votes by Member by ID specified
- `page`

### `ukp_members_written_questions` (~38 tokens)

Return list of written questions by member by ID

Input parameters:

- `id` (required): Written questions by Member by ID specified
- `page`

### `ukp_parties_state_of_the_parties` (~48 tokens)

Returns current state of parties

Input parameters:

- `forDate` (string, required): State of parties for the date specified
- `house` (required): State of parties in Commons or Lords.

### `ukp_parties_lords_by_type` (~42 tokens)

Returns the composition of the House of Lords by peerage type.

Input parameters:

- `forDate` (string, required): Composition of the Lords for date specified.

### `ukp_parties_get_active` (~34 tokens)

Returns a list of current parties with at least one active member.

Input parameters:

- `house` (required): Current parties by house

### `ukp_posts_government_posts` (~30 tokens)

Returns a list of government posts.

Input parameters:

- `departmentId`: Government posts by department ID

### `ukp_posts_opposition_posts` (~30 tokens)

Returns a list of opposition posts.

Input parameters:

- `departmentId`: Opposition posts by department ID

### `ukp_posts_spokespersons` (~31 tokens)

Returns a list of spokespersons.

Input parameters:

- `partyId`: Spokespersons by party ID

### `ukp_posts_departments` (~25 tokens)

Returns a list of departments.

Input parameters:

- `type` (required): Departments by type

### `ukp_posts_speaker_and_deputies` (~40 tokens)

Returns a list containing the speaker and deputy speakers.

Input parameters:

- `forDate` (string, required): Speaker and deputy speakers for date specified

### `ukp_reference_policy_interests` (~19 tokens)

Returns a list of policy interest.

### `ukp_reference_departments` (~30 tokens)

Returns a list of departments.

Input parameters:

- `id`
- `nameContains` (string)

### `ukp_reference_answering_bodies` (~33 tokens)

Returns a list of answering bodies.

Input parameters:

- `id`
- `nameContains` (string)

### `ukp_reference_departments_logo` (~25 tokens)

Returns department logo.

Input parameters:

- `id` (required): Logo by department ID

## Diagnostics

Captured diagnostic sections: Provenance, Dependencies. The full working is on the page: https://verifymcp.io/servers/nick-ma-uk-parliament-members/darkhorseone-mcp-server-uk-parliament-members#diagnostics

## Score history

- 2026-08-03: 64
- 2026-08-02: 60
- 2026-08-01: 28
- 2026-07-31: 53
- 2026-07-30: 28
- 2026-07-28: 46
- 2026-07-27: 46

## Links

- npm package: https://www.npmjs.com/package/@darkhorseone/mcp-server-uk-parliament-members
- Socket report: https://socket.dev/npm/package/@darkhorseone/mcp-server-uk-parliament-members
- Repository: https://github.com/DarkhorseOne/mcp-servers
- Changelog RSS feed: https://verifymcp.io/servers/nick-ma-uk-parliament-members/darkhorseone-mcp-server-uk-parliament-members/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/nick-ma-uk-parliament-members/darkhorseone-mcp-server-uk-parliament-members/changelog.json
- HTML version of this page: https://verifymcp.io/servers/nick-ma-uk-parliament-members/darkhorseone-mcp-server-uk-parliament-members
