Skip to main content
Glama

Get persons with significant control

get_psc

Get the PSC (Persons with Significant Control) register for a UK company. Returns individuals, corporate entities, and legal persons who own 25%+ of shares, hold 25%+ of voting rights, or have significant influence or control. Each PSC includes decoded control types in plain English (e.g. 'Owns 25-50% of shares' instead of raw codes). Individual PSCs also carry ECCTA identity verification: verification_status (verified, pending, overdue or unknown), identity_verified, identity_verified_on, and verification_deadline. pending means that person's deadline has not yet passed and is not a compliance failure; unknown means Companies House publishes no record for them, an absence of data rather than a breach. Only overdue means a deadline was missed. Corporate entity PSCs carry none of the verification fields. Their company_number is set only for a confirmed Companies House registration and is otherwise null, so never treat a null as a missing value to look up. What they filed is in registry_number and registry_name, and registry_is_companies_house says how to read it: true is a Companies House registration, null means a number was filed but cannot be tied to the UK register (e.g. a foreign registry), false means no number was filed. kind can be unknown for a PSC type we do not classify, with Companies House's verbatim string in kind_raw. Also detects PSC exemptions for listed PLCs. Cached for 24 hours.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
company_numberYesCompanies House company number, e.g. '00445790' for Tesco PLC. Numeric-only numbers should be zero-padded to 8 digits.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4/5.0
Behavior5/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 so thoroughly: it explains caching (24 hours), that corporate PSCs carry no verification fields, the meaning of verification_status values (pending is not a failure, unknown is absence of data, only overdue is a breach), and the tri-state registry_is_companies_house. These are exactly the behavioral nuances an agent cannot infer from structured fields.

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 before field semantics, and nearly every sentence earns its place by disambiguating a field value. It is a dense unbroken paragraph with no formatting for the many field-by-field rules, and a couple of clauses (e.g. the null-lookup warning) restate the same point, so it is slightly heavier than ideal.

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?

There is no output schema and no annotations, so the description must supply both the return shape and the behavioral profile; it does, covering PSC types, verification fields, registry fields, kind/kind_raw fallback, exemptions, and cache lifetime. An agent has what it needs to call and interpret the result.

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?

Only one parameter and schema description coverage is 100%, so the schema already documents company_number, its pattern, and zero-padding. The description adds no syntax or format detail beyond that, so the baseline of 3 applies.

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 opening sentence gives a specific verb and resource ('Get the PSC register for a UK company') and the body scopes exactly what is returned (individuals, corporates, legal persons with 25%+ control). It never distinguishes itself from the closely related sibling get_psc_chain, so an agent facing both must guess, which keeps it off a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the domain: call it to obtain a company's PSC register. There is no explicit when-to-use, no when-not, and no routing to alternatives such as get_psc_chain or get_directors, which is a real gap given the overlapping sibling. The embedded 'never treat a null as a missing value to look up' is data-interpretation advice rather than tool-selection guidance.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.