Skip to main content
Glama
UK Parliament MCP Server

UK Parliament MCP Server

search_roi

Search a UK Parliament member’s Register of Interests to check declared financial interests, directorships, consultancies, and gifts, including staff declarations or expired entries when needed.

Instructions

Search member's Register of Interests for financial and business declarations | register of interests, ROI, financial interests, conflicts of interest, directorships, consultancies, gifts, external roles, transparency | Use for investigating potential conflicts, researching member finances, or checking declared interests | Returns a member's current declared interests (set include_expired for lapsed ones, register_type='CommonsStaff' for their staff's) including directorships, consultancies, gifts, and other financial interests. See also: get_member_registered_interests, interests_categories, get_mp_profile.

    Args:
        member_id: Parliament member ID. Required: get from member search first.
        register_type: Register to search: 'Commons' (the member's own interests, default) or 'CommonsStaff' (interests declared by the member's staff). Pass an empty string for both.
        include_expired: Also return interests that have expired (default False, current interests only).

    Returns:
        Declared interests including directorships, consultancies, gifts, and other financial interests.
    

Input Schema

NameRequiredDescriptionDefault
member_idYes
register_typeNoCommons
include_expiredNo

Output Schema

NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changedv1.19.0
    • addedInput schema / properties / include_expired
      Added value: +{
      +  "default": false,
      +  "title": "Include Expired",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / register_type
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": "Commons",
      +  "title": "Register Type"
      +}
  2. First observedv0.1.0

TDQS

A4.1/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does reasonably well: it discloses that only current interests are returned by default, that include_expired widens to lapsed ones, and that register_type='CommonsStaff' targets staff declarations. It omits result volume/pagination and whether the search is scoped per-member only.

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?

Purpose and usage are front-loaded, but the keyword string ('register of interests, ROI, financial interests, conflicts of interest... transparency') is padded search-bait, and the Returns section restates the directorships/consultancies/gifts list already given in the first paragraph. The content is good but not tightly written.

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 a three-parameter read tool with an output schema, the description covers defaults, register scoping, and the member_id sourcing path — nearly everything needed to invoke it. The remaining gap is disambiguating it from get_member_registered_interests and get_lords_interests_register, which an agent could easily pick wrongly.

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?

Schema coverage is 0%, so the description must compensate, and it does: each of the three parameters gets an explanation the schema lacks — enum-like values for register_type ('Commons' vs 'CommonsStaff', empty string for both) and the semantics of include_expired including its default. This is exactly the value-add the description should provide.

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 and resource ('Search member's Register of Interests for financial and business declarations') and enumerates the content type (directorships, consultancies, gifts). It is distinguishable from generic member tools, but the near-duplicate sibling get_member_registered_interests is only listed in 'See also' without saying how the two differ.

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 usage contexts ('investigating potential conflicts, researching member finances, checking declared interests') plus a prerequisite instruction for member_id ('get from member search first'). No when-not guidance and no differentiation among the four named related tools, so it falls 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.

Deploy Server

Other Tools